نگاهی دوطرفه به یادگیری بدون کنتراست؛ ماجرای جالبِ مدل‌هایی که خودشون یاد می‌گیرن!

Fall Back

اگه به هوش مصنوعی و یادگیری ماشین علاقه داری، احتمالا اصطلاح «یادگیری سلف-سوپر وایزد» یا همون Self-Supervised Learning به گوشت خورده؛ یعنی سیستم خودش یاد می‌گیره بدون این که یکی بهش جواب درستِ هر داده رو بگه، فقط با دست‌کاری و نگاه‌های متنوع به داده‌ها. حالا یه سبک خاص به اسم “یادگیری سلف-سوپر وایزد بدون کنتراست” هست که خیلی سر و صدا کرده. اینجا میخوام برات خلاصه و خودمونی توضیح بدم جریان دقیقاً چیه و چه مسائلی داره.

خب، توی این روشِ غیرکنتراستی (Non-Contrastive)، هدف اینه که مدل (که بهش انکودر و پرِدیکتور هم می‌گن، یعنی بخش‌هایی که داده رو به کد تبدیل می‌کنن و پیش‌بینی می‌کنن) رو طوری تربیت کنیم که دوتا نمای مختلف از یه داده رو که ورودی می‌دیم، کد یا بردار خروجیشون به هم نزدیک باشه. مثلاً از یه عکس یه بار یه تیکه‌اش رو می‌بینه، یه بار رنگ‌هاشو عوض می‌کنه، بعد برای هردوش کد جدا درست می‌کنه و سعی می‌کنه این کدها به هم شبیه بشن.

اما یه مشکل این وسط هست! اگه مدل رو همینطوری آموزش بدیم، ممکنه خیلی تنبل بشه و برای همه داده‌ها یه جواب ساده و یکسان بده (مثلاً همه رو صفر در نظر بگیره)، که به این می‌گن «Representation Collapse» یا فروپاشی نمایش؛ یعنی خروجی مدل اصلاً چیز خاصی راجع به داده نمی‌گه و همه شبیه همه می‌شن! خلاصه یعنی مدل یه جورایی گول می‌زنه و یاد نمی‌گیره.

برای مقابله با این مشکل، معمولاً از دو تا ترفند استفاده می‌کنن: یکی «استاپ گرادیِنت» (Stop Gradient) هست که یعنی وقتی شبکه رو آموزش می‌دیم، بخشی از گرادیِنت‌های شبکه (گرادیِنت یعنی شیب خطا، که مدل باهاش یاد می‌گیره) رو قطع می‌کنیم، تا مدل نتونه یک‌دفعه همرو یکی کنه! یکی دیگه هم “میانگین‌گیری نمایی” یا Exponential Moving Average هست که یه روشیه شبیه این که هر دفعه وزن‌ها (پارامترهای مدل) رو کمی از مدل فعلی و کمی هم از مدل گذشته برداریم تا مدل آروم‌تر و کنترل‌شده‌تر یاد بگیره.

حالا دانشمندها نشستن بررسی کردن که دقیقاً این دو تا روش چطور جلوی فروپاشی مدل رو می‌گیرن. توی این مقاله، نویسنده‌ها از دو زاویهٔ تئوری مختلف نگاه کردن: یکی از طرف بهینه‌سازی (Optimization) که یعنی چطوری مدل بهترین وزن‌ها رو پیدا می‌کنه، و یکی هم از جنبه سیستم‌های دینامیکی (Dynamical Systems) که یه جور نگاهِ ریاضی و حرکت پیوسته مدل در طول زمانه.

اونا نشون دادن که این ترفندها، واقعاً دقیق هدف اصلیِ مدل رو بهینه نمی‌کنن (یعنی اون تابع هدف اصلی که قرار بوده بر اساسش مدل یاد بگیره، مو به مو انجام نمیشه) و حتی تابع هدف صافِ دیگه‌ای هم نیست که اینا حتماً بهینه‌سازیش کنن! ولی در عوض، این روش‌ها کاملاً جلوی فروپاشی خروجی مدل رو می‌گیرن و مدل درمیاد usable و باحال؛ یعنی مدل میشه ازش تو کارای مختلف مثل دسته‌بندی یا تشخیص اشیا به خوبی استفاده کرد.

جالبیش اینه که قبلاً محققی به اسم Tian و همکاراش سال 2021 اومدن نشون دادن اگه این ترفندها رو استفاده نکنی و دقیق فقط همون تابع هدف رو توی حالت خطی مدل بهینه کنی، مدل همیشه فرو می‌پاشه و همه‌ی خروجیا یکی می‌شن! این مقاله هم همونو می‌گه، با این فرق که حتی فرضیه‌های کم‌تری گذاشته و نشون داده تقریباً همیشه و توی هر مدل خطی همین داستان پیش میاد.

در نهایت، نویسنده‌ها با نگاه از سیستم‌های دینامیکی نشون دادن که محل ایست (یا نقاط ثابت) سیستم یعنی جایی که مدل آروم می‌گیره، معمولاً کاملاً پایدارن و دیگه از اونجا مدل لیز نمی‌خوره که به جواب‌های ساده و خرابی برسه. یعنی این دوتا راهکار، حسابی به درد می‌خورن و مدل رو سالم نگه می‌دارن.

خلاصه، اگه مدل‌های هوش مصنوعی سلف-سوپر وایزد می‌خوای آموزش بدی و دوست نداری سیستم هات به خروجی خراب یا بی‌فایده برسن، این تکنیک‌های استاپ گرادیِنت و میانگین نمایی واقعاً کارشون درسته! این مقاله هم این رو با توضیح تئوری دقیق و خودمونی بهت ثابت می‌کنه.
منبع: +