650 likes | 923 Views
شبکه های عصبی مصنوعی. Instructor : Saeed Shiry. مقدمه. شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی ، توابع با مقادیر گسسته و توابع با مقادیر برداری میباشد .
E N D
شبکههایعصبیمصنوعی Instructor : Saeed Shiry
مقدمه • شبکهعصبیمصنوعیروشیعملیبراییادگیریتوابعگوناگوننظیرتوابعبامقادیرحقیقی،توابعبامقادیرگسستهوتوابعبامقادیربرداریمیباشد. • یادگیریشبکهعصبیدربرابرخطاهایدادههایآموزشیمصونبودهواینگونهشبکههاباموفقیتبهمسائلینظیرشناسائیگفتار،شناسائیوتعبیرتصاویر،ویادگیریروباتاعمالشدهاست.
شبکهعصبیچیست؟ • روشیبرایمحاسبهاستکهبرپایهاتصالبههمپیوستهچندینواحدپردازشیساختهمیشود. • شبکهازتعداددلخواهیسلولیاگرهیاواحدیانرونتشکیلمیشودکهمجموعهورودیرابهخروجیربطمیدهند.
شبکهعصبیچهقابلیتهائیدارد؟ • محاسبهیکتابعمعلوم • تقریبیکتابعناشناخته • شناسائیالگو • پردازشسیگنال • یادگیری
مسائلمناسببراییادگیریشبکههایعصبیمسائلمناسببراییادگیریشبکههایعصبی • خطا در داده های آموزشی وجود داشته باشد. مثلمسائلی که داده های آموزشی دارای نویز حاصل از دادهای سنسورها نظیر دوربین و میکروفن ها هستند. • مواردی که نمونه ها توسط مقادیر زیادی زوج ویژگی-مقدار نشان داده شده باشند. نظیر داده های حاصل از یک دوربین ویدئوئی. • تابع هدف دارای مقادیر پیوسته باشد. • زمان کافی برای یادگیری وجود داشته باشد. این روش در مقایسه با روشهای دیگر نظیر درخت تصمیم نیاز به زمان بیشتری برای یادگیری دارد. • نیازیبهتعبیرتابعهدفنباشد. زیرابهسختیمیتواناوزانیادگرفتهشدهتوسطشبکهراتعبیرنمود.
الهامازطبیعت • مطالعهشبکههایعصبیمصنوعیتاحدزیادیملهمازسیستمهاییادگیرطبیعیاستکهدرآنهایکمجموعهپیچیدهازنرونهایبههممتصلدرکاریادگیریدخیلهستند. • گمانمیرودکهمغزانسانازتعداد 10 11نرونتشکیلشدهباشدکههرنرونباتقریبا 104نروندیگردرارتباطاست. • سرعتسوئیچنگنرونهادرحدود 10-3ثانیهاستکهدرمقایسهباکامپیوترها 10 -10 ) ثانیه ( بسیارناچیزمینماید. بااینوجودآدمیقادراستدر 0.1 ثانیهتصویریکانسانرابازشناسائینماید. اینقدرتفوقالعادهبایدازپردازشموازیتوزیعشدهدرتعدادیزیادیازنرونهاحاصلشدهباشد.
Perceptron • نوعیازشبکهعصبیبرمبناییکواحدمحاسباتیبهنام پرسپترونساختهمیشود. یک پرسپترونبرداریازورودیهایبامقادیرحقیقیراگرفتهویکترکیبخطیازاینورودیهارامحاسبهمیکند. اگرحاصلازیکمقدارآستانهبیشتربودخروجی پرسپترونبرابربا 1 ودرغیراینصورتمعادل -1 خواهدبود. x1 w1 x2 w2 {1 or –1} Σ w0 wn xn X0=1
یادگیرییک پرسپترون • خروحی پرسپترونتوسطرابطهزیرمشخصمیشود: • کهبرایسادگیآنرامیتوانبصورتزیرنشانداد: 1 if w0 + w1x1 + w2x2 + … + wnxn > 0 -1 otherwise O(x1,x2,…,xn) = O(X) = sgn(WX) where Sgn(y) = 1 if y > 0 -1 otherwise یادگیری پرسپترونعبارتاستاز: پیداکردنمقادیردرستیبرای W بنابراینفضایفرضیه H دریادگیری پرسپترونعبارتاستازمجموعهتماممقادیرحقیقیممکنبرایبردارهایوزن.
توانائیپرسپترون • پریسپترونرامیتوانبصورتیکسطحتصمیم hyperplane درفضای n بعدینمونههادرنظرگرفت. پرسپترونبراینمونههاییکطرفصفحهمقدار 1 وبرایمقادیرطرفدیگرمقدار -1 بوجودمیاورد. Decision boundary (WX = 0) + + + - - -
توابعیکه پرسپترونقادربهیادگیریآنهامیباشد • یک پرسپترونفقطقادراستمثالهائیرایادبگیردکهبصورتخطیجداپذیرباشند. اینگونهمثالهامواردیهستندکهبطورکاملتوسطیک hyperplaneقابلجداسازیمیباشند. + + + + + - - + - - - - Linearly separable Non-linearly separable
توابعبولیو پرسپترون • یک پرسپترونمیتواندبسیاریازتوابعبولیرانمایشدهدنظیر AND, OR, NAND, NOR • امانمیتواند XORرانمایشدهد. • درواقعهرتابعبولیرامیتوانباشبکهایدوسطحیاز پرسپترونهانشانداد. x1 AND: W1=0.5 Σ W2=0.5 W0 = -0.8 x2 X0=1
اضافه کردن بایاس • افزودن بایاس موجب میشود تا استفاده از شبکه پرسپترون با سهولت بیشتری انجام شود. • برای اینکه برای یادگیری بایاس نیازی به استفاده از قانون دیگری نداشته باشیم بایاس را بصورت یک ورودی با مقدار ثابت 1 در نظر گرفته و وزن W0 را به آن اختصاص میدهیم.
آموزش پرسپترون • چگونهوزنهاییک پرسپترونواحدرایادبگیریمبهنحویکه پرسپترونبرایمثالهایآموزشیمقادیرصحیحراایجادنماید؟ • دوراهمختلف : • قانون پرسپترون • قانوندلتا
آموزش پرسپترون الگوریتمیادگیری پرسپترون • مقادیریتصادفیبهوزنهانسبتمیدهیم • پریسپترونرابهتکتکمثالهایآموزشیاعمالمیکنیم. اگرمثالغلطارزیابیشودمقادیروزنهای پرسپترونراتصحیحمیکنیم. • آیاتمامیمثالهایآموزشیدرستارزیابیمیشوند: • بله پایانالگوریتم • خیربهمرحله 2 برمیگردیم
قانون پرسپترون • براییکمثالآموزشیX = (x1, x2, …, xn)درهرمرحلهوزنهابراساسقانونپرسپترونبصورتزیرتغییرمیکند: wi = wi + Δwi کهدرآن Δwi = η ( t – o ) xi t: target output o: output generated by the perceptron η: constant called the learning rate (e.g., 0.1) اثباتشدهاستکهبراییکمجموعهمثالجداپذیرخطیاینروشهمگراشدهو پرسپترونقادربهجداسازیصحیحمثالهاخواهدشد.
قانوندلتا Delta Rule • وقتیکهمثالهابصورتخطیجداپذیرنباشندقانون پرسپترونهمگرانخواهدشد. برایغلبهبراینمشکلازقانوندلتااستفادهمیشود. • ایدهاصلیاینقانوناستفادهاز gradient descent برایجستجودرفضایفرضیهوزنهایممکنمیباشد. اینقانونپایهروش Backpropagation استکهبرایآموزششبکهباچندیننرونبههممتصلبکارمیرود. • همچنیناینروشپایهایبرایانواعالگوریتمهاییادگیریاستکهبایدفضایفرضیهایشاملفرضیههایمختلفپیوستهراجستجوکنند.
قانوندلتا Delta Rule • برایدرکبهتراینروشآنرابهیک پرسپترونفاقدحدآستانهاعمالمیکنیم. درانجالازماستابتداتعریفیبرایخطایآموزشارائهشود. یکتعریفمتداولاینچنیناست: E = ½ Σi (ti – oi) 2 • کهاینمجموعبرایتماممثالهایآموزشیانجاممیشود.
الگوریتم gradient descent • باتوجهبهنحوهتعریف E سطحخطابصورتیکسهمیخواهدبود. مابدنبالوزنهائیهستیمکهحداقلخطاراداشتهباشند . الگوریتم gradient descent درفضایوزنهابدنبالبرداریمیگرددکهخطاراحداقلکند. اینالگوریتمازیکمقداردلبخواهبرایبرداروزنشروعکردهودرهرمرحلهوزنهاراطوریتغییرمیدهدکهدرجهتشیبکاهشیمنحنیفوقخطاکاهشدادهشود. E(W) w1 w2
بدستآوردنقانون gradient descent • ایدهاصلی: گرادیانهموارهدرجهتافزایششیب E عملمیکند. • گرادیان E نسبتبهبرداروزن w بصورتزیرتعریفمیشود: E (W) = [ E’/w0, E’/w1, …, E’/wn] • کهدرآن E (W) یکبردارو E’مشتقجزئینسبتبههروزنمیباشد. Δ Δ
قانوندلتا Delta Rule • براییکمثالآموزشیX = (x1, x2, …, xn)درهرمرحلهوزنهابراساسقانوندلتابصورتزیرتغییرمیکند: wi = wi + Δwi Where Δwi = -η E’(W)/wi η: learning rate (e.g., 0.1) علامتمنفینشاندهندهحرکتدرجهتکاهششیباست.
محاسبهگرادیان • بامشتقگیریجزئیازرابطهخطامیتوانبسادگیگرادیانرامحاسبهنمود: E’(W)/ wi = Σi (ti – Oi) (-xi) • لذاوزنهاطبقرابطهزیرتغییرخواهندنمود. Δwi = η Σi (ti – oi) xi
خلاصهیادگیریقانوندلتا الگوریتمیادگیریبااستفادهازقانوندلتابصورتزیرمیباشد. • بهوزنهامقدارتصادفینسبتدهید • تارسیدنبهشرایطتوقفمراحلزیرراادامهدهید • هروزن wiرابامقدارصفرعدددهیاولیهکنید. • برایهرمثال: وزن wiرابصورتزیرتغییردهید: wi = wi + η (t – o) xi مقدارwiرابصورتزیرتغییردهید: wi = wi + wi تاخطابسیارکوچکشود Δ Δ Δ Δ Δ
مشکلاتروش gradient descent • ممکناستهمگراشدنبهیکمقدارمینیممزمانزیادیلازمداشتهباشد. • اگردرسطحخطاچندینمینیمممحلیوجودداشتهباشدتضمینیوجودنداردکهالگوریتممینیمممطلقراپیدابکند. درضمناینروشوقتیقابلاستفادهاستکه: • فضایفرضیهدارایفرضیههایپارامتریکپیوستهباشد. • رابطهخطاقابلمشتقگیریباشد
تقریبافزایشی gradient descent • میتوانبجایتغییروزنهاپسازمشاهدههمهمثالها،آنهارابازاهرمثالمشاهدهشدهتغییرداد. دراینحالتوزنهابصورتافزایشی incremental تغییرمیکنند. اینروشراstochastic gradient descent نیزمینامند. wi = η (t-o) xi دربعضیمواردتغییرافزایشیوزنهامیتواندازبروزمینیمممحلیجلوگیریکند. روشاستانداردنیازبهمحاسباتبیشتریدارددرعوضمیتواندطول step بزرگتریهمداشتهباشد. Δ
مقایسه آموزش یکجا و افزایشی • آموزش یکجا (Batch learning) • آموزش افزایشی (Online learning) w1 w1 w2 w2
شبکههایچندلایه برخلاف پرسپترونهاشبکههایچندلایهمیتوانندبراییادگیریمسائلغیرخطیوهمچنینمسائلیباتصمیمگیریهایمتعددبکارروند. Output nodes Internal nodes Input nodes
مثال x2 x1
یکسلولواحد برایاینکهبتوانیمفضایتصمیمگیریرابصورتغیرخطیازهمجدابکنیم،لازماستتاهرسلولواحدرابصورتیکتابعغیرخطیتعریفنمائیم. مثالیازچنینسلولیمیتواندیکواحدسیگموئیدباشد: x1 w1 x2 net w2 Σ O = σ(net) = 1 / 1 + e -net w0 wn xn X0=1
تابعسیگموئید خروجیاینسلولواحدرابصورتزیرمیتوانبیاننمود: O(x1,x2,…,xn) = σ ( WX ) where: σ ( WX ) = 1 / 1 + e -WX تابعσتابعسیگموئیدیالجستیکنامیدهمیشود. اینتابعدارایخاصیتزیراست: d σ(y) / dy = σ(y) (1 – σ(y))
الگوریتم Back propagation • براییادگیریوزنهاییکشبکهچندلایهازروش Back Propagation استفادهمیشود. دراینروشبااستفادهاز gradient descent سعیمیشودتامربعخطایبینخروجیهایشبکهوتابعهدفمینیممشود. • خطابصورتزیرتعریفمیشود: مرادازoutputs خروجیهایمجموعهواحدهایلایهخروجیو tkdو okdمقدارهدفوخروجیمتناظربا k امینواحدخروجیومثالآموزشی d است.
الگوریتم Back propagation • فضایفرضیهموردجستجودراینروشعبارتاستازفضایبزرگیکهتوسطهمهمقادیرممکنبرایوزنهاتعریفمیشود. روش gradient descent سعیمیکندتابامینیممکردنخطابهفرضیهمناسبیدستپیداکند. اماتضمینیبرایاینکهاینالگوریتمبهمینیمممطلقبرسدوجودندارد.
الگوریتم BP • شبکهایبا ninگرهورودی، nhiddenگرهمخفی،و noutگرهخروجیایجادکنید. • همهوزنهارابایکمقدارتصادفیکوچکعدددهیکنید. • تارسیدنبهشرطپایانی ) کوچکشدنخطا( مراحلزیرراانجامدهید: برایهر xمتعلقبهمثالهایآموزشی: مثال X رابهسمتجلودرشبکهانتشاردهید خطای E رابهسمتعقبدرشبکهانتشاردهید. هرمثالآموزشیبصورتیکزوج (x,t) ارائهمیشودکهبردار x مقادیرورودیوبردار t مقادیرهدفبرایخروجیشبکهراتعیینمیکنند.
انتشاربهسمتجلو • برایهرمثال X مقدارخروجیهرواحدرامحاسبهکنیدتابهگرههایخروجیبرسید. Output nodes Compute sigmoid function Internal nodes Input nodes Example X
انتشاربهسمتعقب • برایهرواحدخروجیجملهخطارابصورتزیرمحاسبهکنید: δk = Ok (1-Ok)(tk – Ok) • برایهرواحدمخفیجملهخطارابصورتزیرمحاسبهکنید: δh = Oh (1-Oh) Σk Wkh δk • مقدارهروزنرابصورتزیرتغییردهید: Wji = Wji + ΔWji کهدرآن : ΔWji = η δj Xji ηعبارتاستازنرخیادگیری
شرطخاتمه معمولاالگوریتم BP پیشازخاتمههزارانباربااستفادههماندادههایآموزشیتکرارمیگرددشروطمختلفیرامیتوانبرایخاتمهالگوریتمبکاربرد: • توقفبعدازتکراربهدفعاتمعین • توقفوقتیکهخطاازیکمقدارتعیینشدهکمترشود. • توقفوقتیکهخطادرمثالهایمجموعهتائیدازقاعدهخاصیپیروینماید. اگردفعاتتکرارکمباشدخطاخواهیمداشتواگرزیادباشدمسئله Overfitting رخخواهدداد.
مرورالگوریتم BP • اینالگوریتمیکجستجوی gradient descent درفضایوزنهاانجاممیدهد. • ممکناستدریکمینیمممحلیگیربیافتد • درعملبسیارموثربودهاست برایپرهیزازمینیمممحلیروشهایمختلفیوجوددارد: • افزودنممنتم • استفادهازstochastic gradient descent • استفادهازشبکههایمختلفبامقادیرمتفاوتیبرایوزنهایاولیه
افزودنممنتم • میتوانقانونتغییروزنهاراطوریدرنظرگرفتکهتغییروزندرتکرار n امتاحدیبهاندازهتغییروزندرتکرارقبلیبستگیداشتهباشد. ΔWji (n) = η δj Xji + αΔWji (n-1) کهدرآنمقدارممنتمα بصورت0 <= α <= 1میباشد. افزودنممنتمباعثمیشودتاباحرکتدرمسیرقبلیدرسطحخطا: • ازگیرافتادندرمینیممحلیپرهیزشود • ازقرارگرفتندرسطوحصافپرهیزشود • باافزایشتدریجیمقدارپلهتغییرات،سرعتجستجوافزایشیابد. قانونتغییروزن عبارتممنتم
قدرتنمایشتوابع • گرچهقدرتنمایشتوابعبهتوسطیکشبکه feedforward بستهبهعمقوگستردگیشبکهدارد،بااینوجودمواردزیررامیتوانبهصورتقوانینکلیبیاننمود: • توابعبولی: هرتابعبولیرامیتوانتوسطیکشبکهدولایهپیادهسازینمود. • توابعپیوسته: هرتابعپیوستهمحدودرامیتوانتوسطیکشبکهدولایهتقریبزد. تئوریمربوطهدرموردشبکههائیکهازتابعسیگموئیددرلایهپنهانولایهخطیدرشبکهخروجیاستفادهمیکنندصادقاست. • توابعدلخواه:هرتابعدلخواهرامیتوانبایکشبکهسهلایهتاحدقابلقبولیتفریبزد. بااینوجودبایددرنظرداستکهفضایفرضیهجستجوشدهتوسطروش gradient deescent ممکناستدربرگیرندهتماممقادیرممکنوزنهانباشد.
فضایفرضیهوبایاساستقرا • فضایفرضیهموردجستجورامیتوانبصورتیکفضایفرضیهاقلیدسی n بعدیازوزنهایشبکهدرنظرگرفت )کهn تعدادوزنهاست( • اینفضایفرضیهبرخلاففضایفرضیهدرختتصمیمیکفضایپیوستهاست. • بایاساستقرااینروشرامیتوانبصورتزیربیانکرد: “smooth interpolation between data points” بهاینمعناکهالگوریتم BP سعیمیکندتانقاطیراکهبههمنزدیکترهستنددریکدستهبندیقراردهد.
مثال x2 x1 Smooth regions
ورودی خروجی قدرتنمایشلایهپنهان • یکیازخواص BP ایناستکهمیتوانددرلایههایپنهانشبکهویژگیهایناآشکاریازدادهورودینشاندهد. برایمثالشبکه 8x3x8 زیرطوریآموزشدادهمیشودکهمقدارهرمثالورودیراعینادرخروجیبوجودآورد )تابع f(x)=x رایادبگیرد(. ساختارخاصاینشبکهباعثمیشودتاواحدهایلایهوسطویژگیهایمقادیرورودیرابهنحویکدبندیکنندکهلایهخروحیبتواندازآنانبراینمایشمجدددادههااستفادهنماید.
قدرتنمایشلایهپنهان 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001 دراینآزمایشکهبهتعداد 5000 بارتکرارشدهاز 8 دادهمختلفبهعنوانورودیاستفادهشدهوشبکهبااستفادهازالگوریتم BP موفقشدهتاتابعهدفرابیاموزد. 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001 Hidden nodes بامشاهدهخروجیواحدهایلایهمیانیمشخصمیشودکهبردارحاصلمعادلانکدینگاستاندارددادهههایورودیبودهاست (000,001,,...,111)
نمودارخطا Different units Error iterations Different weights weight iterations
قدرتتعمیمو overfitting • شرطپاینالگوریتم BP چیست؟ • یکانتخابایناستکهالگوریتمراآنقدرادامهدهیمتاخطاازمقدارمعینیکمترشود. اینامرمیتواندمنجربه overfitting شود. Validation set error Error Training set error Number of weight updates
دلایلرخدادن overfitting • overfitting ناشیازتنظیموزنهابرایدرنظرگرفتنمثالهاینادریاستکهممکناستباتوزیعکلیدادههامطابقتنداشتهباشند. تعدادزیادوزنهاییکشبکهعصبیباعثمیشودتاشبکهدرجهآزادیزیادیبرایانطباقبااینمثالهاداشتهباشد. • باافزایشتعدادتکرار،پیچیدگیفضایفرضیهیادگرفتهشدهتوسطالگوریتمبیشتروبیشترمیشودتاشبکهبتواندنویزومثالهاینادرموجوددرمجموعهآموزشرابدرستیارزیابینماید.
راهحل • استفادهازیکمجموعهتائید Vallidation وتوقفیادگیریهنگامیکهخطادراینمجموعهبهاندازهکافیکوچکمیشود. • بایاسکردنشبکهبرایفضاهایفرضیهسادهتر: یکراهمیتوانداستفادهاز weight decayباشدکهدرآنمقداروزنهادرهربارتکرارباندازهخیلیکمیکاهشدادهمیشود. • k-fold cross validation وقتیکهتعدادمثالهایآموزشیکمباشدمیتوان m دادهآموزشیرابه K دستهتقسیمبندینمودهوآزمایشرابهتعداد k دفعهتکرارنمود. درهردفعهیکیازدستههابعنوانمجموعهتستوبقیهبعنوانمجموعهآموزشیاستفادهخواهندشد. تصمیمگیریبراساسمیانگیننتایجانجاممیشود.
روشهایدیگر راههایبسیارمتنوعیبرایایجادشبکههایجدیدوجودداردازجمله: • استفادهازتعاریفدیگریبرایتابعخطا • استفادهازروشهایدیگریبرایکاهشخطادرحینیادگیری • Hybrid Global Learning • Simulated Annealing • Genetic Algorithms • استفادهازتوابعدیگریدرواحدها • Radial Basis Functions • استفادهازساختارهایدیگریبرایشبکه • Recurrent Network
فرض کنید بخواهیم با استفاده از یک شبکه دو لایه ارقام دستنویس را تشخیص دهیم. نرونهای لایه اول شدت روشنائی پیکسلها را تقریب میزنندو نرونهای لایه آخر شکل ارقام را تعیین میکنند. مثال: تشخیص ارقام 0 1 2 3 4 5 6 7 8 9
روشی که وزنها یاد گرفته میشوند: 1 2 3 4 5 6 7 8 9 0 تصویر ورودی تصویر به شبکه ارائه شده و وزنهای پیکسلهای فعال بتدریج اضافه میشوند. وزن پیکسلهای غیر موثر نیز بتدریج کاهش میابد.