650 likes | 953 Views
شبکه های عصبی مصنوعی. Author : Saeed Shiry With little change by: keyvanrad. Fall 1392. مقدمه. شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی ، توابع با مقادیر گسسته و توابع با مقادیر برداری میباشد .
E N D
شبکههایعصبیمصنوعی Author : Saeed Shiry With little change by: keyvanrad Fall 1392
مقدمه • شبکهعصبیمصنوعیروشیعملیبراییادگیریتوابعگوناگوننظیرتوابعبامقادیرحقیقی،توابعبامقادیرگسستهوتوابعبامقادیربرداریمیباشد. • یادگیریشبکهعصبیدربرابرخطاهایدادههایآموزشیمصونبودهواینگونهشبکههاباموفقیتبهمسائلینظیرشناسائیگفتار،شناسائیوتعبیرتصاویر،ویادگیریروباتاعمالشدهاست.
شبکهعصبیچیست؟ • روشیبرایمحاسبهاستکهبرپایهاتصالبههمپیوستهچندینواحدپردازشیساختهمیشود. • شبکهازتعداددلخواهیسلولیاگرهیاواحدیانرونتشکیلمیشودکهمجموعهورودیرابهخروجیربطمیدهند.
شبکهعصبیچهقابلیتهائیدارد؟ • محاسبهیکتابعمعلوم • تقریبیکتابعناشناخته • شناسائیالگو • پردازشسیگنال • یادگیری
مسائلمناسببراییادگیریشبکههایعصبیمسائلمناسببراییادگیریشبکههایعصبی • خطا در داده های آموزشی وجود داشته باشد. • مثلمسائلی که داده های آموزشی دارای نویز حاصل از دادهای سنسورها نظیر دوربین و میکروفن ها هستند. • مواردی که نمونه ها توسط مقادیر زیادی زوج ویژگی-مقدار نشان داده شده باشند. نظیر داده های حاصل از یک دوربین ویدئوئی. • تابع هدف دارای مقادیر پیوسته باشد. • زمان کافی برای یادگیری وجود داشته باشد. این روش در مقایسه با روشهای دیگر نظیر درخت تصمیم نیاز به زمان بیشتری برای یادگیری دارد. • نیازیبهتعبیرتابعهدفنباشد. زیرابهسختیمیتوانوزنهاییادگرفتهشدهتوسطشبکهراتعبیرنمود.
الهامازطبیعت • مطالعهشبکههایعصبیمصنوعیتاحدزیادیملهمازسیستمهاییادگیرطبیعیاستکهدرآنهایکمجموعهپیچیدهازنرونهایبههممتصلدرکاریادگیریدخیلهستند. • گمانمیرودکهمغزانسانازتعداد 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) Example: if xi = .8, η = 0.1, t = 1, and o = - 1, Δwi= η ( t – o ) xi = O.1(1 - (-1))0.8 = 0.16 اثباتشدهاستکهبراییکمجموعهمثالجداپذیرخطیاینروشهمگراشدهو پرسپترونقادربهجداسازیصحیحمثالهاخواهدشد.
قانوندلتا Delta Rule • وقتیکهمثالهابصورتخطیجداپذیرنباشندقانون پرسپترونهمگرانخواهدشد.برایغلبهبراینمشکلازقانوندلتااستفادهمیشود. • ایدهاصلیاینقانوناستفادهاز gradient descent برایجستجودرفضایفرضیهوزنهایممکنمیباشد.اینقانونپایهروش Back propagation استکهبرایآموزششبکهباچندیننرونبههممتصلبکارمیرود. • همچنیناینروشپایهایبرایانواعالگوریتمهاییادگیریاستکهبایدفضایفرضیهایشاملفرضیههایمختلفپیوستهراجستجوکنند.
قانوندلتا 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 = Σd (td – Od) (-xid) • لذاوزنهاطبقرابطهزیرتغییرخواهندنمود. Δwi = η Σd (td – Od) xid
خلاصهیادگیریقانوندلتا الگوریتمیادگیریبااستفادهازقانوندلتابصورتزیرمیباشد. • بهوزنهامقدارتصادفینسبتدهید • تارسیدنبهشرایطتوقفمراحلزیرراادامهدهید • هروزنwiرابامقدارصفرعدددهیاولیهکنید. • برایهرمثال: وزنwiرابصورتزیرتغییردهید: wi = wi + η (t – o) xi مقدارwiرابصورتزیرتغییردهید: wi = wi + wi تاخطابسیارکوچکشود Δ Δ Δ Δ Δ Delta rule is similar to the perceptron training rule!
مشکلاتروش 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
Multilayer Networks of Sigmoid Units • Distinguishing among 10 possible vowels
مثال x2 x1
یکسلولواحد برایاینکهبتوانیمفضایتصمیمگیریرابصورتغیرخطیازهمجدابکنیم،لازماستتاهرسلولواحدرابصورتیکتابعغیرخطیتعریفنمائیم.مثالیازچنینسلولیمیتواندیکواحدسیگموئیدباشد: Multiple layers of cascaded linear units still produce only linear functions
تابعسیگموئید خروجیاینسلولواحدرابصورتزیرمیتوانبیاننمود: 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)
قدرتتعمیمو overfitting • شرطپاینالگوریتم BP چیست؟ • یکانتخابایناستکهالگوریتمراآنقدرادامهدهیمتاخطاازمقدارمعینیکمترشود.اینامرمیتواندمنجربهoverfittingشود. Validation set error Error Training set error Number of weight updates
دلایلرخدادن overfitting • overfitting ناشیازتنظیموزنهابرایدرنظرگرفتنمثالهاینادریاستکهممکناستباتوزیعکلیدادههامطابقتنداشتهباشند.تعدادزیادوزنهاییکشبکهعصبیباعثمیشودتاشبکهدرجهآزادیزیادیبرایانطباقبااینمثالهاداشتهباشد. • باافزایشتعدادتکرار،پیچیدگیفضایفرضیهیادگرفتهشدهتوسطالگوریتمبیشتروبیشترمیشودتاشبکهبتواندنویزومثالهاینادرموجوددرمجموعهآموزشرابدرستیارزیابینماید.