لیبل اسموتینگ++: یه روش خفن‌تر برای آموزش شبکه‌های عصبی بدون اعتماد به نفس زیاد!

Fall Back

خب، بیاید یه کم درباره داستان آموزش شبکه‌های عصبی حرف بزنیم؛ مخصوصاً وقتی که با برچسب‌های one-hot یا همون لیبل‌های یکی-صفر آموزش می‌شن. معمولاً این مدل برچسب‌دهی باعث میشه شبکه خیلی اعتماد به نفس پیدا کنه و فکر کنه همیشه حق با اونه! این یعنی چی؟ یعنی شبکه تو پیش‌بینی هاش زیادی مطمئن رفتار می‌کنه و گاهی هم دچار overfitting میشه. (overfitting یعنی مدل اونقدر خودش رو با دیتای آموزشیش جفت و جور می‌کنه که دیگه روی دیتای جدید خوب جواب نمیده)

برای حل این مشکل یه ترفندی هست به اسم Label Smoothing یا به فارسی “صاف‌کردن برچسب‌ها”. این روش چیکار می‌کنه؟ به جای این که به مدل بگیم فقط یه گزینه درسته و بقیه صفرن، میایم به همه کلاس‌ها کمی احتمال می‌دیم. اینطوری مدل خیلی سفت و سخت فکر نمی‌کنه فقط باید رو یه گزینه تمرکز کنه. اما این مدل یه ایراد داره: به همه گزینه‌های اشتباه به یه اندازه احتمال می‌ده، یعنی اهمیت تفاوت بین کلاس‌ها رو نمی‌فهمه!

حالا نویسنده‌های این مقاله اومدن و یه نسخه بهتر از این تکنیک رو ساختن به اسم Label Smoothing++ یا همون “لیبل اسموتینگ دو پلاس”! توی این روش جدید، ما به کلاس مقصد (کلاسی که درست هست) یه لیبل ثابت می‌دیم، ولی برای بقیه کلاس‌های اشتباه، احتمال‌هاشون رو با توجه به این که چقدر به هم ربط دارن پخش می‌کنیم. یعنی چی؟ یعنی بین این کلاس‌ها تفاوت قائل می‌شیم، مثلاً ممکنه دو تا کلاس به هم شبیه باشن و منطقی‌تر باشه مدل اشتباه گرفتنشون بجای یه کلاس خیلی متفاوت.

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

نتیجه‌گیری مقاله اینه که Label Smoothing++ هم جلوی اعتماد به نفس زیادی مدل رو می‌گیره (مدل نمیگه فقط همین دسته درسته و بقیه عمراً!) و هم باعث میشه مدل بهتر بتونه روابط بین کلاس‌ها رو بفهمه و کلی تو عمومی‌تر شدنش کمک می‌کنه. (عمومی شدن مدل یا همان generalization یعنی وقتی مدل روی داده جدید هم خوب کار کنه) نویسنده‌ها توی کلی دیتاست آزمایش کردن و نشون دادن مدل‌هایی که با لیبل اسموتینگ دو پلاس آموزش دیدن دقیق‌تر و باهوش‌ترن و کمتر گول می‌خورن!

در کل بخوام جمع‌بندی کنم: اگر دوست داری شبکه عصبی‌ات فقط تو فضای آموزشیش خوب نباشه و واقعاً هوشمند باشه، بهتره یه سراغ این روش جدید بری و بذاری خودش رنگ اشتباه‌ها رو بهتر یاد بگیره. اینطوری کلی نتیجه بهتری می‌گیری و مدل کلی انعطاف‌پذیرتر میشه!

منبع: +