0% found this document useful (0 votes)
36 views2 pages

Machine Learning Problem Set 04

mller
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views2 pages

Machine Learning Problem Set 04

mller
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

‫تمرین چهارم درس یادگیری ماشین‬

‫در این تمرین می بایست برنامه ای بنویسید که با استفاده از شبکه عصبی چند لایه حالات مختلف صورت افراد را تشخیص دهد‪ .‬در واقع در‬
‫اینجا از شبکه عصبی به عنوان یک شناساگر استفاده خواهد شد‪ .‬هدف نهایی بدست آوردن ماکزیمم تعداد ‪ epoch‬خا و تعداد نورون های‬
‫لایه میانه برای آموزش بهینه با کمترین خطا می باشد‪.‬‬

‫‪.1‬ساختار داده ها‬

‫می توانید از داده ها در لینک ارائه شده در کتاب و یا فایل ضمیمه شده ‪ ،‬استفاده نمایید‪ .‬داده های شامل ‪ 426‬تصویر در اندازه ‪ 23*22‬می‬
‫باشد که در کل شامل ‪ 023‬پیکسل خواهد ب ود‪ .‬برای استفاده از این داده ها می توانید با استفاده از نامی که برای هر یک از تصاویر انتخاب‬
‫شده مورد مد نظر برای دسته بندی را انتخاب نمایید ‪ .‬برای مثال می توانید هر یک از موارد ‪ ،‬عینک داشتن ‪ ،‬وجه صورت افراد و یا حالت چهره‬
‫شاد داشتن را ‪ ،‬مورد بررسی قرار دهی د‪ .‬برای اینکه هر تصویر را به صورت داده ورودی شبکه در نظر گیرید هر تصویر را به صورت ستونی‬
‫ذخیره کنید‪ .‬خروجی را نیز برای هر یک از داده ها ‪ ،‬با بررسی اسم آن (برای مثال عینک داشتن) به کمک دستور زیر مشخص نمایید‪:‬‬

‫‪if size(strfind(data(i).name,'sunglasses'))>0‬‬
‫;‪output(i) = 1‬‬
‫‪else‬‬
‫;‪output(i) = 0‬‬
‫‪end‬‬
‫در نهایت از ‪ 426‬داده حاصل ‪ 553‬تا به عنوان داده آموزشی در نظر بگیرید ‪ ،‬در هر گام نیز ‪ 53‬داده را نیز به عنوان داده ارزیاب در نظر گرفته‬
‫و آموزش را مورد ارزیابی قرار دهید و در آخر نیز ‪ 26‬داده باقی مانده را به عنوان داده های تست در نظر بگیرید‪.‬‬

‫نرمال سازی داده های ورودی را نیز در داده ها فراموش نکنید‪.‬‬

‫‪.2‬ساختار شبکه‬

‫ساختار شبکه‪ ،‬یک شبکه سه لایه با یک لایه پنهان حاوی چند نرون با تابع فعال ساز سیگموئید تک قطبی میباشد که در نهایت یک خروجی‬
‫را برای تشخیص دو یا چند نوع کلاس بر اساس انتخاب شما در مورد تصاویر ‪ ،‬به کار می گیرد‪ .‬در لایه ورودی ‪ 043‬ورودی وجود خواهد داشت‬
‫که هر یک نشانگر یک وضعیت رنگ یک پیکسل در تصویر ورودی است‪ .‬مقادیر لایه میانی نیز در ادامه در قالب تکرار روند آموزش و محاسبه‬
‫ی کمترین خطای میانگین بدست خواهید آورد‪ .‬برای مثال در مثال تشخیص عینک ‪ ،‬تک نرون خطی لایه ی خروجی نیز میتواند یکی از‬
‫مقادیر صفر یا یک را اختیار کند که نشان دهنده داشتن یا نداشتن عینک در تصویر است‪.‬‬
‫‪.3‬نحوه بدست آوردن بیشترین ‪ epoch‬بهینه‬

‫برای بدست آوردن بیشترین ‪ Epoch‬بهینه روند آموزش شبکه عصبی با دادههای آموزشی و تست یکسان برای چند ‪ Epoch‬مختلف تکرار‬
‫کنید و در هر تکرار خطای میانگین حاصله را با استفاده از دستور )(‪ mse‬بر روی کل خطا ها بدست آورده و ذخیره کنید‪ .‬در پایان ‪Epoch‬‬
‫ی که کمترین میزان خطای میانگین را بدست می دهد برای آموزش نهایی انتخاب نمایید‪ .‬برای این کار از تعداد ‪ epoch 53‬شروع کنید و با‬
‫گام های ‪ 5‬یا ‪ 03‬به تعداد ‪ epoch‬ها اضافه نمایید و تغییرات آن را برای انتخاب مقدار بهینه بررسی کنید‪.‬‬

‫‪.4‬نحوه بدست آوردن تعداد نرون های لایه میانی‬

‫برای بدست آوردن تعداد نرون های لایه میانی بهینه روند آموزش شبکه عصبی با دادههای آموزشی و تست یکسان و تعداد تکرار بیشینه بدست‬
‫آمده در قسمت قبل برای تعداد نورون های میانی مختلف تکرار نمایید و در هر تکرار خطای میانگین حاصله را ذخیره نمایید‪ .‬در پایان تعداد‬
‫نرون لایه ی میانی ای که کمترین میزان خطای میانگین را بدست میدهد برای آموزش نهایی انتخاب کنید و گزارش کنید‪.‬‬

‫‪ .5‬نحوه تحویل تمرین‬

‫تمرین را در روز مقرر در سایت دانشگاه آپلود نمایید ‪ .‬دقت کنید که پس تاریخ و ساعت مقرر شده‪ ،‬سامانه دانشگاه برای تمرین ارسالی شما‬
‫تاخیر را درج خواهد کرد‪ .‬تمرین فوق را با نرم افزار متلب پیاده سازی نمایید و دقت کنید که فایل اصلی متلب که اجرای اصلی برنامه شما‬
‫روی آن قرار دارد ‪ ،‬حتما با نام ‪ main‬ذخیره شده باشد ‪ .‬تمام فایل های مربوط به برنامه خود را در پوشه ای جداگانه به نام‬
‫‪ faceRecognition‬گذاشته و در کنار این پوشه گزارش خود را نیز قرار دهید‪.‬‬

‫موفق باشید‬

‫الهام رحیمی‬

You might also like