آزمایشگاه آزاد؛ بدون نیاز به ورود
بیشبرازش؛ کمشدن خطا همیشه نشونهٔ بهترشدن نیست
مدل ساده ممکنه الگوی داده رو خوب نگیرد؛ مدل خیلی پیچیده هم ممکنه نویز نمونهها رو دنبال کنه. این شبیهسازی یک چندجملهای رو روی ۱۵ نقطهٔ آموزشی میسازه و خطاش رو با ۵۰ نقطهٔ آزمون جدا مقایسه میکنه.
آزمایش رو شروع کناز پیچیدگی ۶ شروع کن و دو خطای نمودار رو بخون. دقت کن که خطای کمتر روی دادهٔ آموزش لزوماً یعنی پیشبینی بهتر برای دادهٔ تازه نیست.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
یک خطا پایین، یکی بالا
پیچیدگی رو از ۶ به ۸ ببر و خطای آموزش و آزمون رو جداگانه بخون.
حدست چیه؟ ممکنه مدل روی نمونههای آموزش بهتر بشه ولی روی آزمون بدتر؟
توضیح نتیجه رو ببین
در پیچیدگی ۶، خطای آموزش حدود ۳٫۳ و آزمون ۱۰٫۹ه. در پیچیدگی ۸، خطای آموزش به ۱٫۲ کم میشه ولی آزمون به ۱۳٫۹ میرسه؛ این جفت نتیجه نمونهای از بیشبرازشه.
پیچیدگی بیشتر گاهی کمک میکنه
پیچیدگی رو از ۳ به ۶ تغییر بده و ببین هر دو خطای آموزش و آزمون چه تغییری میکنن.
حدست چیه؟ در این بازه، پیچیدهترشدن مدل فقط خطای آموزش رو کم میکنه یا آزمون هم بهتر میشه؟
توضیح نتیجه رو ببین
در پیچیدگی ۳، خطای آموزش حدود ۲۵۲٫۲ و آزمون ۲۴۵٫۰ه؛ در ۶ بهترتیب حدود ۳٫۳ و ۱۰٫۹ میشن. پس روی این دادهها پیچیدگی بیشتر تا اینجا هر دو خطا رو کم کرده؛ هر مسئلهای نقطهٔ مناسب خودش رو داره.
مدلی رو پیدا کن که آزمونش بهتره
پیچیدگیهای ۴، ۶ و ۸ رو یکییکی تنظیم کن و مقدار خطای آزمون رو با خطای آموزش مقایسه کن.
حدست چیه؟ کدوم یکی از این سه انتخاب کمترین خطای آزمون رو داره؟
توضیح نتیجه رو ببین
در این سه انتخاب، پیچیدگی ۶ کمترین خطای آزمون رو داره: حدود ۱۰٫۹، در برابر ۱۵٫۵ برای ۴ و ۱۳٫۹ برای ۸. خطای آموزش در ۸ باز هم کمتره، پس فقط نگاهکردن به آموزش میتونه انتخاب رو گمراه کنه.
پشت این حرکت چه خبره؟
مدل چندجملهای چه شکلیه؟
f(x)=c_0+c_1*x+...+c_d*x^d
مدل چندجملهای چند توان از x رو با ضریبهای متفاوت جمع میکنه. توانهای بیشتر انعطاف بیشتری میدن تا خمیدگیهای بیشتری رو دنبال کنه؛ اما انعطاف زیاد ممکنه نویز نمونهها رو هم دنبال کنه.
دو نوع خطا رو جدا ببین
MSE=(1/n)*sum((y_i-pred_i)^2)
خطای آموزش روی همان نمونههایی حساب میشه که مدل باهاشون جور شده. خطای آزمون اینجا روی مجموعهٔ جداگانهای با تابع زمینه و نویز مستقل سنجیده میشه؛ برای همین ممکنه این دو خطا در جهتهای متفاوت حرکت کنن.
پیچیدگی بهتنهایی معیار انتخاب نیست
training_error!=test_error
درجهٔ پایین ممکنه الگو رو نگیره و درجهٔ بالا هم روی آموزش خیلی خوب ولی روی آزمون ضعیفتر عمل کنه. برای همین هر دو خطا رو در کنار هم مقایسه کن؛ بهترین نقطه به دادهها بستگی داره.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
چرا خطای آزمون ممکنه با بیشترشدن پیچیدگی بالا بره، حتی وقتی خطای آموزش پایین میآد؟
مدل پیچیدهتر میتونه جزئیات بیشتری از نمونههای آموزشی رو دنبال کنه، از جمله نویزشون. اگر آن جزئیات در دادهٔ تازه تکرار نشن، پیشبینی بدتر میشه. برای همین خطای آموزش و آزمون جداگانه بررسی میشن؛ در این شبیهسازی هر دو مجموعه ساختگی و ثابتن.
سؤالهای رایج
بیشبرازش یعنی چی؟
یعنی مدل بهجای یادگرفتن الگوی کلی، زیادی به جزئیات نمونههای آموزش میچسبه. ممکنه خطای آموزش کم باشه ولی خطای آزمون بیشتر بشه.
فرق خطای آموزش و آزمون چیه؟
آموزش روی نقطههایی سنجیده میشه که مدل باهاشون تنظیم شده؛ آزمون از نقطههای جدا استفاده میکنه تا ببینیم مدل روی دادهٔ ندیده چطور پیشبینی میکنه.
چرا مدل پیچیدهتر همیشه بهتر نیست؟
چون انعطاف بیشتر میتونه نویز نمونههای آموزش رو هم دنبال کنه. در آن حالت خطای آموزش پایین میآد ولی پیشبینی روی دادهٔ جدا ممکنه بدتر بشه.
خطای آزمون همیشه با پیچیدگی بالا میره؟
نه. نتیجه به دادهها بستگی داره؛ در این مثال اول خطای آزمون کم میشه و بعد در بعضی پیچیدگیها بالا میره.