470 likes | 686 Vues
شبکه ها ی عصبی مصنوعی. مدرس: دکتر فریبرز محمودی گروه مهندسی کامپیوتر دانشگاه آزاد اسلامی قزوین & Mitchell Ch. 4. مقدمه. شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی ، توابع با مقادیر گسسته و توابع با مقادیر برداری میباشد .
E N D
شبکههایعصبیمصنوعی مدرس: دکتر فریبرز محمودی گروه مهندسی کامپیوتر دانشگاه آزاد اسلامی قزوین & Mitchell Ch. 4
مقدمه • شبکهعصبیمصنوعیروشیعملیبراییادگیریتوابعگوناگوننظیرتوابعبامقادیرحقیقی،توابعبامقادیرگسستهوتوابعبامقادیربرداریمیباشد. • یادگیریشبکهعصبیدربرابرخطاهای دادههایآموزشیمقاومبوده واینگونهشبکههاباموفقیتبهمسایلینظیرشناساییگفتار، شناساییو تعبیرتصاویر، ویادگیریروبات اعمالشدهاست.
شبکهعصبیچیست؟ • روشیبرایمحاسبهاستکهبرپایهاتصالبههمپیوستهچندینواحد پردازشی ساختهمیشود. • شبکهازتعداددلخواهیسلولیاگرهیاواحدیانرونتشکیلمیشود کهمجموعهورودیرابهخروجیربطمیدهند.
شبکه عصبیچهقابلیتهاییدارد؟ • محاسبهیکتابع معلوم • تقریبیکتابعناشناخته • شناساییالگو • پردازش سیگنال • یادگیریانجاممواردفوق
الهامازطبیعت • مطالعهشبکههایعصبیمصنوعیتاحدزیادیملهمازسیستمهاییادگیرطبیعیاستکهدرآنهایکمجموعهپیچیدهازنرونهایبههممتصل درکاریادگیریدخیلهستند. • گمانمیرودکهمغزانسانازتعداد 1011نرونتشکیلشدهباشدکههرنرونباتقریبا 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 دریادگیری پرسپترونعبارتاستازمجموعهتماممقادیرحقیقیممکنبرایبردارهایوزن.
تواناییپرسپترون • پرسپترونرامیتوانبه صورت یکسطحتصمیم hyper plane درفضای nبعدینمونههادرنظرگرفت .پرسپترونبراینمونههاییکطرفصفحهمقدار 1 وبرایمقادیرطرفدیگرمقدار -1 بوجودمیآورد. Decision boundary (WX = 0) + + + - - -
توابعیکه پرسپترونقادربهیادگیریآنهامیباشد • یک پرسپترون فقطقادراست مثالهاییرایادبگیردکهبه صورت خطیجداپذیرباشند .اینگونهمثالهامواردیهستندکهبطورکاملتوسطیک hyper plane قابلجداسازی میباشند. + + + + + - - + - - - - Linearly separable Non-linearly separable
توابعبولیو پرسپترون • یک پرسپترونمیتواندبسیاریازتوابعبولیرانمایشدهدنظیرAND, OR, NAND, NOR • امانمیتواندXORرانمایشدهد. • درواقعهرتابعبولیرامیتوانباشبکهای دوسطحیاز پرسپترونها نشانداد. x1 AND: W1=0.5 Σ W2=0.5 W0 = -0.8 x2 X0=1
آموزش پرسپترون • چگونهوزنهاییک پرسپترونواحدرایادبگیریمبهنحویکه پرسپترونبرای مثالهایآموزشیمقادیرصحیحراایجادنماید؟ • دوراهمختلف : • قاعده پرسپترون • قاعدهدلتا
آموزش پرسپترون الگوریتمیادگیری پرسپترون • مقادیریتصادفیبهوزنهانسبتمیدهیم. • پرسپترون رابهتکتک مثالهایآموزشیاعمالمیکنیم. اگرمثال غلطارزیابیشودمقادیروزنهای پرسپترونراتصحیحمیکنیم. • آیاتمامی مثالهایآموزشیدرستارزیابیمیشوند: • بله پایانالگوریتم • خیربهمرحله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 • برایدرکبهتراینروشآنرابهیک پرسپترونفاقدحدآستانهاعمالمیکنیم. یعنی داریم: • ابتدالازماستتعریفیبرای خطای آموزشارایهشود. یکتعریفمتداولاینچنیناست: D = Training Set • کهاینمجموعبرایتماممثالهایآموزشیانجاممیشود.
الگوریتمGradient descent • باتوجهبهنحوهتعریف E سطحخطا به صورتیکسهمیخواهدبود. مابدنبالوزنهاییهستیمکه حداقلخطاراداشتهباشند .الگوریتمGradient descent درفضایوزنهابدنبالبرداریمیگرددکهخطاراحداقلکند. اینالگوریتمازیکمقداردلخواهبرایبرداروزنشروعکردهودرهرمرحلهوزنهاراطوریتغییرمیدهدکه درجهت شیبکاهشیمنحنیفوقخطاکاهشدادهشود. E(W) w1 w2
بدستآوردنقاعدهGradient descent • ایدهاصلی: گرادیان هموارهدرجهتافزایششیب E عملمیکند. • گرادیان E نسبتبهبرداروزن w به صورت زیرتعریفمیشود: • کهدرآنیکبردارومشتقجزیینسبتبههروزنمیباشد.
قاعدهدلتاDelta Rule • براییکمثالآموزشیX= (x1, x2, …, xn) درهرمرحلهوزنهابراساسقاعدهدلتابه صورت زیرتغییرمیکند: η: learning rate (e.g., 0.1) علامتمنفینشاندهندهحرکتدرجهتکاهششیباست.
محاسبهگرادیان • بامشتقگیریجزییازرابطهخطامیتوانبسادگیگرادیانرامحاسبهنمود: • لذا وزنها طبقرابطهزیرتغییرخواهندنمود.
خلاصهیادگیریقاعدهدلتا الگوریتمیادگیریبااستفادهازقاعدهدلتابه صورت زیرمیباشد. • بهوزنهامقدارتصادفی کوچکنسبتدهید. • تارسیدنبهشرایطتوقف (کوچک شدن خطا) مراحل زیر را ادامه دهید: • هروزن Δwiرا با مقدار صفر مقداردهی اولیه کنید. • برایهمهنمونهها(xi, t) در مجموعه آموزشی وزن Δwiرا به صورت زیر تغییر دهید: • برای هرwiآنرابه صورت زیرتغییردهید: wi = wi + Δwi
مشکلاتروشGradient descent • ممکناستهمگراشدنبهیکمقدارمینیممزمانزیادیلازمداشتهباشد. • اگردرسطحخطا چندینمینیمممحلیوجودداشتهباشدتضمینیوجودنداردکهالگوریتم مینیمممطلقراپیداکند. درضمناینروشوقتیقابلاستفادهاستکه: • فضایفرضیهدارایفرضیههایپارامتریکپیوستهباشد. • رابطهخطاقابلمشتقگیریباشد.
تقریبافزایشیGradient descent • میتوانبجایتغییروزنهاپسازمشاهدههمه مثالها،آنهارا به ازای هرمثالمشاهدهشدهتغییرداد. دراینحالتوزنهابه صورت افزایشی(Incremental)تغییرمیکنند. اینروش راStochasticgradient descent نیز مینامند. • دربعضیمواردتغییرافزایشیوزنهامیتواندازبروزمینیمممحلیجلوگیریکند. روشاستانداردنیازبهمحاسباتبیشتریدارددرعوضمیتواندطولstepبزرگتریهمداشتهباشد.
شبکههایچندلایه برخلاف پرسپترونهاشبکههایچندلایهمیتوانندبراییادگیریمسایلغیرخطیوهمچنینمسایلیباتصمیمگیریهایمتعددبکارروند. Output nodes Internal nodes Input nodes
مثال x2 x1
یکسلولواحد برایاینکهبتوانیمفضایتصمیمگیریرابه صورت غیرخطیازهمجدابکنیم،لازماستتاهرسلولواحدرابه صورت یکتابعغیرخطیتعریفنماییم. مثالیازچنینسلولیمیتواندیکواحدسیگموییدباشد:
تابعسیگمویید خروجیاینسلول واحدرابه صورت زیرمیتوانبیاننمود: تابعσتابعسیگموییدیالجستیکنامیدهمیشود. اینتابعدارایخاصیتزیراست:
الگوریتم Back propagation • براییادگیریوزنهاییکشبکهچندلایهازروشBack Propagation استفادهمیشود. دراینروشبا استفادهاز Gradient descentسعیمیشودتا مربعخطایبینخروجیهایشبکهوتابعهدفمینیممشود. • خطابه صورت زیرتعریفمیشود: مرادازoutputs خروجیهایمجموعهواحدهایلایهخروجیو tkdوokdمقدارهدفوخروجیمتناظرباkامینواحدخروجیومثالآموزشیdاست.
الگوریتم Back propagation • فضایفرضیهموردجستجودراینروشعبارتاستازفضایبزرگیکهتوسطهمهمقادیرممکنبرایوزنهاتعریفمیشود. روشGradientdescentسعیمیکندتابامینیممکردنخطابهفرضیهمناسبیدستپیداکند. اماتضمینیبرایاینکهاینالگوریتمبهمینیمممطلقبرسدوجودندارد.
الگوریتم 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 = wjiوزن واحد i به j = xjiورودی واحد i به j η= نرخیادگیری نسخه .Stochastic gradient descent
شرطخاتمه معمولاالگوریتمBPپیشازخاتمههزارانباربااستفاده هماندادههایآموزشیتکرارمیگرددشروطمختلفیرامیتوانبرایخاتمهالگوریتم بکاربرد: • توقفبعدازتکراربهدفعاتمعین. • توقفوقتیکهخطاازیکمقدارتعیینشدهکمترشود. • توقفوقتیکهخطادرمثالهایمجموعهتاییدازقاعدهخاصیپیروینماید. • اگردفعاتتکرارکمباشدخطاخواهیمداشتواگرزیادباشدمسالهOver fittingرخخواهدداد.
مرورالگوریتم BP • اینالگوریتمیکجستجویGradient descentدرفضایوزنهاانجاممیدهد. • ممکناستدریکمینیمممحلیگیربیافتد. • درعملبسیارموثربودهاست. برایپرهیزازمینیمممحلیروشهایمختلفیوجوددارد: • افزودنممنتم. • استفادهاز .Stochastic gradient descent • استفادهازشبکههایمختلفبامقادیرمتفاوتیبرایوزنهایاولیه.
افزودنممنتم • میتوانقاعدهتغییروزنهاراطوریدرنظرگرفتکهتغییروزندرتکرار n امتاحدیبه اندازهتغییر وزندرتکرارقبلیبستگیداشتهباشد. Δwji (n) = ηδj xji + αΔwji (n-1) کهدرآنمقدارممنتمαبه صورت 0 <= α <= 1میباشد. افزودنممنتمباعثمیشودتاباحرکتدرمسیرقبلیدرسطحخطا: • ازگیرافتادندرمینیممحلیپرهیزشود. • ازقرارگرفتندرسطوحصافپرهیزشود. • باافزایشتدریجیمقدارپلهتغییرات،سرعتجستجوافزایشیابد. قاعدهتغییروزن عبارتممنتم
قدرتنمایشتوابع • گرچهقدرتنمایشتوابعتوسطیکشبکهfeedforwardبستهبهعمقوگستردگیشبکهدارد،بااینوجودمواردزیررامیتوانبهصورتقوانینکلیبیاننمود: • توابعبولی: هرتابعبولیرامیتوانتوسطیکشبکهدولایهپیادهسازی نمود. • توابعپیوسته: هرتابعپیوستهمحدودرامیتوانتوسطیکشبکهدولایهتقریبزد. تئوریمربوطهدرموردشبکههاییکهازتابعسیگموییددرلایهپنهانولایهخطیدرشبکهخروجیاستفادهمیکنندصادقاست. • توابعدلخواه:هرتابعدلخواهرامیتوانبایکشبکهسهلایهتاحدقابلقبولیتفریبزد. بااینوجودبایددرنظرداشتکهفضایفرضیهجستجوشدهتوسطروش Gradient descent ممکناست دربرگیرندهتماممقادیرممکنوزنهانباشد.
فضایفرضیهوبایاساستقرا • فضایفرضیه موردجستجورامیتوانبه صورت یکفضایفرضیهاقلیدسیnبعدیازوزنهایشبکهدرنظرگرفت. )کهn تعدادوزنهاست( • اینفضایفرضیهبرخلاففضایفرضیهدرختتصمیمیکفضایپیوستهاست. • بایاساستقرااینروشرامیتوانبه صورت زیربیانکرد: “smooth interpolation between data points” بهاینمعناکهالگوریتمBPنقاط درونیابی شده بین دو نقطه با کلاس معین را به همان کلاس متعلق میداند.به عبارت دیگرسعیمیکندتانقاطیراکهبههمنزدیکترهستنددریکدستهبندی قرار دهد.
مثال x2 x1 Smooth regions
ورودی خروجی قدرتنمایشلایهپنهان • یکیازخواصBPایناستکهمیتوانددرلایههایپنهانشبکهویژگیهایناآشکاریازدادهورودینشاندهد. برایمثالشبکه8x3x8زیرطوریآموزشدادهمیشودکه مقدارهرمثالورودیراعینادرخروجیبوجودآورد )تابعf(x)=xرایادبگیرد(.ساختارخاصاینشبکهباعثمیشودتاواحدهایلایهوسطویژگیهایمقادیرورودیرابهنحوی کدبندیکنندکهلایهخروحیبتواندازآنانبراینمایشمجدد دادههااستفادهنماید.
قدرتنمایشلایهپنهان دراینآزمایشکهبهتعداد5000بارتکرارشدهاز8دادهمختلفبهعنوانورودیاستفادهشدهوشبکهبااستفادهازالگوریتمBPموفقشدهتاتابعهدفرابیاموزد. بامشاهدهخروجی واحدهایلایهمیانیمشخصمیشودکهبردارحاصلمعادلانکدینگاستاندارددادههای ورودی بوده است (111، ... ، 001 ، 000)
نمودارخطا Different units Error iterations Different weights weight iterations
قدرتتعمیمو Over fitting • شرطپایانالگوریتمBPچیست؟ • یکانتخابایناستکهالگوریتمراآنقدرادامهدهیمتاخطاازمقدارمعینی کمترشود. اینامرمیتواندمنجربهOver fittingشود. Validation set error Error Training set error Number of weight updates
دلایلرخدادن Over fitting • Over fittingناشیازتنظیموزنهابرایدرنظرگرفتنمثالهاینادریاستکهممکناستباتوزیعکلیدادههامطابقتنداشتهباشند. تعدادزیادوزنهاییکشبکهعصبیباعثمیشودتا شبکهدرجهآزادیزیادیبرایانطباقبااینمثالهاداشتهباشد. • باافزایشتعدادتکرار،پیچیدگیفضایفرضیهیادگرفتهشدهتوسطالگوریتمبیشتروبیشترمیشودتاشبکهبتواندنویزومثالهاینادرموجود درمجموعهآموزشرابدرستیارزیابینماید.
راهحل • استفادهازیکمجموعهتاییدValidation وتوقفیادگیریهنگامیکهخطادراینمجموعهبهاندازهکافیکوچکمیشود. • بایاس کردنشبکهبرایفضاهایفرضیهسادهتر: یکراهمیتوانداستفادهازweight decay باشدکهدرآنمقداروزنهادرهربار تکراربه اندازهخیلیکمیکاهشدادهمیشود. • k-fold cross validation وقتیکهتعدادمثالهایآموزشیکمباشدمیتوانm دادهآموزشیرابهkدستهتقسیمبندینمودهوآزمایشرابهتعدادkدفعه تکرارنمود. درهردفعهیکیازدستههابعنوانمجموعهتستوبقیهبعنوانمجموعهآموزشیاستفادهخواهندشد. تصمیمگیریبراساسمیانگیننتایجانجاممیشود.
روشهایدیگر راههایبسیارمتنوعیبرای ایجادشبکههایجدیدوجودداردازجمله: • استفادهازتعاریفدیگریبرایتابعخطا • استفادهازروشهایدیگریبرایکاهشخطادرحینیادگیری • Hybrid Global Learning • Simulated Annealing • Genetic Algorithms • استفادهازتوابعدیگریدرواحدها • Radial Basis Functions • استفادهازساختارهایدیگریبرایشبکه • Recurrent Network