بیشبرازش (Overfitting)
درک بیشبرازش و کمبرازش در ماشین لرنینگ، تشخیص آنها از روی عملکرد Train و Test و روشهای پیشگیری
بیشبرازش چیست؟
بیشبرازش (Overfitting) یعنی مدل بهجای «یادگیری الگو»، «حفظکردن داده آموزش» را یاد گرفته است. مثل دانشجویی که فقط پاسخهای امتحان سال قبل را حفظ کرده: در تمرینها عالی است اما در امتحان واقعی (داده جدید) شکست میخورد!
طیف برازش
| حالت | عملکرد Train | عملکرد Test | تشبیه |
|---|---|---|---|
| کمبرازش (Underfitting) | ضعیف | ضعیف | دانشجوی تنبل که هیچی نخوانده |
| برازش مناسب | خوب | خوب | دانشجوی مفهومی |
| بیشبرازش (Overfitting) | عالی! | ضعیف | دانشجوی حافظهای |
نشانه کلاسیک بیشبرازش: دقت Train بسیار بالا ولی دقت Test پایین — شکاف بزرگ بین این دو، زنگ خطر است.
چرا بیشبرازش اتفاق میافتد؟
- مدل بیش از حد پیچیده (درخت خیلی عمیق، تعداد پارامتر زیاد)
- داده آموزش کم
- ویژگیهای زیاد و بیربط (آلودگی به نویز)
- آموزش طولانیتر از حد لازم
مثال شهودی
دادهای با ۵ نقطه که تقریباً روی یک خط قرار دارند. یک مدل درجه ۱ (خط) الگوی کلی را میگیرد؛ اما یک چندجملهای درجه ۴ از میان تکتک نقاط عبور میکند با پیچوتابهای عجیب! روی این ۵ نقطه خطای صفر دارد، اما برای نقطه جدید، پیشبینیهای فاجعهبار میدهد.
روشهای پیشگیری
- داده بیشتر: بهترین راه! داده زیاد، حفظکردن را غیرممکن میکند
- مدل سادهتر: عمق درخت کمتر، پارامتر کمتر
- اعتبارسنجی متقابل: ارزیابی پایدار با چند بخشبندی داده
- منظمسازی (Regularization): جریمه پیچیدگی مدل در تابع خطا
- توقف زودهنگام: توقف آموزش وقتی عملکرد Test شروع به افت میکند
- انتخاب ویژگی: حذف ویژگیهای بیربط و نویزی
هشدار: هرگز عملکرد روی داده Train را بهعنوان کیفیت مدل گزارش نکنید! مدل میتواند Train را ۱۰۰٪ حفظ کند؛ ملاک واقعی، عملکرد روی داده دیدهنشده (Test) است.
جمعبندی
- بیشبرازش = حفظ نویز بهجای یادگیری الگو
- نشانه: شکاف بزرگ Train (عالی) و Test (ضعیف)
- راهحلها: داده بیشتر، مدل سادهتر، منظمسازی، اعتبارسنجی متقابل
- ملاک کیفیت مدل، همیشه عملکرد روی داده جدید است
این مبحث بخشی از دوره آموزش کامل علم داده است.