دانلود پاورپوینت یادگیری ماشین قسمت دوم

Download Report

Transcript دانلود پاورپوینت یادگیری ماشین قسمت دوم

‫‌های عصبی مصنوعی‬
‫شبکه‬
‫مدرس‪ :‬دکتر فریبرز محمودی‬
‫گروه‌مهندسی‌کامپیوتر‬
‫دانشگاه‌آزاد‌اسالمی‌قزوین‬
‫‪& Mitchell Ch. 4‬‬
‫‪2‬‬
‫مقدمه‬
‫‪‬‬
‫‪‬‬
‫شبکه عصبی مصنوعی روشی عملی برای‬
‫یادگیری توابع گوناگون نظیر توابع با‬
‫مقادیر حقیقی‪ ،‬توابع با مقادیر‬
‫گسسته و توابع با مقادیر برداری‬
‫‌باشد‪.‬‬
‫می‬
‫یادگیری شبکه عصبی در برابر خطاهای‬
‫‌های آموزشی مقاوم بوده و اینگونه‬
‫داده‬
‫‌ها با موفقیت به مسایلی نظیر‬
‫شبکه‬
‫شناسایی گفتار‪ ،‬شناسایی و تعبیر‬
‫تصاویر‪ ،‬و یادگیری روبات اعمال شده‬
‫‪3‬‬
‫شبکه عصبی چیست؟‬
‫‪ ‬روشی برای محاسبه است که بر‬
‫پایه اتصال به هم پیوسته‬
‫چندین واحد پردازشی ساخته‬
‫‌شود‪.‬‬
‫می‬
‫‪ ‬شبکه از تعداد دلخواهی سلول‬
‫یا گره یا واحد یا نرون‬
‫‌شود که مجموعه‬
‫تشکیل می‬
‫ورودی را به خروجی ربط‬
‫‌دهند‪.‬‬
‫می‬
‫‪Input n‬‬
‫‪Hidden Layer‬‬
‫‪Hm‬‬
‫‪...‬‬
‫‪H1‬‬
‫‪H0‬‬
‫‪Oo‬‬
‫‪...‬‬
‫‪O1‬‬
‫‪O0‬‬
‫‪Output 1‬‬
‫‪Output 0‬‬
‫‪Output o‬‬
‫‪4‬‬
‫‪...‬‬
‫‪Input 1‬‬
‫‪Input 0‬‬
‫‪...‬‬
‫شبکه‌عصبی چه قابلیتهایی دارد؟‬
‫‪ ‬محاسبه یک تابع‌معلوم‬
‫‪‬‬
‫تقریب یک تابع ناشناخته‬
‫‪ ‬شناسایی الگو‬
‫‪ ‬پردازش‌سیگنال‬
‫‪ ‬یادگیری انجام موارد فوق‬
‫‪5‬‬
‫الهام از طبیعت‬
‫‪‬‬
‫‌های عصبی مصنوعی تا حد زیادی‬
‫مطالعه شبکه‬
‫‌های یادگیر طبیعی است که در‬
‫ملهم از سیستم‬
‫آنها یک مجموعه پیچیده از نرونهای به هم‬
‫متصل در کار یادگیری دخیل هستند‪.‬‬
‫‪‬‬
‫‌رود که مغز انسان از تعداد ‪ 1011‬نرون‬
‫گمان می‬
‫تشکیل شده باشد که هر نرون با تقریبا ‪104‬‬
‫نرون دیگر در ارتباط است‪.‬‬
‫‪‬‬
‫سرعت سوییچنگ نرونها در حدود ‪ 10-3‬ثانیه است‬
‫که در مقایسه با کامپیوترها )‪ 10-10‬ثانیه‬
‫‌نماید‪ .‬با این وجود آدمی‬
‫(بسیار ناچیز می‬
‫قادر است در ‪ 0.1‬ثانیه تصویر یک انسان را‬
‫بازشناسایی نماید‪ .‬این قدرت فوق العاده‬
‫‪6‬‬
‫مسایل مناسب برای یادگیری‬
‫شبکههای عصبی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‌های‌آموزشی‌وجود‌داشته‌باشد‪.‬‬
‫خطا‌در‌داده‬
‫‌های‌آموزشی‌دارای‌نویز‬
‫مثل مسایلی‌که‌داده‬
‫‌های‌سنسورها نظیر‌دوربیین‌و‌‬
‫حاصل‌از‌داده‬
‫‌ها‌هستند‪.‬‬
‫میکروفن‬
‫‌ها ‌توسیط ‌مقیادیر‌زییادی‌‬
‫مواردی ‌که ‌نمونه‬
‫زوج ‌ویژگی‪-‬مقدار نشان ‌داده ‌شیده‌باشیند‪.‬‬
‫‌هییای‌حاصییل‌از‌یییک‌دوربییین‌‬
‫نظیییر‌داده‬
‫ویدیویی‪.‬‬
‫تابع‌هدف‌دارای‌مقادیر‌پیوسته باشد‪.‬‬
‫زمان ‌کیافی ‌بیرای ‌ییادگیری ‌وجیود‌داشیته‌‬
‫باشد‪ .‬این‌روش‌در‌مقایسه‌با‌روشهای‌دیگر‌‬
‫نظیر‌درخت‌تصمیم‌نیاز‌بیه‌زمیان‌بیشیتری‌‬
‫‪7‬‬
‫‪Perceptron‬‬
‫‪ ‬نوعی از شبکه عصبی بر مبنای یک واحد‬
‫‌شود‪ .‬یک‬
‫محاسباتی به نام پرسپترون ساخته می‬
‫پرسپترون برداری از ورودیهای با مقادیر‬
‫حقیقی را گرفته و یک ترکیب خطی از این‬
‫‌کند‪ .‬اگر حاصل از یک‬
‫ورودیها را محاسبه می‬
‫پرسپترون‪x1‬‬
‫مقدار آستانه بیشتر بود خروجی‬
‫‪w1‬‬
‫برابر با ‪ 1‬و در غیر اینصورت معادل ‪ -1‬خواهد‬
‫‪x2‬‬
‫‪w2‬‬
‫بود‪{1.‬‬
‫}‪or –1‬‬
‫‪Σ‬‬
‫‪w0‬‬
‫‪8‬‬
‫‪X0=1‬‬
‫‪wn‬‬
‫‪xn‬‬
‫یادگیری یک پرسپترون‬
‫‪‬‬
‫‌شود‪:‬‬
‫خروجی پرسپترون توسط رابطه زیر مشخص می‬
‫‪1 if w0 + w1x1 + w2x2 + … + wnxn > 0‬‬
‫‪-1 otherwise‬‬
‫‪‬‬
‫= )‪O(x1,x2,…,xn‬‬
‫‌توان به‌صورت‌زیر‬
‫که برای سادگی آنرا می‬
‫نشان داد‪:‬‬
‫‪O(X) = sgn(WX) where‬‬
‫‪1 if y > 0‬‬
‫= )‪Sgn(y‬‬
‫‪-1 otherwise‬‬
‫یادگیری پرسپترون عبارت‌است از‪:‬‬
‫پیدا کردن مقادیر درستی برای ‪W‬‬
‫بنابراین فضای فرضیه ‪ H‬در یادگیری پرسپترون عبارت است‬
‫‪9‬‬
‫ازمجموعه تمام مقادیر حقیقی ممکن برای بردارهای وزن‪.‬‬
‫توانایی پرسپترون‬
‫‪‬‬
‫‌توان به صورت یک سطح تصمیم‬
‫پرسپترون را می‬
‫‌ها در نظر گرفت‬
‫‪hyper plane‬در فضای‪ n‬بعدی نمونه‬
‫‌های یک طرف صفحه مقدار ‪1‬‬
‫‪.‬پرسپترون برای نمونه‬
‫و برای مقادیر طرف دیگر مقدار ‪ -1‬بوجود‬
‫‌آورد‪.‬‬
‫می‬
‫)‪Decision boundary (WX = 0‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪-‬‬
‫‬‫‬‫‪10‬‬
‫توابعی که پرسپترون قادر‬
‫به یادگیری آنها میباشد‬
‫‪‬‬
‫یک پرسپترون فقط قادر است مثالهایی را یاد‬
‫بگیرد که به صورت خطی جداپذیر باشند‬
‫‪.‬اینگونه مثالها مواردی هستند که بطور کامل‬
‫توسط یک‪ hyper plane‬قابل جداسازی میباشند‪.‬‬
‫‪+‬‬
‫‪+‬‬
‫‪-‬‬
‫‪+‬‬
‫‪-‬‬
‫‪Non-linearly separable‬‬
‫‪11‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪-‬‬
‫‪-‬‬
‫‬‫‪-‬‬
‫‪Linearly separable‬‬
‫توابع بولی و پرسپترون‬
‫‪ ‬یک پرسپترون میتواند بسیاری از توابع بولی را نمایش دهد نظیر‬
‫‪‬‬
‫‪AND, OR, NAND, NOR‬‬
‫اما نمیتواند ‪ XOR‬را نمایش دهد‪.‬‬
‫‪W1=0.5‬‬
‫‪Σ‬‬
‫‪x1‬‬
‫‪AND:‬‬
‫‪W2=0.5‬‬
‫‪-0.8‬‬
‫سطحی از پرسپترونها‬
‫‪ ‬در واقع هر تابع بولی را‬
‫می = ‪0‬‬
‫توان‪W‬با شبکه‌ای دو ‪x2‬‬
‫نشان داد‪.‬‬
‫‪X0=1‬‬
‫‪12‬‬
‫آموزش پرسپترون‬
‫‪‬‬
‫چگونه وزنهای یک پرسپترون واحد را یاد بگیریم به نحوی که‬
‫پرسپترون برای مثالهای آموزشی مقادیر صحیح را ایجاد نماید؟‬
‫‪‬‬
‫دو راه مختلف‪:‬‬
‫‪13‬‬
‫‪‬‬
‫قاعده‌پرسپترون‬
‫‪‬‬
‫قاعده دلتا‬
‫آموزش پرسپترون‬
‫الگوریتم یادگیری پرسپترون‬
‫‪.1‬‬
‫مقادیری تصادفی به وزنها نسبت میدهیم‪.‬‬
‫‪.2‬‬
‫پرسپترون را به تک تک مثالهای آموزشی اعمال میکنیم‪ .‬اگر مثال‬
‫غلط ارزیابی شود مقادیر وزنهای پرسپترون را تصحیح میکنیم‪.‬‬
‫‪.3‬‬
‫آیا تمامی مثالهای آموزشی درست ارزیابی میشوند‪:‬‬
‫‪14‬‬
‫‪‬‬
‫بله ‪ ‬پایان الگوریتم‬
‫‪‬‬
‫خیر‪‬به مرحله ‪ 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‬‬
‫اثبات شده است که برای یک مجموعه مثال جداپذیر خطی این روش همگرا شده و‬
‫پرسپترون قادر به جداسازی صحیح مثالها خواهد شد‪.‬‬
‫‪15‬‬
‫قاعده دلتا‬
‫‪Delta Rule‬‬
‫‪ ‬وقتی که مثالها به صورت خطی جداپذیر نباشند قاعده پرسپترون همگرا‬
‫نخواهد شد‪ .‬برای غلبه بر این مشکل از قاعده دلتا استفاده میشود‪.‬‬
‫‪‬‬
‫ایده اصلی این قاعده استفاده از ‪Gradient descent‬‬
‫برای جستجو در‬
‫فضای فرضیه وزنهای ممکن میباشد‪ .‬این قاعده پایه‬
‫‪propagation‬‬
‫روش ‪Back‬‬
‫است که برای آموزش شبکه با چندین نرون به هم متصل بکار‬
‫میرود‪.‬‬
‫‌ای برای انواع الگوریتمهای یادگیری است که‬
‫‪ ‬همچنین این روش پایه‬
‫‌ای شامل فرضیههای مختلف پیوسته را جستجو کنند‪.‬‬
‫باید فضای فرضیه‬
‫‪16‬‬
‫قاعده دلتا‬
‫‪Delta Rule‬‬
‫‪‬‬
‫برای درک بهتر این روش آنرا به یک پرسپترون‬
‫اعمال می‪‬کنیم‪ .‬یعنی داریم‪:‬‬
‫فاقد حد آستانه‬
‫‪‬‬
‫‪O( x )  w.x‬‬
‫‪‬‬
‫ابتدا الزم است تعریفی برای خطای آموزش‬
‫ارایه شود‪ .‬یک تعریف متداول این چنین است‪:‬‬
‫‪ 1‬‬
‫‪E(w)  2  (td  od ) 2‬‬
‫‪dD‬‬
‫‪D = Training Set‬‬
‫‪‬‬
‫که این مجموع برای تمام مثالهای آموزشی‬
‫انجام میشود‪.‬‬
‫‪17‬‬
‫الگوریتم ‪Gradient descent‬‬
‫‪ ‬با توجه به نحوه تعریف ‪ E‬سطح خطا به صورت‬
‫یک سهمی خواهد بود‪ .‬ما بدنبال وزنهایی‬
‫هستیم که حداقل خطا را داشته باشند‬
‫‪.‬الگوریتم ‪ Gradient descent‬در فضای وزنها‬
‫بدنبال برداری میگردد که خطا را حداقل‬
‫کند‪ .‬این الگوریتم از یک مقدار دلخواه‬
‫برای بردار وزن شروع کرده و در هر مرحله‬
‫وزنها را طوری تغییر میدهد که در جهت‬
‫شیب کاهشی منحنی فوق خطا کاهش داده شود‪.‬‬
‫)‪E(W‬‬
‫‪w1‬‬
‫‪18‬‬
‫‪w2‬‬
‫بدست آوردن قاعده ‪Gradient descent‬‬
‫‪‬‬
‫ایده اصلی‪ :‬گرادیان‌همواره در جهت افزایش‬
‫شیب ‪ E‬عمل میکند‪.‬‬
‫‪‬‬
‫گرادیان ‪ E‬نسبت به بردار وزن ‪ w‬به‌صورت‌زیر‬
‫تعریف می ‪‬‬
‫‪  E E‬‬
‫شود‪E:‬‬
‫‪E ( w)  ‬‬
‫‪,‬‬
‫‪,...,‬‬
‫‪‬‬
‫‪wn ‬‬
‫‪ w0 w1‬‬
‫‪‬‬
‫)‪E (w‬‬
‫‪‬‬
‫‪E‬‬
‫‪wi‬‬
‫یک بردار و‬
‫که در آن‬
‫به هر وزن میباشد‪.‬‬
‫‪19‬‬
‫مشتق جزیی نسبت‬
‫قاعده دلتا ‪Delta Rule‬‬
‫‪ ‬برای یک مثال آموزشی )‪ X = (x1, x2, …, xn‬در هر مرحله وزنها بر اساس قاعده‬
‫دلتا به‌صورت‌زیر تغییر میکند‪:‬‬
‫)‪η: learning rate (e.g., 0.1‬‬
‫عالمت منفی نشاندهنده حرکت در جهت کاهش شیب است‪.‬‬
‫‪20‬‬
‫محاسبه گرادیان‬
‫‪‬‬
‫‌گیری جزیی از رابطه خطا میتوان‬
‫با مشتق‬
‫بسادگی گرادیان را محاسبه نمود‪:‬‬
‫‪E‬‬
‫) ‪  (t d  od )( xid‬‬
‫‪wi dD‬‬
‫‪‬‬
‫لذا‌وزنها‌طبق رابطه زیر تغییر خواهند‬
‫نمود‪.‬‬
‫‪wi    (td  Od ) xid‬‬
‫‪dD‬‬
‫‪21‬‬
‫خالصه یادگیری قاعده دلتا‬
‫الگوریتم یادگیری با استفاده از قاعده دلتا به‌‬
‫صورت‌زیر میباشد‪.‬‬
‫‪.1‬‬
‫به وزنها مقدار تصادفی‌کوچک نسبت دهید‪.‬‬
‫‪.2‬‬
‫تا رسیدن به شرایط توقف‌(کوچک شدن‌خطا)‬
‫مراحل‌زیر‌را‌ادامه‌دهید‪:‬‬
‫‪‬‬
‫دهی‌اولیه‌‬
‫هر وزن‌‪Δwi‬‬
‫مقدار‪wi  wi ‬‬
‫را‌با‌مقدار‌صفر‌‪ (t  o‬‬
‫‪) xi‬‬
‫کنید‪.‬‬
‫‪‬‬
‫‌ها (‪ )xi, t‬در‌مجموعه‌آموزشی‌وزن‌‬
‫برای همه نمونه‬
‫‪Δwi‬را‌به‌صورت‌زیر‌تغییر‌دهید‪:‬‬
‫‪22‬‬
‫مشکالت روش ‪Gradient descent‬‬
‫‪.1‬‬
‫ممکن است همگرا شدن به یک مقدار مینیمم زمان زیادی الزم داشته باشد‪.‬‬
‫‪.2‬‬
‫اگر در سطح خطا چندین مینیمم محلی وجود داشته باشد تضمینی وجود‬
‫ندارد که الگوریتم مینیمم مطلق را پیدا کند‪.‬‬
‫در ضمن این روش وقتی قابل استفاده است که‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪23‬‬
‫فضای فرضیه دارای فرضیههای پارامتریک پیوسته باشد‪.‬‬
‫رابطه خطا قابل مشتقگیری باشد‪.‬‬
‫تقریب افزایشی ‪Gradient descent‬‬
‫‪ ‬میتوان بجای تغییر وزنها پس از مشاهده همه مثالها‪ ،‬آنها را به ازای‬
‫هر مثال مشاهده شده تغییر داد‪ .‬در این حالت وزنها به صورت افزایشی‬
‫)‪(Incremental‬تغییر میکنند‪ .‬این روش‬
‫‪descent‬‬
‫را ‪Stochastic gradient‬‬
‫نیز مینامند‪.‬‬
‫‪wi   (t  o) xi‬‬
‫‪ ‬در بعضی موارد تغییر افزایشی وزنها میتواند از بیروز مینییمم محلیی‬
‫جلوگیری کند‪ .‬روش استاندارد نیاز به محاسیبات بیشیتری دارد درعیو‬
‫میتواند طول ‪ step‬بزرگتری هم داشته باشد‪.‬‬
‫‪24‬‬
‫شبکههای چند الیه‬
‫بر خالف پرسپترونها شبکههای چند الیه میتوانند برای‬
‫یادگیری مسایل غیرخطی و همچنین مسایلی با‬
‫تصمیمگیریهای متعدد بکار روند‪.‬‬
‫‪Output nodes‬‬
‫‪Internal nodes‬‬
‫‪Input nodes‬‬
‫‪25‬‬
‫مثال‬
‫‪x2‬‬
‫‪x1‬‬
‫‪26‬‬
‫یک سلول واحد‬
‫برای اینکه بتوانیم فضای تصمیمگیری را به صورت‬
‫غیرخطی از هم جدا بکنیم‪ ،‬الزم است تا هر سلول‬
‫واحد را به صورت یک تابع غیرخطی تعریف نماییم‪.‬‬
‫مثالی از چنین سلولی میتواند یک واحد سیگمویید‬
‫باشد‪:‬‬
‫‪27‬‬
‫تابع سیگمویید‬
‫خروجی این سلول واحد را به صورت زیر میتوان بیان‬
‫نمود‪:‬‬
‫تابع ‪ σ‬تابع سیگمویید یا لجستیک نامیده میشود‪ .‬این‬
‫تابع دارای خاصیت زیر است‪:‬‬
‫‪28‬‬
‫الگوریتم ‪Back propagation‬‬
‫‪‬‬
‫‪‬‬
‫برای یادگیری وزنهای یک شبکه چند الیه از روش‬
‫‪ Back Propagation‬استفاده میشود‪ .‬در این روش با‬
‫استفاده از ‪ Gradient descent‬سعی میشود تا مربع‬
‫خطای بین خروجیهای شبکه و تابع هدف مینیمم شود‪.‬‬
‫‪ 1‬‬
‫‪2‬‬
‫‪‬‬
‫می( ‪E‬‬
‫تعریف )‪w‬‬
‫به‌صورت‌زیر ‪ ‬‬
‫خطا ‪ okd ‬‬
‫‪‬‬
‫شود‪:‬‬
‫‪t‬‬
‫‪kd‬‬
‫‪2‬‬
‫‪d D koutputs‬‬
‫مراد از ‪ outputs‬خروجیهای مجموعه واحدهای الیه‬
‫خروجی و ‪ tkd‬و ‪ okd‬مقدار هدف و خروجی متناظر با ‪k‬‬
‫امین واحد خروجی و مثال آموزشی ‪ d‬است‪.‬‬
‫‪29‬‬
‫الگوریتم ‪Back propagation‬‬
‫‪ ‬فضای فرضیه مورد جستجو در این روش عبارت است از فضای بزرگی که توسط‬
‫همه مقادیر ممکن برای وزنها تعریف میشود‪ .‬روش ‪ Gradient descent‬سعی‬
‫میکند تا با مینیمم کردن خطا به فرضیه مناسبی دست پیدا کند‪ .‬اما‬
‫تضمینی برای اینکه این الگوریتم به مینیمم مطلق برسد وجود ندارد‪.‬‬
‫‪30‬‬
‫الگوریتم ‪BP‬‬
‫‪.1‬‬
‫شبکهای با ‪ nin‬گره در الیه ورودی‪ nhidden ،‬گره مخفی‪ ،‬و ‪ nout‬گره در الیه‬
‫خروجی ایجاد کنید‪.‬‬
‫‪.2‬‬
‫همه وزنها را با یک مقدار تصادفی کوچک مقداردهی کنید‪.‬‬
‫‪.3‬‬
‫تا رسیدن به شرط پایانی )کوچک شدن خطا( مراحل زیر را انجام دهید‪:‬‬
‫‪.a‬‬
‫برای هر ‪ X‬متعلق به مثالهای آموزشی‪:‬‬
‫‪.b‬‬
‫مثال ‪ X‬را به سمت جلو در شبکه انتشار دهید‪.‬‬
‫‪.c‬‬
‫خطای ‪ E‬را به سمت عقب در شبکه انتشار دهید‪.‬‬
‫مثال آموزشی به صورت یک زوج )‪ (x,t‬ارایه میشود که بردار ‪x‬‬
‫هر‬
‫‪31‬‬
‫مقادیر ورودی و بردار ‪ t‬مقادیر هدف برای خروجی شبکه را تعیین‬
‫میکنند‪.‬‬
‫انتشار به سمت جلو‬
‫‪ ‬برای هر مثال ‪ X‬مقدار خروجی هر واحد را محاسبه کنید تا به گرههای‬
‫خروجی برسید‪.‬‬
‫‪Output nodes‬‬
‫‪Compute sigmoid‬‬
‫‪function‬‬
‫‪Internal nodes‬‬
‫‪Input nodes‬‬
‫‪32‬‬
‫‪Example X‬‬
‫انتشار به سمت عقب‬
‫‪.1‬‬
‫برای هر واحد خروجی جمله‌خطا را به‌صورت‌زیر محاسبه کنید ‪: δk = ok‬‬
‫)‪(1-ok)(tk – ok‬‬
‫‪.2‬‬
‫برای هر واحد مخفی جمله خطا را به‌صورت‌زیر محاسبه کنید‪: δh = oh (1-‬‬
‫‪oh) Σk wkh δk‬‬
‫‪.3‬‬
‫مقدارهر وزن را به‌صورت‌زیر تغییر دهید‪:‬‬
‫‪wji = wji + Δwji‬‬
‫که در آن‪:‬‬
‫‪Δwji = η δj xji‬‬
‫‪ 33= η‬نرخ یادگیری‬
‫‪ = xji‬ورودی واحد ‪ i‬به ‪j‬‬
‫‪ = wji‬وزن واحد ‪ i‬به ‪j‬‬
‫نسخه ‪.Stochastic gradient descent‬‬
‫شرط خاتمه‬
‫معموال الگوریتم ‪ BP‬پیش از خاتمه هزاران بار با استفاده همان دادههای‬
‫آموزشی تکرار میگردد شروط مختلفی را میتوان برای خاتمه الگوریتم‬
‫بکار برد‪:‬‬
‫‪ ‬توقف بعد از تکرار به دفعات معین‪.‬‬
‫‪ ‬توقف وقتی که خطا از یک مقدار تعیین شده کمتر شود‪.‬‬
‫‪ ‬توقف وقتی که خطا در مثالهای مجموعه تایید از قاعده خاصی پیروی‬
‫نماید‪.‬‬
‫‪ ‬اگر دفعات تکرار کم باشد خطا خواهیم داشت و اگر زیاد باشد مساله ‪Over‬‬
‫‪fitting‬رخ خواهد داد‪.‬‬
‫‪34‬‬
‫مرور الگوریتم ‪BP‬‬
‫‪ ‬این الگوریتم یک جستجوی ‪ Gradient descent‬در فضای وزنها انجام میدهد‪.‬‬
‫‪ ‬ممکن است در یک مینیمم محلی گیر بیافتد‪.‬‬
‫‪ ‬در عمل بسیار موثر بوده است‪.‬‬
‫برای پرهیز از مینیمم محلی روشهای مختلفی وجود دارد‪:‬‬
‫‪ ‬افزودن ممنتم‪.‬‬
‫‪ ‬استفاده از‪.Stochastic gradient descent‬‬
‫‪ ‬استفاده ازشبکههای مختلف با مقادیر متفاوتی برای وزنهای اولیه‪.‬‬
‫‪35‬‬
‫افزودن ممنتم‬
‫‪ ‬میتوان قاعده تغییر وزنها را طوری در نظر گرفت که تغییر وزن در‬
‫تکرار ‪ n‬ام تا حدی به اندازه تغییر وزن در تکرار قبلی بستگی‬
‫داشته باشد‪.‬‬
‫)‪Δwji (n) = η δj xji + αΔwji (n-1‬‬
‫که در آن مقدارممنتم ‪ α‬به صورت ‪ 0 <= α <= 1‬میباشد‪.‬‬
‫در مسیر قاعده‬
‫حرکتممنتم‬
‫افزودن ممنتم باعث میشود تا باعبارت‬
‫وزن خطا‪:‬‬
‫تغییرسطح‬
‫قبلی در‬
‫‪ ‬از گیر افتادن در مینیم محلی پرهیز شود‪.‬‬
‫‪ ‬از قرارگرفتن در سطوح صاف پرهیز شود‪.‬‬
‫‪ ‬با افزایش تدریجی مقدار پله تغییرات‪ ،‬سرعت جستجو افزایش یابد‪.‬‬
‫‪36‬‬
‫قدرت نمایش توابع‬
‫‪ ‬گرچه قدرت نمایش توابع توسط یک شبکه ‪feedforward‬‬
‫بسته به عمق و گستردگی شبکه دارد‪ ،‬با این وجود‬
‫موارد زیر را میتوان به صورت قوانین کلی بیان‬
‫نمود‪:‬‬
‫‪ ‬توابع بولی ‪:‬هر تابع بولی را میتوان توسط یک‬
‫‌سازی نمود‪.‬‬
‫شبکه دو الیه پیاده‬
‫‪ ‬توابع پیوسته ‪:‬هر تابع پیوسته محدود را میتوان‬
‫توسط یک شبکه دو الیه تقریب زد‪ .‬تئوری مربوطه‬
‫در مورد شبکههایی که از تابع سیگمویید در الیه‬
‫پنهان و الیه خطی در شبکه خروجی استفاده میکنند‬
‫است‪ .‬درنظر داشت که فضای فرضیه جستجو شده‬
‫وجود باید‬
‫با اینصادق‬
‫توسط روش ‪ Gradient descent‬ممکن است در برگیرنده تمام مقادیر‬
‫نباشد‪.‬‬
‫‪ ‬وزنها‬
‫ممکن‬
‫دلخواه ‪:‬هر تابع دلخواه را میتوان با یک‬
‫توابع‬
‫‪37‬‬
‫فضای فرضیه و بایاس استقرا‬
‫‪‬‬
‫فضای فرضیه مورد جستجو را میتوان به صورت یک‬
‫فضای فرضیه اقلیدسی ‪ n‬بعدی از وزنهای شبکه در‬
‫نظر گرفت‪) .‬که ‪ n‬تعداد وزنهاست(‬
‫‪‬‬
‫این فضای فرضیه بر خالف فضای فرضیه درخت تصمیم‬
‫یک فضای پیوسته است‪.‬‬
‫‪‬‬
‫بایاس استقرا این روش را میتوان به صورت زیر‬
‫بیان کرد‪:‬‬
‫”‪“smooth interpolation between data points‬‬
‫به این معنا که الگوریتم ‪ BP‬نقاط درونیابی شده‬
‫بین دو نقطه با کالس معین را به همان کالس‬
‫‪38‬‬
‫مثال‬
x2
x1
Smooth regions
39
‫قدرت نمایش الیه پنهان‬
‫‪ ‬یکی از خواص ‪ BP‬این است که میتواند در الیههای پنهان شبکه ویژگیهای نا‬
‫آشکاری از داده ورودی نشان دهد‪.‬‬
‫برای مثال شبکه ‪ 8x3x8‬زیر‬
‫طوری آموزش داده میشود که‬
‫مقدار هر مثال ورودی را‬
‫عینا در خروجی بوجود آورد‬
‫یاد‬
‫را‬
‫‪f(x)=x‬‬
‫)تابع‬
‫بگیرد‪(.‬ساختار خاص این شبکه‬
‫باعث میشود تا واحدهای الیه‬
‫وسط ویژگیهای مقادیر ورودی‬
‫را به نحوی کدبندی کنند که‬
‫الیه خروحی بتواند از آنان‬
‫برای ‪40‬نمایش مجدد دادهها‬
‫استفاده نماید‪.‬‬
‫خروجی‬
‫ورودی‬
‫قدرت نمایش الیه پنهان‬
‫در این آزمایش که به تعداد ‪ 5000‬بار تکرار شده از ‪8‬‬
‫داده مختلف به عنوان ورودی استفاده شده و شبکه با‬
‫استفاده از الگوریتم ‪ BP‬موفق شده تا تابع هدف را‬
‫بیاموزد‪.‬‬
‫با مشاهده خروجی واحدهای الیه میانی مشخص میشود که‬
‫‌های‬
‫بردار حاصل معادل انکدینگ استاندارد داده‬
‫ورودی بوده است (‪)000 ، 001 ، ... ،111‬‬
‫‪41‬‬
‫نمودارخطا‬
Different units
Error
iterations
Different weights
weight
iterations
42
‫قدرت تعمیم و ‪Over fitting‬‬
‫‪‬‬
‫‪‬‬
‫شرط پایان الگوریتم ‪ BP‬چیست؟‬
‫یک انتخاب این است که الگوریتم را آنقدر ادامه‬
‫دهیم تا خطا از مقدار معینی کمتر شود‪ .‬این امر‬
‫میتواند منجر به ‪ Over fitting‬شود‪.‬‬
‫‪Validation set error‬‬
‫‪Training set error‬‬
‫‪43‬‬
‫‪Number of weight updates‬‬
‫دالیل رخ دادن ‪Over fitting‬‬
‫‪ Over fitting ‬ناشی از تنظیم وزنها برای در نظر گرفتن مثالهای نادری است‬
‫که ممکن است با توزیع کلی دادهها مطابقت نداشته باشند‪ .‬تعداد زییاد‬
‫وزنهای یک شبکه عصبی باعث میشود تا‌شیبکه درجیه آزادی زییادی بیرای‬
‫انطباق با این مثالها داشته باشد‪.‬‬
‫‪ ‬با افزایش تعداد تکرار‪ ،‬پیچیدگی فضای فرضیه ییاد گرفتیه شیده توسیط‬
‫الگوریتم بیشتر و بیشتر میشود تا شبکه بتواند نویز و مثالهای نیادر‬
‫موجود‌در مجموعه آموزش را بدرستی ارزیابی نماید‪.‬‬
‫‪44‬‬
‫راه حل‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫استفاده از یک مجموعه تایید ‪ Validation‬و توقف‬
‫یادگیری هنگامی که خطا در این مجموعه به‬
‫اندازه کافی کوچک میشود‪.‬‬
‫‌تر‪:‬‬
‫بایاس کردن شبکه برای فضاهای فرضیه ساده‬
‫یک راه میتواند استفاده از‪ weight decay‬باشد که‬
‫در آن مقدار وزنها در هر بار تکرار به اندازه‬
‫خیلی کمی کاهش داده میشود‪.‬‬
‫‪ k-fold cross validation‬وقتی که تعداد مثالهای‬
‫آموزشی کم باشد میتوان‪ m‬داده آموزشی را به ‪k‬‬
‫دسته تقسیم بندی نموده و آزمایش را به تعداد ‪k‬‬
‫دفعه تکرار نمود‪ .‬در هر دفعه یکی از دستهها‬
‫بعنوان مجموعه تست و بقیه بعنوان مجموعه‬
‫‪45‬‬
‫روشهای دیگر‬
‫راههای بسیار متنوعی برای‌ایجاد شبکههای جدید وجود‬
‫دارد از جمله‪:‬‬
‫‪ ‬استفاده از تعاریف دیگری برای تابع خطا‬
‫‪ ‬استفاده از روشهای دیگری برای کاهش خطا در حین‬
‫یادگیری‬
‫‪Hybrid Global Learning ‬‬
‫‪Simulated Annealing ‬‬
‫‪Genetic Algorithms ‬‬
‫‪‬‬
‫استفاده از توابع دیگری در واحدها‬
‫‪Radial Basis Functions ‬‬
‫‪‬‬
‫‪46‬‬
‫استفاده از ساختارهای دیگری برای شبکه‬
‫‪Recurrent Network ‬‬