کراسانتروپی: تابع هزینهی دستهبندی
جواب کوتاه
کراسانتروپی تابع هزینهی دستهبندیه. قاعدهش سادهست: ببین مدل به جواب درست چه احتمالی داده، و منفی لگاریتمش رو جریمه کن. اگه با اطمینان درست گفته باشه (مثلا ۰٫۹)، جریمه تقریبا صفره؛ اگه دودل بوده (۰٫۵)، جریمه متوسطه؛ اگه با اطمینان غلط گفته باشه (۰٫۱)، جریمه خیلی زیاده و هر چی به صفر نزدیکتر، بیحد بیشتر. برای همین مدل یاد میگیره هیچوقت بیدلیل مطمئن نباشه. بهش «log loss» هم میگن، و اسمش از نظریهی اطلاعات اومده. برای رگرسیون لجستیک و شبکههای دستهبند، معمولا از MSE بهتره.
سه پرتقال، سه جریمه
سه تا پرتقال صادراتی روی نوار اومدن. مدل دربارهی هر کدوم یه احتمال «صادراتی» داده. حالا که جواب درست رو میدونیم، باید جریمهش کنیم:
دربارهی اولی گفت ۰٫۹؛ درست و مطمئن، جریمه تقریبا هیچی. دربارهی دومی گفت ۰٫۵؛ دودل بود، جریمهی متوسط. دربارهی سومی گفت ۰٫۱؛ یعنی با اطمینان گفت «این آبمیوهست» و غلط بود. جریمهش بیست برابر اولیه.
به این روش جریمه میگن کراسانتروپی. پیامش به مدل اینه: «دودل بودن اشکالی نداره، ولی با اطمینان غلط گفتن خیلی گرون تموم میشه».
قاعدهش
- جواب درست رو پیدا کنید: «صادراتی».
- ببینید مدل به همین جواب درست چه احتمالی داده: مثلا ۰٫۹.
- منفی لگاریتم همین عدد رو حساب کنید: حدود ۰٫۱. این جریمهست.
نکتهی مهم: فقط احتمالی که به جواب درست داده مهمه. اینکه بقیهی احتمال رو بین بقیهی دستهها چطور پخش کرده، توی این حساب ساده دیده نمیشه. چرا منفی؟ چون لگاریتم عددهای بین صفر و یک منفیه؛ با یه منفی، جریمه مثبت میشه.
منحنی جریمه
اگه جریمه رو برای همهی احتمالها بکشیم، این شکلی میشه:
سمت راست، نزدیک یک، منحنی تقریبا صافه و جریمه نزدیک صفر. هر چی به چپ بریم، تندتر بالا میره. با ۰٫۰۱ جریمه حدود ۴٫۶ میشه، و اگه مدل به جواب درست دقیقا صفر بده، جریمه بینهایت میشه. یعنی کراسانتروپی هیچوقت نمیذاره مدل بگه «محاله» و بعد اشتباه کنه.
چرا MSE نه
چرا همون میانگین مربع خطا رو به کار نبریم؟ جواب درست رو «۱» بگیریم و پیشبینی رو ۰٫۱؛ خطا ۰٫۹ و مربعش ۰٫۸۱. حالا اگه مدل بدترین اشتباه ممکن رو بکنه و بگه صفر، مربع خطا فقط میشه ۱. یعنی MSE بین «یه کم اشتباه» و «با اطمینان کاملا غلط» فرق زیادی نمیذاره؛ سقفش یکه.
کراسانتروپی سقف نداره و اشتباههای مطمئن رو خیلی سنگینتر جریمه میکنه. برای همین برای رگرسیون لجستیک و شبکههای دستهبند، معمولا کراسانتروپی انتخاب میشه.
چند دسته، چند مثال
با چند دسته هم قاعده همونه. اگه عکس واقعا «سگ» باشه و مدل گفته باشه «گربه ۰٫۷، سگ ۰٫۲، پرنده ۰٫۱»، جریمه میشه منفی لگاریتم ۰٫۲، یعنی حدود ۱٫۶. عددهای گربه و پرنده مستقیم نمیان توی حساب.
برای کل داده هم، جریمهی همهی مثالها رو میانگین میگیریم؛ مثل همهی تابعهای هزینه. آموزش یعنی کم کردن همین میانگین با گرادیان کاهشی.
اسم عجیبش
«کراسانتروپی» یعنی «آنتروپی متقاطع» و از نظریهی اطلاعات اومده؛ همون علمی که حساب میکنه برای فرستادن یه پیام چند تا بیت لازمه. اونجا کراسانتروپی میگه اگه فکر کنیم دنیا یه جوریه ولی واقعا جور دیگهایه، بهطور میانگین چقدر بیت اضافه هدر میدیم.
توی یادگیری ماشین، «دنیای واقعی» برچسب درسته و «فکر ما» پیشبینی مدل. برای همین بهش «log loss» هم میگن؛ این دو تا اسم جای هم به کار میرن. درس بعد، سافتمکس، میگه مدل اصلا چطور برای چند دسته احتمال میسازه.
جمعبندی. آنچه از این درس با خودتان میبرید.
- به احتمالِ جواب درست نگاه کن.
- جریمه: منفی لگاریتم همون احتمال.
- اطمینان درست: جریمه نزدیک صفر.
- اطمینان غلط: جریمه خیلی زیاد.
- برای دستهبندی، معمولا از MSE بهتر.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.