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