فروشگاه پروژه های هوش مصنوعی و داده کاوی

انجام پروژه های هوش مصنوعی و داده کاوی با متلب

فروشگاه پروژه های هوش مصنوعی و داده کاوی

انجام پروژه های هوش مصنوعی و داده کاوی با متلب

انجام پروژه ها و تمرینات دانشجویی در حوزه هوش مصنوعی و داده کاوی با نرم افزارهای متلب، پایتون، رپیدماینر و وکا

کلمات کلیدی

حل تمرینات شناسایی آمار و الگو دانشگاه امیرکبیر

حل تمرینات درس شناسایی آمار و الگو

حل تمرینات درس pattern recogntion

حل تمرینات کتاب فوکوناگا

حل تمرینات کامپیوتری درس شناسایی آمار و الگو

انجام پروژه های تخصصی متلب

انجام پروژه متلب

انجام پروژه دانشجویی

کدنویسی تمرینات pattern recognition

کد متلب تمرینات درس شناسایی آمار و الگو

کد متلب شبکه عصبی

پیاده سازی شبکه عصبی

کد آماده متلب

کد متلب الگوریتم درخت تصمیم

الگورینم دسته بندی

کد متلب دسته بندی توموز مغزی

ترکیب الگوریتم ژنتیک و ماشین بردار پشتیبان

ترکیب الگوریتم ژنتیک و الگوریتم دسته بندی

ترکیب الگوریتم ژنتیک و SVM

انتخاب بهینه ویژگی ها با الگوریتم ژنتیک

پروژه متلب

پروژه دانشجویی

ترکیب مدل های دسته بندی

ترکیب روش های دسته بندی درمتلب

کد متلب پیش پردازش تصاویر ماموگرافی برای تشخیص سرطان سینه

کد متلب پردازش تصاویر پزشکی

کد متلب پردازش تصاویر ماموگرافی

کد متلب تشخیص سرطان پستان

کد متلب تشخیص سرطان سینه

کد آماده پردازش تصاویر پزشکی

  • ۰
  • ۰

کد متلب الگوریتم پس انتشار خطا برای آموزش شبکه عصبی پرسپترون چند لایه

شبکه پرسپترون چندلایه


لینک خرید

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

 

ساختار شبکه عصبی نیز، دارای تعدادی نورون است که توسط اتصالاتی به یکدیگر متصل میشوند. این اتصالات دارای وزن عددی هستند که شبکه عصبی باید به گونه ای وزن ها را تعیین کند که بتواند مسائل حوزه یادگیری ماشین را حل کند.

 

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

 

به صورت دقیقتر، این الگوریتم ابتدا تعدادی داده ورودی را به شبکه عصبی میدهد. سپس با گذشتن داده های ورودی از لایه های شبکه عصبی (ضرب مقادیر ورودی در وزن های اتصالات طبق روابط Forward Pass در شبکه عصبی)، خروجی شبکه حاصل میشود. این الگوریتم میزان خطای خروجی شبکه را با مقادیر هدف بدست می آورد. سپس این خطا را از لایه خروجی شکبه عصبی به سمت لایه ابتدایی شبکه انتقال میدهد (Backward Pass) و در حین این انتقالT با توجه به روابط الگوریتم پس انتشار خطا، سعی میکند که وزن های شبکه عصبی را به روزرسانی کند به گونه ای که وزن های جدید با داده های فعلی، بتواند میزان خطای کمتری را در خروجی ارائه دهند. 

 

الگوریتم پس انتشار خطا یک الگوریتم تکراری است به این معنی که به روزرسانی ها در تعداد مراحلی به نام اپک (Epoch) مشخص انجام میشوند و در هر مرحله سعی میشود که خطای خروجی شبکه عصبی را کم کند. 

الگوریتم پس انتشار خطا، مهمترین قسمت شبکه عصبی پرسپرتون چندلایه است که بنیاد آموزش شبکه را بر عهده دارد. 

 

در این پست، شبکه عصبی چند لایه با الگوریتم پس انتشار خطا را پیاده سازی کرده ایم که در این پیاده سازی از توابع آماده متلب و تولباکس آموزش شبکه عصبی (Neural Network Training Toolbox) استفاده نکرده ایم و تمامی قسمت ها با کدنویسی پیاده سازی شده است.

در الگوریتم پس انتشار خطا، جزییات دیگری نیز وجود دارد که به بحث آموزش سریعتر، جلوگیری از بیش برازش یا Overfitting کمک میکند که این موارد نیز در پیاده سازی ها لحاظ شده است. از جمله این جزییات میتوان به نرخ ممنتم و نرخ رگولاریزاسیون اشاره کرد که باعث سرعت در آموزش شبکه و جلوگیری از بیش برازش میشوند. 

 

در پیاده سازی انجام شده ، خروجی ها به صورت چهار شکل نمایش داده میشوند که به شرح زیر هستند.

شکل 1 حاوی نقاط تست هستند که شبکه باید این نقاط را با کمترین خطا جدا کند.

شکل 2 مربوط به منحنی خطای تست و آموزش است که در اپک های خاص که کاربر مشخص میکند چاپ میشود

شکل 3 خطای MSE را به ازای داده های تست و آموزش نشان میدهد که این منحنی نیز در اپک های خاص چاپ میشود

و در نهایت در شکل 4 جمع وزن های اتصالات شبکه را نشان میدهیم که در بعضی از کاربردها و تحلیل ها میتواند مفید واقع شود. ترسیم این منحنی نیز در اپک های خاص انجام میشود.

 

