جادوی contrastive learning! آیا طوفانی در راه است؟
دوستان عزیزمون در دانشگاه استنفورد دارند انقلاب میکنند! حتما اسم contrastive learning به گوشتون خورده. موضوعی که باز بر اهمیت نگاه pre-training/fine-tuning تاکید میکنه و از اون نشات گرفته. در واقع سعی بر اینه که وقتی میخواهید مدل رو روی مسالهای آموزش بدید، ابتدا به صورت self-supervised یک بازنمایی مناسب از دادهها رو یاد بگیرید و بعد، این مدل pre-train شده رو روی دیتای لیبلدار fine-tune کنید؛ دقیقا شبیه برت.
اما برای اینکه بتونید به صورت self-supervised یه بازنمایی رو یاد بگیرید باید چه کار کرد؟!؟! نکته اینه که اگه یه سری توابع داشته باشید(transform function) که بشه هر داده رو اندکی تغییر داد، به طوریکه از داده اصلی خیلی فاصله نگیره و فقط از یه view دیگه به همون داده نگاه کنه میشه یه تابع contrastive loss تعریف کرد. به این صورت که سعی کنه فاصله بازنمایی داده اصلی و بازنمایی view اون رو کمینه کنه. مثلا در حوزه تصویر، یه سری توابع مثل rotate ،mirror و … رو درنظر میگیرند. اما همونطور که تا الان متوجه شدید پیدا کردن اون transform functionها خیلی بستگی به دانش دامنه داره و کاربرد contrastive learning رو در مودالیتیهای مختلف سخت میکنه.
اینجاست که مردانی اهل جهاد از خطه استنفورد به پاخاستند و شبکهای به نام viewmaker معرفی کردند. این شبکه stochastic bounded adversary است. ذات تصادفیش به خاطر اینه که یه ورودی میگیره و سعی میکنه مقداری نویز رندم به اون اضافه کنه. از طرفی bounded است چون تغییر در ورودیش با یه عبارت L1-norm محدود شده و این مقدار محدودیت هم به عنوان یه hyper parameter قابل تنظیمه و بهش distortion budget گفته میشه و همچنین adversary است به خاطر اینکه سعی داره contrastive loss رو بیشینه کنه؛ یعنی در حالیکه وقتی view تولید شده رو به سمت انکودر خروجی میده، انکودر سعی داره contrastive loss رو کمینه کنه.
نگران هم نباشید مثل GANها در هنگام آموزش بدرفتار و سرکش نیست. شاید یه دلیلش این باشه که perturb کردن (اضافه کردن نویز به ورودی با هدف معین) ورودی خیلی سادهتر از تولید ورودیه که در GAN اتفاق میفته و از طرفی همین perturb کردن هم به صورت bounded انجام میشه.
خلاصه که اگر یک بردار ورودی داشته باشیم، شبکه viewmaker سعی میکنه روش یک ترنسفورمی بده که contrastive loss زیاد بشه و بعد از سمتی یک انکودری هم هست که سعی میکنه loss رو کمینه کنه و در نهایت این فرایند باعث میشه که transform functionهای خوبی براتون دربیاد و انکودر هم رپرزنتیشن خوبی یاد بگیره.
در نهایت هم روی سه مودالیتی تصویر، صوت و داده ساختاریافته سنسورها تستش کردند و نتایج بسیار عالی گرفتند. در برخی موارد تونسته حالتی که expert اون دامنه رو که transform functionها رو تعیین کرده هم شکست بده.
این نهضت اگه پا بگیره احتمالا نگاه به خیلی از مسائل عوض خواهد شد.
لینک بلاگ مربوط به مقاله (که توصیه میکنیم اول این رو بخونید):
https://ai.stanford.edu/blog/viewmaker/
لینک مقاله:
https://arxiv.org/abs/2010.07432
#paper
#read
@nlp_stuff
Post #165
1.89K