مشکل بیش برازش داده‌ها و معرفی Dropout

همانطور که مشاهده میکنید در این نمودار با توجه به w  ، و با استفاده از مفاهیمی همچون شیب خط و مشتق ، در خلاف جهت شیب به سمت پایین حرکت میکنیم تا پاسخ های شبکه به نزدیک ترین حالت خود از آنچه که ما میخواستیم برسند.

Training loss: : تابع آموزش

Test loss;  :  تابع تست

روش جدید:

Overfitting : ایجاد شدن فاصله زیاد بین دیتا test و train . هنگامی که داده ها را حفظ میکند.

روش قدیمی:

Early stoping : قبل از کامل شدن نمودار و به آخر رسیدن آن،اگر در نقطه ای به نتیجه مطلوبی رسیده بودی در همان نقطه عملیات را متوقف کرده و بیش از آن train  نکنیم.

برای برطرف کردن مشکل over fitting راه کارهاییوجود دارد از جمله regularisasion

یکی ازاین روش هارا در اینجا میخوانیم :

Dropout

این مقاله توسط هینتون منتشر شده است. به این معناست که بصورت تصادفی به برخی (50درصد)از نورون ها(در فرایند training) شلیک میکنیم تا نتوانند فرایند خود را ادامه دهند و در فرایند بک پروبگیشن شرکت نمیکنند و در فرایند برگشت به روز نمی شوند.

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

همیشه این طور نیست که این روش پرفورمنس را بطور حتمی افزایش دهد.

 

دستور استفاده از این روش:

model.add(Dropout(0.5))

عدد 0.5 احتمال زنده ماندن نورون هاست.اگر 1 بگذاریم هیچ نورونی را نمیکشد.

 

در کد هایی که در کلاس اجرا کردیم مشاهده کردیم که بااستفاده این روش بهبود جزیی ای در دقت تابع train داشتیم.

 

شبکه های کانوولوشنی:

این شبکه ها نیاز به دیتا های ورودی زیادی دارند که وزن زیادی نداشته باشند.

ورودی های آنها لازم نیست هم سایز باشند.

Locality: کنار هم بودن پیکسل ها

 

گوشه ای از قدرت شبکه های کانوولوشنی در اسلاید ها قرار داده شده است.

Object detection : تشخیص برخی آبجکت های درون عکس های مختلف توسط شبکه.

Image clastering: از بین مجموعه عکس ها عکس های شبیه را کنار هم قرار میدهد(میوه ها، حیوانات و …)

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

 

همه ی داده های ما لزوما کوچک نیستند و دیا های خیلی بزرگ هم داریم که train آنها بسیار زمان میبرد چون تعداد لایه های زیادی دارند و مجموع وزن آنها بسیار زیاد میشود.

 

مشکلات بینایی کامپیوتر:

پدینگ برای جلوگیری از موارد زیر است.

تعداد لایه های ورودی بسیار زیاد باشد و باعث شود خروجی کوچک شود و اینفورمیشین های زیادی loss شود.

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