کد متلب نوشته شده به گونه ای است که امکان تنظیم تمامی پارامترها شبکه عصبی وجود دارد. این پارامترها شامل موارد زیر هستند :

  1. تعداد لایه شبکه عصبی
  2. تعداد نورون در هر لایه
  3. نرخ یادگیری
  4. نرخ ممنتم
  5. نرخ رگولاریزاسیون
  6. میزان کاهش نرخ یادگیری در هر اپک (در ابتدا نرخ یادگیری زیاد مطلوب است و با گذشت زمان میتوان نرخ یادگیری را کم کرد تا شبکه با دقت بیشتری آموزش ببیند)
  7. تعداد اپک آموزشی
  8. متغیری برای مشخص کردن ترسیم خطاها و منحنی ها. به این معنی که هر چند اپک یکبار ترسیم ها انجام شود
  9. میزان بزرگی نمایش نقاط تست
  10. میزان بزرگی نقاط صفحه مختصات برای نمایش مرز تصمیم گیری
  11. درصد داده های تست و آموزش
  12. کمترین مقدار خطا برای قطع آموزش شبکه. اگر خطای شبکه از حد مشخصی کمتر شود، آموزش قطع میشود
  13. سه نوع تابع فعالیت برای واحد های مخفی (این قسمت باید توسط برنامه نویس و در تابع sigm_func و derive_sigm_func فعال یا غیرفعال شود)

به عبارت دیگر میتوان گفت که تمامی امکاناتی که میتوان برای شبکه عصبی در نظر گرفت را در این پیاده سازی آورده ایم و یک برنامه کامل در اختیار شما قرار خواهد داشت.

 

همچنین به دلیل اینکه پیاده سازی حاضر، دارای تمامی امکانات لازم هست، حجم کدنویسی زیاد شده است که به همین منظور گزارش کاملی از تمامی توابع و کدها به صورت فایل متنی Word مهیا شده است که دانشجو بداند که هر قطعه از کد در حال انجام چه کاری است. سعی شده است که پیاده سازی به صورت تابعی نوشته شود که حجم کدها تا حد امکان کمتر شود و از کدنویسی های اضافی و بی مورد جلوگیری شود.

لازم به ذکر است که پیاده سازی و گزارش که شامل تحلیل و بررسی نتایج است، بر اساس سوالات زیر تبیین شده است:

  • الگویتم پس انتشار خطا را به صورت دسته ای بنویسید. از هیچ یک از توابع جعبه ابزار شبکه عصبی متلب استفاده نکنید. برنامه را به نحوی بنویسید که بتوان تعداد لایه L ، تعداد ورودیها n ، تعداد خروجی ها m و تعداد نورون های هر یک از لایه های مخفی را تغییر داد.
  • به الگوریم نوشته شده ، نرخ تعلیم تطبیقی، جمله ممنتم و جمله تنظیم کننده را نیز اضافه کنید
  • الگوریتم را برای داده های زیر اجرا نمایید: از تابع داده شده 200 داده تصادفی تولید کنید و نصف آن را به عنوان داده تعلیم و نصف دیگر را به عنوان داده تست استفاده کنید.

f(x,y) = exp(-x^2)*cos(y)

-2 < x < 2   , -5 < y < 5

  • شبکه عصبی سه لایه بسازید.
  •  
  • تاثیر نرخ تعلم تطبیقی، جمله ممنتم و جمله تنظیم کننده را بر دقت خطای آموزش و آزمایش بررسی کنید

 

تصاویری از گزارش شامل توضیح کدها و تجزیه و تحلیل نتایج را در شکلهای زیر مشاهده میکنید و در پایان تصویر خروجی پیاده سازی را نیز نشان میدهیم.

شکل 1

 

شکل 2

 

شکل 3

تصویر خروجی برنامه

 

توجه:
  1. فایل دانلودی حاوی کدهای متلب و گزارش کامل شامل توضیحات توابع و کدها و همچنین تجزیه و تحلیل نتایج با توجه به صورت سوالات ذکر شده است.
  2. حتما در متلب نسخه 2017 به بالا اجرا شود
  3. در پیاده سازی انجام شده از هیچگونه تابع آماده متلب و یا تولباکس شبکه عصبی نرم افزار متلب استفاده نشده است.
  4. با توجه به ترسیم منحنی ها و مرز تصمیم گیری شبکه عصبی، زمان اجرای آموزش شبکه عصبی طولانی است. پس شکیبا باشید.
  5. با توجه به مقدار نرخ یادگیری، نرخ ممنتم، تعداد اپک و سایر متغیرهای ذکر شده، خطای شبکه عصبی میتواند متفاوت باشد.
 
 

ویدیوی زیر نحوه اجرای این پیاده سازی را نشان میدهد.

ویدیو نحوه اجرای کدها

 
در صورت هر گونه سوال نسبت به کالای مورد نظر، با ایمیل msd.abasian@gmail.com  یا شماره 09132324263 و یا آیدی تلگرام masoudabasian مکاتبه نمایید.

همچنین در صورت دانلود فایل و مشاهده هر گونه مشکل در کدها و گزارش، میتوانید از طریق راه های ارتباطی ذکر شده، مشکل را اعلام فرمایید تا در اسرع وقت پشتیبانی لازم را انجام دهیم.

با تشکر از حسن اعتماد شما

مسعود عباسیان


لینک خرید

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی