آموزشیادگیری ماشین

درس ۴۴ از ۹۹، هوش مصنوعی، حدود ۶ دقیقه خواندن

تعمیم: خوب بودن روی داده‌ی ندیده

جواب کوتاه

تعمیم یعنی مدل بعد از دیدن داده‌ی آموزش، روی مثال‌هایی که هیچ‌وقت ندیده هم درست کار کنه. هدف واقعی یادگیری ماشین همینه، نه نمره‌ی روی داده‌ی آموزش. مثل گردشگری که پنج تا جمله‌ی فارسی از کتاب‌چه‌ش حفظ کرده: «یه نون بربری لطفا» رو درست می‌گه، ولی وقتی نونوا می‌پرسه «کنجدی یا ساده؟» گیر می‌کنه. حفظ کرده، یاد نگرفته. مدل هم ممکنه روی داده‌ی آموزش ۹۹ درصد بگیره و روی داده‌ی تازه ۷۰ درصد. تعمیم فقط وقتی کار می‌کنه که داده‌ی تازه شبیه داده‌ی آموزش باشه، و فقط با داده‌ای که مدل هیچ‌وقت ندیده سنجیده می‌شه.

گردشگر و نونوا

یه گردشگر پیش از سفر پنج تا جمله‌ی فارسی رو از یه کتاب‌چه حفظ کرده. حالا رفته نونوایی:

«یه نون بربری لطفا» رو عالی می‌گه، چون عینا حفظش کرده. ولی نونوا می‌پرسه «کنجدی یا ساده؟»، و این جمله توی کتاب‌چه نبود. گیر می‌کنه. یه کسی که واقعا فارسی یاد گرفته، این جمله رو هم می‌فهمید، با اینکه هیچ‌وقت عینش رو نشنیده.

به همین توانایی، یعنی درست کار کردن روی چیزی که قبلا ندیدی، می‌گن تعمیم.

تعمیم یعنی چی

یادگیری ماشین اصلا برای همین ساخته شده: از مثال‌ها یاد بگیره و روی چیزهای تازه درست کار کنه. اگه فقط می‌خواستیم جواب مثال‌های قدیمی رو بدونیم، یه جدول کافی بود؛ مدل لازم نبود.

پس نمره‌ای که مهمه، نمره‌ی مدل روی داده‌ای که ندیده. به خطای مدل روی داده‌ی ندیده می‌گن «خطای تعمیم»، یا «خطای بیرون از نمونه».

دو نمره

هر مدلی دو تا نمره داره، که خیلی وقت‌ها با هم فرق دارن:

روی داده‌ی آموزش ۹۹ درصد، روی داده‌ی تازه ۷۰ درصد. نمره‌ی اول مثل جمله‌های کتاب‌چه‌ست: مدل جوابشون رو دیده. نمره‌ی دوم مثل سوال تازه‌ی نونوا. هر چی این فاصله بیشتر باشه، مدل بیشتر حفظ کرده و کمتر یاد گرفته.

پس اگه یه نفر گفت «مدل من ۹۹ درصد دقت داره»، اولین سوال اینه: روی کدوم داده؟

چرا اصلا کار می‌کنه

چرا باید انتظار داشته باشیم مدلی که روی یه دسته مثال یاد گرفته، روی مثال‌های تازه هم کار کنه؟ چون فرض می‌کنیم مثال‌های تازه از همون جنس قدیمی‌ها هستن؛ همون توزیع.

گردشگری که فارسی تهرونی یاد گرفته، توی تهران خوب کار می‌کنه؛ ولی اگه یهو بره یه شهر دیگه با لهجه‌ی خیلی متفاوت، باز گیر می‌کنه. مدل هم همین‌طوره: اگه دنیا عوض بشه و داده‌ی تازه شبیه داده‌ی آموزش نباشه، هیچ مدلی خوب تعمیم نمی‌ده. این‌که دقیقا چرا مدل‌های بزرگ امروزی این‌قدر خوب تعمیم می‌دن، هنوز موضوع پژوهشه.

چطور بسنجیم

  1. پیش از آموزش، یه تیکه از داده رو کنار بذارید؛ همون کنکور درس داده‌ی آزمون.
  2. مدل هیچ‌وقت نباید این تیکه رو ببینه؛ نه موقع آموزش، نه موقع تنظیم.
  3. آخر کار، فقط یه بار، مدل رو روی همین تیکه بسنجید.

این نمره، بهترین حدس ما از خطای تعمیمه. اگه وسط کار یواشکی به داده‌ی آزمون نگاه کنید، مثل اینه که سوال‌های کنکور لو رفته باشه؛ نمره بالا میاد، ولی دیگه چیزی درباره‌ی دنیای واقعی نمی‌گه.

دو جور شکست

یه مدل از دو راه می‌تونه بد تعمیم بده. یا مثل گردشگر، مثال‌ها رو حفظ می‌کنه؛ به این می‌گن بیش‌برازش، درس بعد. یا اونقدر ساده‌ست که حتی الگوی همون مثال‌های آموزش رو هم نمی‌گیره؛ به این می‌گن کم‌برازش.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • تعمیم: درست کار کردن روی داده‌ی ندیده.
  • هدف واقعی، نه نمره‌ی آموزش.
  • حفظ کردن با یاد گرفتن فرق داره.
  • فقط وقتی داده‌ی تازه شبیه آموزش باشه.
  • با داده‌ی آزمونِ دست‌نخورده بسنج.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد