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

درس ۲۸ از ۹۹، هوش مصنوعی، حدود ۷ دقیقه خواندن

تابع هزینه: خطا را عدد کنیم

جواب کوتاه

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

کی بهتر انداخت؟

مریم و علی هر کدوم سه تا دارت انداختن. کی بهتر بود؟

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

به همین عدد، که می‌گه «چقدر بد شد»، توی یادگیری ماشین می‌گن تابع هزینه. بهش «تابع زیان» یا «تابع خطا» هم می‌گن.

یه عدد

توی یادگیری ماشین، «وسط سیبل» جواب درسته، و «جای دارت» پیش‌بینی مدل. تابع هزینه همه‌ی این فاصله‌ها رو می‌گیره و یه عدد تحویل می‌ده.

چرا یه عدد؟ چون آموزش یعنی پیچ‌های مدل رو اونقدر بچرخونیم که همین عدد کوچیک بشه. توی درس مشتق این عدد رو «خطا» صدا کردیم و دیدیم مدل با شیبش می‌فهمه پیچ رو کدوم طرف ببره. اگه عدد نداشتیم، شیبی هم نداشتیم.

از هر مثال تا کل

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

  1. برای هر روز، خطا رو حساب کنید: فرق پیش‌بینی و واقعی. منفی و مثبت مهم نیست، فقط اندازه‌ش.
  2. خطاها رو یه عدد کنید؛ مثلا میانگینشون: ۴ و ۶ و ۲، میانگین ۴.

این یه تابع هزینه‌ی ساده‌ست: «میانگین اندازه‌ی خطا». یعنی مدل ما به‌طور میانگین ۴ تا بستنی اشتباه می‌کنه. یه مدل دیگه با میانگین ۲ بهتره.

کدوم اشتباه گرون‌تره

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

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

یه نمونه‌ی معروفش، میانگین مربع خطا، خطاها رو به توان دو می‌رسونه تا اشتباه‌های بزرگ بیشتر به چشم بیان. برای دسته‌بندی هم، که جواب «گربه» یا «سگه»، تابع هزینه جریمه‌ی جواب اشتباهه؛ معروف‌ترینش کراس‌انتروپی.

برعکسش: پاداش

گاهی به جای «چقدر بد شد» می‌پرسیم «چقدر خوب شد». مثلا امتیاز یه بازی یا سود یه فروشگاه. اسمش عوض می‌شه، «تابع پاداش» یا «تابع سود»، و به جای کوچیک کردن، دنبال بزرگ کردنش هستیم. ولی در اصل همون ایده‌ست، فقط برعکس.

توی یادگیری با جایزه دقیقا همین کار رو می‌کنیم: مدل دنبال بیشترین جمع جایزه‌هاست.

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

قدم بعد

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

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

  • تابع هزینه: یه عدد برای «چقدر بد».
  • هر چی کمتر، بهتر.
  • خطای هر مثال، بعد یه عدد برای کل.
  • انتخابش: کدوم اشتباه گرون‌تره؟
  • آموزش یعنی کوچیک کردنش.

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

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

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

۱۵ پرسش

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

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

درس بعد