بخشی از پاورپوینت
اسلاید 1 :
شبکه های عصبی مصنوعی
Instructor : Saeed Shiry
اسلاید 2 :
مقدمه
شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی، توابع با مقادیر گسسته و توابع با مقادیر برداری میباشد.
یادگیری شبکه عصبی در برابر خطاهای داده های آموزشی مصون بوده و اینگونه شبکه ها با موفقیت به مسائلی نظیر شناسائی گفتار، شناسائی و تعبیر تصاویر، و یادگیری روبات اعمال شده است.
اسلاید 3 :
شبکه عصبی چیست؟
روشی برای محاسبه است که بر پایه اتصال به هم پیوسته چندین واحد پردازشی ساخته میشود.
شبکه از تعداد دلخواهی سلول یا گره یا واحد یا نرون تشکیل میشود که مجموعه ورودی را به خروجی ربط میدهند.
اسلاید 4 :
شبکه عصبی چه قابلیتهائی دارد؟
محاسبه یک تابع معلوم
تقریب یک تابع ناشناخته
شناسائی الگو
پردازش سیگنال
یادگیری
اسلاید 5 :
خطا در داده های آموزشی وجود داشته باشد.
مثل مسائلی که داده های آموزشی دارای نویز حاصل از دادهای سنسورها نظیر دوربین و میکروفن ها هستند.
مواردی که نمونه ها توسط مقادیر زیادی زوج ویژگی-مقدار نشان داده شده باشند. نظیر داده های حاصل از یک دوربین ویدئوئی.
تابع هدف دارای مقادیر پیوسته باشد.
زمان کافی برای یادگیری وجود داشته باشد. این روش در مقایسه با روشهای دیگر نظیر درخت تصمیم نیاز به زمان بیشتری برای یادگیری دارد.
نیازی به تعبیر تابع هدف نباشد. زیرا به سختی میتوان وزنهای یادگرفته شده توسط شبکه را تعبیر نمود.
مسائل مناسب برای یادگیری شبکه های عصبی
اسلاید 6 :
الهام از طبیعت
مطالعه شبکه های عصبی مصنوعی تا حد زیادی ملهم از سیستم های یادگیر طبیعی است که در آنها یک مجموعه پیچیده از نرونهای به هم متصل در کار یادگیری دخیل هستند.
گمان میرود که مغز انسان از تعداد 10 11 نرون تشکیل شده باشد که هر نرون با تقریبا 104 نرون دیگر در ارتباط است.
سرعت سوئیچنگ نرونها در حدود 10-3 ثانیه است که در مقایسه با کامپیوترها 10 -10 ) ثانیه ( بسیار ناچیز مینماید. با این وجود آدمی قادر است در 0.1 ثانیه تصویر یک انسان را بازشناسائی نماید. این قدرت فوق العاده باید از پردازش موازی توزیع شده در تعدادی زیادی از نرونها حاصل شده باشد.
اسلاید 7 :
{1 or –1}
X0=1
نوعی از شبکه عصبی برمبنای یک واحد محاسباتی به نام پرسپترون ساخته میشود. یک پرسپترون برداری از ورودیهای با مقادیر حقیقی را گرفته و یک ترکیب خطی از این ورودیها را محاسبه میکند. اگر حاصل از یک مقدار آستانه بیشتر بود خروجی پرسپترون برابر با 1 و در غیر اینصورت معادل -1 خواهد بود.
Perceptron
اسلاید 8 :
خروحی پرسپترون توسط رابطه زیر مشخص میشود:
که برای سادگی آنرا میتوان بصورت زیر نشان داد:
یادگیری یک پرسپترون
یادگیری پرسپترون عبارت است از:
پیدا کردن مقادیردرستی برای W
بنابراین فضای فرضیه H در یادگیری پرسپترون عبارت است ازمجموعه تمام مقادیر حقیقی ممکن برای بردارهای وزن.
اسلاید 9 :
پریسپترون را میتوان بصورت یک سطح تصمیم hyperplane در فضای n بعدی نمونه ها در نظر گرفت. پرسپترون برای نمونه های یک طرف صفحه مقدار 1 و برای مقادیر طرف دیگر مقدار -1 بوجود میاورد.
توانائی پرسپترون
اسلاید 10 :
یک پرسپترون فقط قادر است مثالهائی را یاد بگیرد که بصورت خطی جداپذیر باشند. اینگونه مثالها مواردی هستند که بطور کامل توسط یک hyperplaneقابل جدا سازی میباشند.
توابعی که پرسپترون قادر به یادگیری آنها میباشد
اسلاید 11 :
یک پرسپترون میتواند بسیاری از توابع بولی را نمایش دهد نظیر AND, OR, NAND, NOR
اما نمیتواند XORرا نمایش دهد.
در واقع هر تابع بولی را میتوان با شبکه ای دوسطحی از پرسپترونها نشان داد.
توابع بولی و پرسپترون
AND:
X0=1
W0 = -0.8
W1=0.5
W2=0.5
اسلاید 12 :
اضافه کردن بایاس
افزودن بایاس موجب میشود تا استفاده از شبکه پرسپترون با سهولت بیشتری انجام شود.
برای اینکه برای یادگیری بایاس نیازی به استفاده از قانون دیگری نداشته باشیم بایاس را بصورت یک ورودی با مقدار ثابت 1 در نظر گرفته و وزن W0 را به آن اختصاص میدهیم.
اسلاید 13 :
چگونه وزنهای یک پرسپترون واحد را یاد بگیریم به نحوی که پرسپترون برای مثالهای آموزشی مقادیر صحیح را ایجاد نماید؟
دو راه مختلف :
قانون پرسپترون
قانون دلتا
آموزش پرسپترون
اسلاید 14 :
الگوریتم یادگیری پرسپترون
مقادیری تصادفی به وزنها نسبت میدهیم
پرسپترون را به تک تک مثالهای آموزشی اعمال میکنیم.اگر مثال غلط ارزیابی شود مقادیر وزنهای پرسپترون را تصحیح میکنیم.
آیا تمامی مثالهای آموزشی درست ارزیابی میشوند:
بله پایان الگوریتم
خیربه مرحله 2 برمیگردیم
آموزش پرسپترون
اسلاید 15 :
برای یک مثال آموزشی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)
اثبات شده است که برای یک مجموعه مثال جداپذیرخطی این روش همگرا شده و پرسپترون قادر به جدا سازی صحیح مثالها خواهد شد.
اسلاید 16 :
وقتی که مثالها بصورت خطی جداپذیر نباشند قانون پرسپترون همگرا نخواهد شد. برای غلبه بر این مشکل از قانون دلتا استفاده میشود.
ایده اصلی این قانون استفاده از gradient descent برای جستجو در فضای فرضیه وزنهای ممکن میباشد. این قانون پایه روش Back propagation است که برای آموزش شبکه با چندین نرون به هم متصل بکار میرود.
همچنین این روش پایه ای برای انواع الگوریتمهای یادگیری است که باید فضای فرضیه ای شامل فرضیه های مختلف پیوسته را جستجو کنند.
قانون دلتا Delta Rule
اسلاید 17 :
قانون دلتا Delta Rule
برای درک بهتر این روش آنرا به یک پرسپترون فاقد حد آستانه اعمال میکنیم. در انجا لازم است ابتدا تعریفی برای خطا ی آموزش ارائه شود. یک تعریف متداول این چنین است:
E = ½ Σi (ti – oi) 2
که این مجموع برای تمام مثالهای آموزشی انجام میشود.
اسلاید 18 :
الگوریتم gradient descent
با توجه به نحوه تعریف E سطح خطا بصورت یک سهمی خواهد بود. ما بدنبال وزنهائی هستیم که حداقل خطا را داشته باشند . الگوریتم gradient descent در فضای وزنها بدنبال برداری میگردد که خطا را حداقل کند. این الگوریتم از یک مقدار دلخواه برای بردار وزن شروع کرده و در هر مرحله وزنها را طوری تغییر میدهد که در جهت شیب کاهشی منحنی فوق خطا کاهش داده شود.
E(W)
اسلاید 19 :
بدست آوردن قانون gradient descent
ایده اصلی: گرادیان همواره در جهت افزایش شیب E عمل میکند.
گرادیان E نسبت به بردار وزن w بصورت زیر تعریف میشود:
E (W) = [ E’/w0, E’/w1, …, E’/wn]
که در آن E (W) یک بردارو E’مشتق جزئی نسبت به هر وزن میباشد.
اسلاید 20 :
قانون دلتا Delta Rule
برای یک مثال آموزشیX = (x1, x2, …, xn) در هر مرحله وزنها بر اساس قانون دلتا بصورت زیر تغییر میکند:
wi = wi + Δwi
Where Δwi = -η E’(W)/wi
η: learning rate (e.g., 0.1)
علامت منفی نشاندهنده حرکت در جهت کاهش شیب است.