يادگيري ماشين الگوريتمهاي ژنتيک نيمسال اول 83-1382
Download
Report
Transcript يادگيري ماشين الگوريتمهاي ژنتيک نيمسال اول 83-1382
بسمه تعالي
يادگيري ماشين
الگوريتمهاي ژنتيک
نيمسال اول 1386-87
دکتر مازيار پالهنگ
آزمايشگاه هوش مصنوعي
دانشکدة مهندسي برق و کامپيوتر
دانشگاه صنعتي اصفهان
انگيزه
• الگوريتمهاي ژنتيک (ا.ژ ).يک روش يادگيري مشابه تکامل زيست
شناختي است.
• به جاي جستجو از فرضيهاي عام به خاص ،يا از فرضيه هاي ساده
به پيچيده ،ا.ژ .فرضيه هاي بعدي را بوسيلة مکررأ ترکيب
قسمتهائي از بهترين فرضيه هاي شناخته شدة فعلي توليد مي کنند.
2
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
انگيزه
• محبوبيت ا.ژ .به چند دليل است که عبارتند از:
– تکامل به عنوان يک روش موفق و مقاوم براي تطابق در سيستمهاي
زيست شناختي شناخته شده است.
– ا.ژ .مي توانند فضاي جستجوي فرضيه هائي را جستجو کنند که شامل
قسمتهاي متعامل پيچيده اي هستند ،که اثر هر جزء روي برازندگي کلي
فرضيه ممکن است براي مدل کردن مشکل باشد.
– ا.ژ .بسادگي موازي مي شوند و مي توانند از مزيت هزينه هاي رو به کاهش
سخت افزارهاي کامپيوتري نيرومند بهره ببرند.
3
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
جايگاه الگوريتمهاي ژنتيگ
روشهاي جستجو
روشهاي جستجوي تصادفي
روشهاي محاسباتي
آب فلز کاري
روشهاي شمارش ي
الگوريتمهاي تکاملي
روشهاي ديگر
الگوريتمهاي ژنتيک
متوالي
4
87-1386نيمسال اول -يادگيری ماشين
موازي
مازيار پالهنگ
الگوريتمهاي ژنتيک
• الگوريتمهاي ژنتيک معموأل مسئله را به يک مجموعه از رشته ها،
که هر رشته يک حل بالقوه مي باشد ،تصوير مي کنند.
• يک ا.ژ .بر روي يک چرخة ساده عمل مي کند:
– ايجاد يک جمعيت اوليه
– ارزيابي هر يک از اعضاء
– انتخاب بهترين اعضاء
– دستکاري ژنتيکي براي ايجاد جمعيت جديد
5
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
چرخة اصلي الگوريتمهاي ژنتيک
رشته هاي رمزگذاري شده
جمعيت
(کرمزمها)
فرزندان
والدين
ارزيابي
(برازندگي)
عملگرهاي ژنتيکي
توليد
انتخاب
(حوض جفتگيري)
6
87-1386نيمسال اول -يادگيری ماشين
جفتها
مازيار پالهنگ
الگوريتم ژنتيک (برازندگي ،آستانة_ برازندگي)m ،r ،p ،
مقدار اوليه دهي جمعيت p P :فرضيه بصورت تصادفي توليد کن
ارزيابي :براي هر hدر ،Pبرازندگي( )hرا محاسبه کن
تا وقتيکه (حداکثر برازندگي( < ))hآستانة_برازندگي انجام بده
•
•
•
•
يک نسل جديد PSايجاد کن
.1انتخاب :بطور احتمالي (1-r)pعضو Pرا انتخاب کن که به PSاضافه شوند.
.2ترکيب :بطور احتمالي r.p/2جفت از فرضيه هاي Pانتخاب کن .براي هر
جفت ) (h1,h2دو فرزند با اعمال عملگر ترکيب توليد کن .همة فرزندان را به
PSاضافه کن
7
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
.3جهش m :درصد از اعضاي PSرا با احتمال يکنواخت انتخاب کن .براي
هر کدام ،يک بيت تصادفي انتخاب شده را معکوس کن.
.4به هنگام در آوريPS P :
.5ارزيابي :براي هر hدر Pبرازندگي( )hرا محاسبه کن
– فرضيه اي در Pکه داراي باالترين برازندگي است را بازگردان.
8
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
• در هر بار تکرار الگوريتم تعدادي فرضيه از جمعيت فعلي بصورت
احتمالي با مقدار احتمال زير انتخاب مي شوند:
) Fitness(hi
) Fitness(h j
9
p
j 1
87-1386نيمسال اول -يادگيری ماشين
Pr(hi )
مازيار پالهنگ
نمايش فرضيه ها
• فرضيه ها در ا.ژ .معموأل بصورت رشته هاي بيتي نمايش داده مي
شوند ،چون آنها بدين طريق مي توانند بسادگي بوسيلة عملگرهاي
ژنتيکي تغيير داده شوند.
• به عنوان مثال فرض کنيدمي خواهيم کمترين مقدار تابع f(x)=x2را
براي xدر بازة [ ]0-31بيابيم.
• مقدار xرا مي توانيم توسط معادل دودوئي آن توسط 5بيت بين
[ ]00000-11111نمايش دهيم.
10
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
• حتي قوانين اگر-آنگاه را نيز مي توان بصورت رشته هاي بيتي نمايش
داد.
• مثال:
(پيش بيني=ابري باراني) ( باد=قوي)
)10
(011
• و
اگر باد=قوي آنگاه تنيس-بازي=بله
پيش بيني
(111
11
باد
10
تنيس-بازي
)10
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
عملگرهاي ژنتيکي
12
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
عملگرهای ژنتيکي
13
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
تابع برازندگي و انتخاب
• تابعي که گفته شد:
) Fitness(hi
p
Fitness
(
h
)j
j 1
Pr(hi )
• به تابع انتخاب چرخ رولت معروف است.
14
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
چرخ رولت
15
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
روشهاي ديگر انتخاب
• انتخاب تورنمنت:
– h1و h2را بصورت تصادفي و با توزيع يکنواخت انتخاب کن
– با احتمال ،pبرازنده ترين را انتخاب کن
• انتخاب رتبه:
– همة فرضيه ها را بر اساس برازندگي آنها مرتب کن
– احتمال انتخاب متناسب با رتبة فرضیه در اين لیست است
16
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
انتخاب رتبه
قبل از رتبه بندي (بر اساس برازندگي)
بعد از رتبه بندي
17
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
يک مثال GABIL -
•
•
•
•
يادگيري مجموعة فصلي قوانين گزاره اي
قابل مقايسه با C4.5
برازندگي:
Fitness(h) (correct(h))2
نمايش:
اگر a1=T a2=Fآنگاه ،c=Tاگر a2=Tآنگاه c=F
بصورت:
c
1
18
a2
01
a1
10
87-1386نيمسال اول -يادگيری ماشين
c
0
a2
10
a1
11
مازيار پالهنگ
• عملگرهاي ژنتيکي:
– رشته هاي بيتي با طول متغير هستند.
– مي خواهيم رشته هاي توليد شده قوانين با معنائي باشند.
– با شروع از:
– و
c
0
c
1
a2
10
a2
01
a1
11
a1
10
c
1
c
0
a2
01
a2
11
a1
10
a1
01
– ابتدا نقاط تقاطع را براي h1بدست مي آوريم :مثأل 1و ( 8ترکيب دو نقطه اي تصادفي)
– در اين حالت d1=1و d2=3
– حال نقاط تقاطع در h2را محدود به حاالتي مي کنيم که توليد قوانين با معنائي نمايند:
مثأل <3و8< ، >1و ،>1و <.8و>6
19
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
– با شروع از:
–و
a2
1]0
c
0
c
1
a2
01
a1
11
c
1
a1
10
a2
01
c
0
a2
1]1
a1
1[0
a1
0[1
h1
h2
– اگر <3و >1را انتخاب کنيم خواهيم داشت:
c
0
a1 a2 c
10 01 1
20
a1 a2 c
11 11 0
87-1386نيمسال اول -يادگيری ماشين
a2
10
a1
11
a1 a2 c
00 01 1
h3
h4
مازيار پالهنگ
بسطهاي GABIL
• اضافه کردن عملگرهاي ژنتيکي جديد:
.1اضافة-ديگري ) :(AddAlternativeعموميت دادن محدوديت روي
aiبا تغيير يک 0به .1
.2انداختن -شرط ) :(DropConditionعموميت دادن محدوديت
روي aiبا تغيير همة 0ها به .1
.3اضافه کردن محدوده هاي جديد به رشته هاي بيتي جهت نمايش
آنکه دو عملگر اول اجازة استفاده شدن دارند يا نه:
DC
0
21
AA
1
c
0
a2
11
a1
11
87-1386نيمسال اول -يادگيری ماشين
c
1
a2
01
a1
00
مازيار پالهنگ
نتايج GABIL
•
•
•
•
•
22
کارآئي GABILبا ديگر روشهاي يادگيري نمادين همانند ،C4.5
AQ14 ،ID5Rمقايسه شد.
نتايج کارآئي متوسط روي يک مجموعه از 12مسئلة ساختگي
عبارت است از:
GABILبدون AAو %92.1 DC
GABILبا AAو %95.2 DC
روشهاي نمادين بين %91.2تا %96.6
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
ارزيابي جمعيت
•
•
•
•
•
•
23
چگونه تکامل جمعيت در يک ا.ژ .را ارزيابي کنيم؟
شما = يک رشتة بيتي شامل ،1 ،0و *
يک شماي نوعي10**00 :
نمونه هائي از شماي فوق... ،101100 ،101000 ،100000 :
مشخص کردن جمعيت بوسيلة تعداد نمونه هائي که يک شماي
ممکن را نمايش مي دهند.
قضية شما تکامل يک جمعيت را بر اساس تعداد نمونه هائي که هر
شما را نمايش مي دهند مشخص مي کند.
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
فقط انتخاب را در نظر بگيريد
•
•
•
•
) =m(s,tتعداد نمونه هاي شماي sدر جمعيت در زمان .t
) = f (tمتوسط برازندگي همة افراد در جمعيت در زمان .t
) =uˆ (s, tمتوسط برازندگي نمونه هاي شماي sدر جمعيت در زمان
.t
احتمال انتخاب hدر يک مرحله از انتخاب:
)f ( h
) f (hi
24
n
P r(h)
i 1
)f ( h
نيمسالtاو(ل nf-
) 87-1386
يادگيری ماشين
مازيار پالهنگ
• مي دانيم که:
)f ( h
hs pt
) m( s, t
uˆ ( s, t )
• احتمال انتخاب hمتعلق به f (h) :s
) nf (t
Pr(h s)
hs pt
) uˆ ( s, t
) m( s , t
) nf (t
25
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
• تعداد مورد انتظار نمونه هاي sپس از nانتخاب:
) uˆ ( s, t
Em( s, t 1)
) m( s, t
) f (t
26
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
قضية شما
) uˆ ( s, t
)d ( s
)o( s
Em( s, t 1)
m( s, t )(1 pc
) )(1 pm
) f (t
l 1
•
•
•
•
•
27
=pcاحتمال ترکيب تک نقطه اي
=pmاحتمال عملگر جهش
=lطول هر يک از رشته ها در جمعيت
) =o(sتعداد بيتهاي تعريف شده در s
) =d(sفاصلة چپترين و راستترين بيتهاي تعريف شده در s
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
انبوهي
• پرکردن جمعيت توسط فردي با برازندگي بيشتر
• مي تواند باعث کاستن تنوع جمعيت و کند کردن پيشرفت ا.ژ .شود.
• راه حلها:
– تغيير تابع انتخاب
– اشتراک برازندگي (برازندگي يک فرد با حضور افراد همنوع کاسته شود).
– محدود کردن نوع افرادي که مي توانند با هم ترکيب شوند.
28
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
برنامه نويس ي ژنتيکي
• افراد به جاي رشته هاي بيتي ،برنامه هاي کامپيوتري هستند.
• برنامه ها بصورت يک درخت نشان داده مي شوند.
• رئوس داراي دو نوع هستند:
– تابعها
– پايانه ها (ثابتها ،وروديها)
• الزم است ابتدا تابعها و پايانه ها مشخص شوند.
29
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
برنامه نويس ي ژنتيکي
sin( x) x y
2
30
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
ترکيب
31
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
مسئلة بلوکها
• پايانه ها:
– ) :CS (current stackنام باالترين بلوک روي پشته ،يا Fاگر پشته اي
وجود ندارد.
– ) :TB (top correct blockنام باالترين بلوک روي پشته بطوريکه آن و
بلوکهاي زير آن به ترتيب صحيح هستند.
– ) :NN (next necessaryنام بلوک بعدي که باالي TBدر پشته الزم است.
اگر بلوک ديگري الزم نيست Fباز مي گرداند.
32
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
• توابع ابتدائي:
– ) :(MS x) (move to stackاگر بلوک xروي ميز است x ،را به باالي پشته
حرکت مي دهد و مقدار Tرا باز مي گرداند .در غير اينصورت ،کاري انجام
نمي دهد و مقدار Fرا باز مي گرداند.
– ) :(MT x) (move to tableاگر بلوک xجائي در پشته است ،بلوک باالي
پشته را به روي ميز حرکت مي دهد و مقدار Tرا باز مي گرداند .در غير
اينصورت F ،باز مي گرداند.
– ) :(EQ x y)(equalاگر xبرابر yباشد Tباز مي گرداند و در غير اينصورت F
باز مي گرداند.
– ) :(Not xاگر T x=Fباز مي گرداند ،در غير اينصورت Fباز مي گرداند.
– ) :(DU x y)(do untilعبارت xرا مکررأ انجام مي دهد تا وقتيکه عبارت y
مقدار Tرا بازگرداند.
33
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
برنامة يادگرفته شده
• 166مثال آموزش ي
• 300برنامة تصادفي در جمعيت اوليه
• بعد از 10نسل
)))(EQ(DU(MT CS)(NOT CS))(DU (MS NN)(NOT NN
34
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
EQ
DU
DU
35
NOT
MS
NOT
MT
NN
NN
CS
CS
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
برنامه نويس ي ژنتيک
• مثال جالبتر :طراحي مدارهاي صافي الکترونيکي
– اعضا برنامه هائي هستند که مدار اوليه را به مدار نهائي بوسيلة
اضافه/کم کردن اجزاء و ارتباطات تبديل مي کنند.
– استفاده از يک جمعيت 640000تائي ،که روي يک پردازندة موازي 64
رأس ي اجرا شد.
– مدارهائي قابل رقابت با بهترين طراح انساني يافت شد!!
36
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
موازي سازي ا.ژ
• بصورت دانه درشت
– هر واحد پردازش ی يک جمعيت را در بر دارد.
• بصورت دانه ريز
– هر واحد پردازش ي يک فرد را در بر دارد.
37
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ
38
87-1386نيمسال اول -يادگيری ماشين
مازيار پالهنگ