Underfitting-Overfitting-Generalization

Overfitting

overfit (بیش‌برازش) زمانی اتفاق می‌افتد که مدل سعی می‌کند تمام نقاط داده یا بیشتر از نقاط داده مورد نیاز موجود در مجموعه داده را پوشش دهد در نتیجه مدل شروع به ذخیره نویز و مقادیر نادرست موجود در مجموعه داده می‌کند.مدل پیش بینی دقیقی در مورد داده های آزمایشی(testing data) انجام نمی دهد. دقت مدل روی داده های آموزشی(training data) بیشتر از داده های آزمایشی خواهد بود.

چرا overfitting اتفاق می افتد؟

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

چگونه از overfitting جلوگیری کنیم؟

  • اندازه داده های آموزشی را افزایش دهیم.
  • پیچیدگی مدل را کاهش دهیم.
  • از لایه ی dropout استفاده کنیم.
  • استفاده از Ridge regression و Lasso

Underfitting

Underfit (کم‌برازش) زمانی اتفاق می افتد که یک مدل برای ثبت پیچیدگی های داده ها بسیار ساده باشد. در این حالت مدل نمی تواند داده های آموزشی را به خوبی یاد بگیرد درنتیجه دقت مدل روی داده های آموزشی و داده های آزمایشی پایین خواهد بود.

چرا underfitting اتفاق می افتد؟

  • مدل بسیار ساده باشد، درنتیجه نمی تواند پیچیدگی های داده ها را نمایش دهد.
  • اندازه ی داده های آموزشی مناسب نباشد.
  • ویژگی ها مقیاس بندی نشده باشند.

چگونه از Underfitting جلوگیری کنیم؟

  • پیچیدگی مدل را افزایش دهیم.
  • نویز داده ها را حذف کنیم.
  • تعداد ویژگی ها را افزایش دهیم.
  • مدت زمان تمرین یا تعداد epoch را افزایش دهیم.
 

Generalization

Generalization(عمومیت بخشی) زمانی اتفاق می افتد که مدل پیش بینی ها را با خطای 0 انجام می دهد.این حالت در نقطه ای بین overfitting و underfitting قابل دستیابی است.زمانی که مدل در حال یادگیری داده های آموزشی است، عملکرد آن را با گذشت زمان بررسی می کنیم. با گذشت زمان خطای مدل در داده های آموزشی و آزمایشی کاهش می یابد. اگر مدت زمان یادگیری طولانی شود، مدل دچار overfit خواهد شد. بنابراین قبل از این که دقت کاهش یابد، آموزش را متوقف می کنیم.   در عکس زیر، مدل با استفاده از الگوریتم k-نزدیک ترین همسایه آموزش داده شده است. به ازای مقدار k = 1، پیچیدگی افزایش پیدا کرده و دچار overfitting شده ایم. در واقع هرچقدر میزان K  کمتر باشد، به نویز حساس تر است. به ازای k = 9، مدل ساده شده و دچار Underfitting شده ایم. به ازای k = 3، عمومیت بخشی اتفاق افتاده است.  

سوالات:

۱- یک مدل زمانی دچار overfitting شده است که ... الف) خطای داده‌های آموزشی و داده های آزمایشی بالا باشد. ب) خطای داده‌های آزمایشی بالا و خطای داده‌های آموزشی پایین باشد. ۲- یک مدل زمانی دچار underfitting شده است که ... الف) دقت روی داده‌های آزمایشی و آموزشی پایین باشد. ب) خطای داده‌های آموزشی و آزمایشی پایین باشد. ۳- در شبکه‌های عصبی عمیق برای حل مشکل overfitting... الف) پیچیدگی مدل را افزایش دهیم. ب) تعداد ویژگی ها را افزایش دهیم. ج) از لایه ی dropout استفاده کنیم. د) تعداد epoch را افزایش دهیم. ۴- در شبکه‌های عصبی عمیق برای حل مشکل underfitting... الف) تعداد لایه‌ها را کاهش دهیم. ب) batch size را کاهش دهیم. ج) تعداد داده‌های آموزش را افزایش دهیم. د) تعداد epochها را افزایش دهیم.