دانلود پاورپوینت یادگیری ماشین قسمت دوم
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
dD
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 dD
لذاوزنهاطبق رابطه زیر تغییر خواهند
نمود.
wi (td Od ) xid
dD
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 koutputs
مراد از 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