ML-HW2.pdf

‫تمرین دوم درس یادگیری ماشین‬
‫گروه ‪ ،1‬پاییز ‪29‬‬
‫دستهبندی‪( 1‬بخش اول)‬
‫مهلت تحویل‪ :‬یکشنبه ‪ – 99/8/19‬ساعت ‪ 19‬شب‬
‫سوال اول‬
‫دادههای زیر را که مربوط به یک مسالهی دودستهای هستند‪ ،‬در نظر بگیرید‪:‬‬
‫‪X2‬‬
‫برچسب ‪ x1 x2‬ترتیب دادهها‬
‫‪+‬‬
‫‪+‬‬
‫‬‫‪-‬‬
‫‪2‬‬
‫‪1‬‬
‫‪X1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪9‬‬
‫‪3‬‬
‫‪4‬‬
‫الگوریتم پرسپترون را بر روی دادههای باال با فرض ]‪ 𝜃 0 = [0,0,0‬اجرا نمایید و مقادیر بردار وزنها ) 𝑡 𝜃(‬
‫را در هر مرحله مشخص کنید؛ شکل نهایی دستهبند خروجی را نیز رسم کنید‪( .‬ترتیب بررسی دادهها نیز‬
‫مشخص شده است)‬
‫(یادآوری‪ :‬شرط به روزرسانی وزنها در الگوریتم پرسپترون از رابطهی روبرو به دست میآید‪) 𝑟𝑖 𝜃 𝑇 𝑥𝑖 ≤ 0 :‬‬
‫سوال دوم‬
‫مسالهی دودستهای را در نظر بگیرید که دادههای هر دسته دارای توزیع نرمال هستند‪ .‬پارامترهای این توزیعها‬
‫برابر است با‪:‬‬
‫‪𝜇1𝑇 = [1,1], 𝜇2𝑇 = [0,0], 𝜎12 = 𝜎22 = 0.2‬‬
‫الف) از هر دسته ‪ 05‬داده به صورت تصادفی تولید کنید‪( .‬برای آنکه مطمئن باشید شرط جداپذیر بودن‬
‫دادههای دو دسته به صورت خطی باقی میماند‪ ،‬دادههایی را که در آنها شرط ‪ 𝑥1 + 𝑥2 < 1‬برای دادههای‬
‫‪Classification‬‬
‫صفح ه|‪1‬‬
‫‪1‬‬
‫دستهی اول و شرط ‪ 𝑥1 + 𝑥2 > 1‬برای دادههای دستهی دوم برقرار است را از مجموعه دادههای آموزشی‬
‫حذف کنید‪).‬‬
‫(راهنمایی‪ :‬برای تولید دادههای نرمال در متلب میتوانید از دستور ‪ mvnrnd‬استفاده کنید)‬
‫ب) الگوریتم پرسپترون را بر روی دادههای ورودی (با هر ترتیب دلخواه) اعمال کنید‪.‬‬
‫‪ ‬پس از همگرایی‪ ،‬دستهبند خطی نهایی (به همراه دادهها) را رسم کنید‪.‬‬
‫‪ ‬تعداد تکرارهای الزم برای رسیدن به همگرایی با استفاده از دادههای مورد استفادهی خود را مشخص‬
‫کنید‪.‬‬
‫‪ o‬آیا ترتیب در نظر گرفتن دادهها در خط خروجی تاثیرگذار است؟ توضیح دهید‪.‬‬
‫‪ o‬آیا ترتیب در نظر گرفتن دادهها در تعداد تکرارها تا رسیدن به همگرایی تاثیرگذار است؟‬
‫توضیح دهید‪.‬‬
‫سوال سوم‬
‫روش )‪ SSE (Sum of Squared Error‬را برای یافتن دستهبند خطی در نظر بگیرید‪ .‬این روش دادههای‬
‫آموزشی را به صورت دستهای‪ 9‬مورد استفاده قرار میدهد‪ .‬دادههای آموزشی زیر را در اختیار داریم‪:‬‬
‫‪ ‬با استفاده از این روش دستهبند خطی را یافته و شکل آن را رسم کنید‪.‬‬
‫‪ ‬آیا میتوان از روش پرسپترون برای دستهبندی این دادهها استفاده کرد؟ چرا؟‬
‫‪ ‬روش )‪ ،LMS (Least Mean Squares‬یکی از روشهای دستهبندی‬
‫خطی به صورت افزایشی‪ 3‬است‪ .‬در این روش وزنها در هر مرحله به صورت‬
‫زیر بهروزرسانی میشوند‪:‬‬
‫)𝑘(‬
‫) 𝑖𝑥 𝑇 𝑤 ‪𝑤 (𝑘+1) = 𝑤 (𝑘) + 𝜂 (𝑘) 𝑥𝑖 (𝑦𝑖 −‬‬
‫که در آن }‪𝑦𝑖 = {1, −1‬‬
‫‪ 𝜂 (𝑘) = 𝜂 = 0.1 o‬در نظر بگیرید‪ .‬خط خروجی را پس از اجرای‬
‫برچسب‬
‫‪x2‬‬
‫‪x1‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬
‫‪0.7‬‬
‫‪0.3‬‬
‫‪0.5‬‬
‫‪0.5‬‬
‫‪0.4‬‬
‫‪0.6‬‬
‫‪0.2‬‬
‫‪0.4‬‬
‫‪0.6‬‬
‫‪0.5‬‬
‫‪0.2‬‬
‫‪0.3‬‬
‫‪0.4‬‬
‫‪0.6‬‬
‫‪0.1‬‬
‫‪0.4‬‬
‫‪0.6‬‬
‫‪0.7‬‬
‫‪0.8‬‬
‫‪0.7‬‬
‫‪ 15‬مرحله از اجرای این الگوریتم رسم کنید (]‪.)𝑤 0 = [0,0,0‬‬
‫‪ o‬تاثیر 𝜂 را بر روی همگرایی این روش بررسی کنید‪.‬‬
‫‪Batch‬‬
‫)‪Incremental (Stochastic‬‬
‫صفح ه|‪2‬‬
‫‪2‬‬
‫‪3‬‬
‫سوال چهارم‬
‫روشهای موجود‪ ،‬مبتنی بر کمینه کردن خطا برای یافتن دستهبند خطی‪ ،‬که در سواالت قبل با عملکرد آنها‬
‫آشنا شدید را در نظر بگیرید‪.‬‬
‫‪ ‬این روشها را با یکدیگر مقایسه کنید‪.‬‬
‫‪ o‬در چه نوع مسائلی و با چه فرضهایی هر کدام از روشها را به روشهای دیگر ترجیح میدهید‬
‫(تعداد دادهها‪ ،‬ابعاد دادهها‪ ،‬مشخصبودن توزیع دادهها‪ ،‬پیچیدگی زمانی و محاسباتی و ‪ )...‬؟‬
‫‪ o‬آیا میتوان به طور کلی یکی از روشها را به عنوان روش برتر در نظر گرفت؟‬
‫‪ ‬تمامی روشهای معرفیشده در این سواالت تخمینی از روش )‪MSE (Mean Squared Error‬‬
‫میدهند‪.‬‬
‫‪ o‬این روش را بررسی کرده و فرضهای موردنیاز برای استفاده از آن را مشخص کنید‪.‬‬
‫‪ o‬به نظر شما چه فرضهایی الزم است تا روشهای ‪ LMS‬و ‪ SSE‬به ‪ MSE‬همگرا شوند؟‬
‫سوال پنجم‬
‫دادههای آموزشی روبرو را در اختیار داریم‪:‬‬
‫‪ ‬آیا ‪ SVM‬معرفی شده در بخش دستهبندهای خطی میتواند دادههای روبرو‬
‫برچسب ‪x1 x2‬‬
‫را جدا کند؟ (با رسم شکل نشان دهید که دادههای روبرو به صورت خطی‬
‫‪1‬‬
‫‪1‬‬
‫‪3‬‬
‫‪4‬‬
‫‪0‬‬
‫‪1‬‬
‫‪3‬‬
‫‪5‬‬
‫جداپذیر نیستند)‪.‬‬
‫‪ ‬کرنل مفهومی است که با استفاده از آن میتوان دادهها را در فضایی که در آن‬
‫دادهها به صورت خطی جداپذیر هستند بررسی نمود‪.‬‬
‫‪ o‬انواع کرنلهای مورداستفاده در ‪ SVM‬را نام برده و توضیح دهید‪.‬‬
‫‪ o‬با استفاده از چه کرنلی میتوان دادههای روبرو را به درستی‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‬‫‬‫‬‫‪-‬‬
‫‪0‬‬
‫‪2‬‬
‫‪2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪4‬‬
‫‪4‬‬
‫‪1‬‬
‫دستهبندی کرد؟‬
‫‪ o‬دادهها را با اعمال کرنل موردنظر در فضای جدید رسم کنید و نشان دهید که در این فضا به‬
‫صورت خطی جداپذیر هستند‪.‬‬
‫از کتابخانهی ‪( libsvm‬که نسخهی نهایی آن بر روی سایت قرار گرفته است) استفاده کنید و خروجی‬
‫آن را با (‪ )1‬کرنل خطی (‪ )9‬کرنل چندجملهای رسم نمایید‪( .‬بردارهای پشتیبان را نیز در شکلهای‬
‫رسمشده در متلب مشخص کنید)‬
‫صفح ه|‪3‬‬
‫سوال ششم‬
‫ مشخص میکند که آیا‬Buy ‫ ستون‬.‫دادههای آموزشی زیر را که مربوط به افراد مختلفی است در اختیار داریم‬
:‫فرد موردنظر یک جنس مشخص (مثال کامپیوتر) را خریداری میکند یا خیر‬
age
youth
youth
middle
senior
senior
senior
middle
youth
youth
senior
youth
middle
middle
senior
income
high
high
high
medium
low
low
low
medium
low
medium
medium
medium
high
medium
student
no
no
no
no
yes
yes
yes
no
yes
yes
yes
no
yes
no
credit Buy
fair
excellent
fair
+
fair
+
fair
+
excellent
excellent +
fair
fair
+
fair
+
excellent +
excellent +
fair
+
excellent
-
‫ مشخص کنید که آیا افراد با مشخصات زیر جنس موردنظر را خریداری‬4‫با استفاده از دستهبند بیز ساده‬
‫میکنند یا خیر؟‬
 X1 = (age = youth, income = high, student = yes, credit = fair)
 X2 = (age = senior, income = low, student = no, credit = excellent)
 X3 = (age = middle-aged, income = medium, student = no, credit = fair)
!‫کسی که جنگجوست باید همواره در حال جنگ باشد چون زمان صلح با خودش درگیر خواهد شد‬
"‫"نیچه‬
4
Naïve Bayes
4|‫صفح ه‬