یادگیری خود-نظارتی و کاربردهای آن
در دههی گذشته، تحقیق و توسعه در حوزه هوش مصنوعی بهویژه پس از نتایج حیرت انگیز شبکه الکس نت در سال 2012 به عنوان اولین معماری موفق در حوزه دیپ لرنینگ در رقابت ImageNet به صورت فزاینده ای افزایش یافته است. تمرکز تا حد زیادی بر روی روشهای یادگیری نظارتشده بود که به مقادیر عظیمی از دادههای برچسبدار به جهت آموزش سیستمها برای موارد استفادهی خاص نیاز دارند.
در این مقاله، یادگیری خود-نظارتی (Self-Supervised Learning) یا SSL را بررسی خواهیم کرد؛ که امروزه یک موضوع تحقیقاتی داغ در حوزه ی یادگیری ماشین است.
الگوریتمهای یادگیری خود-نظارتی چه هستند؟
یادگیری خود-نظارتی یک تکنیک یادگیری ماشین (ماشین لرنینگ) در حال تکامل است که برای حل چالشهای ناشی از وابستگی بیش از حد به دادههای برچسبگذاری شده است. برای سالهای متمادی، ساخت سیستمهای هوشمند با استفاده از روشهای ماشین لرنینگی تا حد زیادی به دادههای برچسبدار با کیفیت خوب وابسته بوده است. در نتیجه، هزینه دادههای تفسیرشده با کیفیت بالا یک گلوگاه بزرگ در روند کلی آموزش بوده است.
یکی از اولویتهای اصلی محققان هوش مصنوعی، توسعه مکانیسمهای خودآموزی با دادههای بدون ساختار است که میتواند تحقیق و توسعه سیستمهای هوش مصنوعی عمومی را با هزینهی کم مقیاس کند. در عمل، جمعآوری و برچسبگذاری انواع دادههای متنوع غیرممکن است.
برای حل این مشکل، محققان در حال کار بر روی تکنیکهای یادگیری خود-نظارتی (SSL) با قابلت ثبت تفاوتهای ظریف در دادهها هستند.
قبل از اینکه به یادگیری خود-نظارتی بپردازیم، بیایید پیشینهای در مورد روشهای یادگیری رایج مورد استفاده در ساخت سیستمهای هوشمند داشته باشیم.
۱- یادگیری نظارتشده
یادگیری با سرپرست یا یادگیری نظارت شده یک تکنیک یادگیری محبوب برای آموزش شبکههای عصبی بر روی دادههای برچسبگذاری شده به جهت انجام یک کار خاص. شما می توانید یادگیری نظارتشده را به عنوان یک کلاس درس در نظر بگیرید که در آن یک معلم با مثالهای زیادی به دانشآموز آموزش میدهد. برای مثال طبقهبندی اشیاء یک یادگیری با سرپرست یا نظارت شده است.
۲- یادگیری بدون ناظر
یادگیری بدونناظر یا بدون سرپرست (Unsupervised Learning) یک تکنیک یادگیری عمیق است که برای یافتن الگوهای ضمنی در دادهها بدون آموزش دیدن صریح بر روی دادههای برچسبدار استفاده میشود. برخلاف یادگیری نظارتشده، برای آموزش نیازی به تفسیر دادهها و حلقهی بازخورد ندارد. برای مثال خوشهبندی یکی از انواع این نوع یادگیری است.
۳- یادگیری نیمه-نظارتشده
یادگیری نیمه-نظارتشده یک روش یادگیری ماشین است که در آن کسری از دادههای ورودی برچسبگذاری میشود. این روش ترکیبی از یادگیری نظارتشده و بدون ناظر است.
یادگیری نیمه-نظارتشده میتواند در مواردی مفید باشد که تعداد کمی نقاط داده برچسبدار برای آموزش مدل داریم. فرآیند آموزش میتواند از یک تکهی کوچک از دادههای برچسبگذاریشده استفاده کند و بقیه مجموعهدادهها را شبیه به آن برچسبگذاری کند.
به عنوان مثال، معلمی به دانشآموزی چند مسئله را آموزش میدهد و باید راه حل بقیهی مسائل را خودش بیابد.
۴- یادگیری تقویتی
یادگیری تقویتی روشی است که برای آموزش عاملهای هوش مصنوعی برای یادگیری رفتار محیطی در زمینههای خاص، با استفاده از سیاست بازخورد پاداش استفاده میشود.
به عنوان مثال: به این روش به عنوان کودکی فکر کنید که در تلاش است در یک بازی برنده شود.
یادگیری خود-نظارتی چیست؟
یادگیری خود-نظارتی یک فرآیند یادگیری ماشین است که در آن مدل خود را آموزش میدهد تا بخشی از ورودی را با استفاده از قسمت دیگری از آن یاد بگیرد. همچنین به عنوان یادگیری پیشگویانه (predictive) یا مستمسک (pretext) هم شناخته میشود.
در این فرآیند، مسئلهی بدون ناظر با تولید خودکار برچسبها به یک مسئلهی نظارتشده تبدیل میشود. برای استفاده از حجم عظیمی از دادههای بدون برچسب، تعیین اهداف یادگیری مناسب برای نظارت با استفاده از خود دادهها بسیار مهم است.
فرآیند روش یادگیری خود-نظارتی، شامل شناسایی هر بخش پنهان ورودی از هر بخش غیرپنهان آن است.
به عنوان مثال، در پردازش زبان طبیعی، اگر چند کلمه را داشته باشیم، با استفاده از یادگیری خود-نظارتی میتوانیم بقیهی جمله را کامل کنیم. به طور مشابه، در یک ویدیو، میتوانیم فریمهای گذشته یا آینده را بر اساس دادههای ویدیویی موجود پیشبینی کنیم. یادگیری خود-نظارتی از ساختار دادهها برای استفاده از انواع سیگنالهای نظارتی در مجموعه دادههای بزرگ استفاده میکند؛ و همهی اینها بدون تکیه بر برچسبها انجام میشود.
تفاوت یادگیری خود-نظارتی و یادگیری بدون ناظر در چیست؟
بسیاری از مردم این دو اصطلاح را اشتباه میگیرند و آنها را به جای هم استفاده میکنند. با این حال، این دو تکنیک یادگیری اهداف متفاوتی دارند.
روشهای یادگیری خود-نظارتی و یادگیری بدون ناظر را میتوان تکنیکهای یادگیری مکمل در نظر گرفت؛ زیرا هر دو نیازی به مجموعهدادههای برچسبدار ندارند. یادگیری بدون ناظر را میتوان به عنوان ابرمجموعهی یادگیری خود-نظارتی در نظر گرفت؛ چرا که هیچ حلقهی بازخوردی ندارد. برعکس، یادگیری خود-نظارتی سیگنالهای نظارتی زیادی دارد که به عنوان بازخورد در فرآیند آموزش عمل میکنند.
یک راه سادهتر برای بیان آن این است که تکنیک یادگیری “بدون ناظر” بیشتر بر روی مدل تمرکز میکند و نه بر دادهها؛ در حالی که تکنیک “یادگیری خود-نظارتی” برعکس این روند عمل میکند. با این حال، روشهای یادگیری بدون ناظر در خوشهبندی و کاهش بعد خوب هستند، در حالی که یادگیری خود-نظارتی روشی مستمسک برای انجام کارهای رگرسیون و طبقهبندی است.
چرا به یادگیری خود-نظارتی احتیاج داریم؟
یادگیری خود-نظارتی به دلیل مشکلات زیر در سایر روشهای یادگیری به وجود آمد:
- هزینهی بالا: دادههای برچسبگذاریشده توسط اکثر روشهای یادگیری مورد نیاز است. هزینه دادههای برچسبدار با کیفیت خوب از نظر زمان و هزینه بسیار بالا است.
- چرخه عمر طولانی: چرخهی حیات آمادهسازی دادهها یک فرآیند طولانی در توسعهی مدلهای یادگیری ماشین است. این کار نیاز به تمیز کردن، فیلتر کردن، تفسیر کردن، بازنگری و بازسازی مطابق با چارچوب آموزشی دارد.
- هوش مصنوعی عمومی: چارچوب یادگیری خود-نظارتی یک گام به جاسازی قابلیت شناختی انسان در ماشینها نزدیکتر است.
اکنون بیایید در مورد کاربرد یادگیری خود-نظارتی در حوزههای مختلف صحبت کنیم.
کاربردهای یادگیری خود-نظارتی در بینایی ماشین
برای سالهای متمادی تمرکز روشهای یادگیری در بینایی ماشین بر روی تکمیل معماری مدل، با فرض داشتن دادههای با کیفیت بالا بوده است. با این حال، در واقعیت، داشتن دادههای تصویری با کیفیت خوب بدون صرف زمان و تلاش زیاد که منجر به آموزش مدلهایی که کاملا بهینه نیستند میشود، دشوار است.
اخیراً، بخش بزرگی از تمرکز تحقیقات بر روی توسعهی روشهای خود-نظارتی در بینایی ماشین در کاربردهای مختلف آن بوده است. توانایی آموزش مدلها با دادههای بدون برچسب، روند کلی آموزش را تسریع میکند و مدل را قادر میسازد تا ویژگیهای اساسی را بدون استفاده از برچسبهایی که ممکن است سوگیری هم داشته باشند، بیاموزد.
برای آموزش یک مدل خود-نظارتی عمدتاً دو مرحله وجود دارد:
۱- تسک مستمسک
تسکی که ما برای پیشآموزش از آن استفاده میکنیم، به عنوان کار مستمسک (pretext task) شناخته میشود. هدف از تسک مستمسک (که به عنوان تسک نظارتشده نیز شناخته میشود) هدایت مدل برای یادگیری نمایشهای میانی دادهها است. این تسک برای درک معنای ساختاری زیربنایی که برای تسکهای عملی پاییندستی به کار میآید، مفید است.
مدلهای مولد را میتوان مدلهای خود-نظارتی اما با اهداف متفاوت در نظر گرفت. برای مثال از GANها برای تولید تصاویر واقعی برای فریب قسمت متمایزکننده (discriminator) استفاده میشود در حالی که هدف آموزش خود-نظارتی شناسایی ویژگیهای خوب است که میتواند برای تسکهای گوناگونی جز این فریب، مورد استفاده قرار بگیرد.
۲- تسکهای پاییندستی
تسک پاییندستی فرآیند انتقال دانش مدل مستمسک به یک کار خاص است. تسکهای پاییندستی با مقدار کمتری از دادههای برچسبدار ارائه میشوند.
تسکهای پاییندستی یا تسکهای هدف در حوزه تصویر میتوانند شامل تشخیص شی، طبقهبندی اشیا، شناسایی مجدد اشیا و غیره باشند که با استفاده از مدل مستمسک، بازتنظیم (finetune) شدهاند.
ایدههای زیادی توسط محققان برای انجام تسکهای مختلف مبتنی بر تصویر برای آموزش با استفاده از روش SSL ارائه شده است.
محلیسازی پچ/Patch
هدف: هدف از تسک مستمسک، شناسایی رابطهی بین پچهای مختلف در تصویر با استفاده از یادگیری خود-نظارتی است.
الگوریتم آموزشی [مقاله]
- یک پچ تصادفی از تصویر نمونه بگیرید.
- Nearest Neighbor: با فرض اینکه اولین پچ در وسط یک شبکه ۳×۳ قرار میگیرد، پچ دوم از ۸ مکان مجاور آن نمونهبرداری میشود.
- افزودن تغییراتی مانند شکاف بین پچها، انحراف رنگی، نمونهبرداری کاهشی (DownSampling)، و نمونهبرداری افزایشی (UpSampling) از پچها برای مدیریت پیکسلها و لرزشهای رنگی را تعریف کنید. این به مدل کمک میکند تا بیش از حد بر روی سیگنالهای سطوح پایین برازش نکند.
- هدف از این کار این است که شناسایی شود که کدام یک از ۸ موقعیت همسایه شامل پچ دوم است. این کار به عنوان یک مسئلهی طبقهبندی در ۸ کلاس تعریف میشود.
در حین نهایی کردن تسک مستمسک، مهم است که مطمئن شوید الگوهای بیاهمیت را در مقایسه با ویژگیهای نهفتهی سطح بالا که زیربنای الگوهای فراگیر است، یاد نمیگیرد. به عنوان مثالی از الگوهای سطح پایین، میتوان بافتهای مرزی بین پچها را نام برد که نمونهای از الگوهای بیاهمیت هستند. با این حال، برای برخی از تصاویر یک راه حل جزئی وجود دارد. این پدیده به دلیل یک اثر لنز دوربین به نام انحراف رنگی رخ میدهد که به دلیل تفاوت در کانون نور در طول موجهای مختلف اتفاق میافتد.
شبکههای عصبی کانولوشنال قادر به یادگیری مکان نسبی پچها با تشخیص تفاوت بین ارغوانی (آبی + قرمز) و سبز هستند. آزمایش بر روی نزدیکترین همسایهها ثابت کرد که تعداد کمی از پچها مناطق را از یک مکان مطلق بازیابی میکنند، چرا که پچها انحراف مشابهی را نشان میدهند.
پیشبینی پیکسلها با آگاهی از زمینه
هدف: پیشبینی مقادیر پیکسلهای یک پچ ناشناخته در تصویر بر اساس زمینهی کلی تصویر با استفاده از معماریهای رمزگذار-رمزگشا (encoder-decoder).
الگوریتم آموزشی [مقاله]
- تسک مستمسک با استفاده از معماری رمزگذار-رمزگشای ساده (Vanilla)آموزش داده میشود.
- رمزگذار (Pathak, et al., 2016) با استفاده از یک تصویر ورودی با مناطق سیاه شده، یک بازنمایی پنهان از تصویر را تولید میکند.
- رمزگشا از بازنمایی پنهان رمزگذار استفاده میکند و ناحیهی گمشدهی تصویر را با استفاده از تابع هزینهی بازسازی (MSE) تخمین میزند.
- لایهی کاملاً متصل (Fully Connected) بین رمزگذار و رمزگشا به هر واحد در رمزگشا اجازه میدهد تا در مورد کل محتوای تصویر استدلال کند.
تابع هزینه
توابع هزینهی مورد استفاده در آموزش، هزینهی بازسازی (reconstruction loss) و هزینهی خصمانه (adversarial loss) است.
هزینهی بازسازی
- هزینهی بازسازی (L2) مسئول ثبت ویژگیهای برجسته با توجه به زمینهی کامل تصویر است.
- هزینهی بازسازی، با فاصلهی نرمالشده و ماسکشده (Mask) تصویر ورودی x تعریف میشود.
- M: ماسک باینری مربوط به منطقهی حذفشدهی تصویر با مقدار صفر برای پیکسلهای ورودی و ۱ زمانی که یک پیکسل در نظر گرفته نمیشود.
- F: تابعی که خروجی رمزگذار را تولید میکند.
هزینهی خصمانه
- هزینهی خصمانه برای اینکه پیشبینی واقعی به نظر برسد و مدل، فضای نهفتهی دادههای ورودی که روی آن آموزش داده شده است را بیاموزد، مدلسازی میشود.
- فقط ژنراتور G در برابر ماسک ورودی شرطی شده است؛ چرا که متمایزکنندهی D میتواند از ناپیوستگی دائمی در مناطق وصله شده و زمینهی اصلی، بهرهبرداری کند.
هزینهی مشترک
- هزینهی مشترک با استفاده از ترکیب هر دو تابع هزینهی بازسازی و خصمانه ایجاد میشود.
- با این حال، در طول آزمایشها، نویسندگان متوجه شدند که ترمیم تصویر (inpainting) تنها با تابع ضرر خصمانه بهترین کارایی را دارد.
ترمیم تصویر با استفاده از روش SSL از طریق نظارت کمکی و یادگیری بازنمایی ویژگیهای مهم به دست میآید. در سال ۲۰۱۶، این مقاله یکی از پیشگامان اولیه در استفاده از رویکرد SSL در آموزش یک مدل تصویر رقابتی بود.
کاربردهای یادگیری خود-نظارتی در پردازش زبان طبیعی
قبل از اینکه SSL به بخشی از جریان اصلی تحقیقات بینایی ماشین تبدیل شود، قبلاً مسئول برداشتن گامهای بزرگ در فضای پردازش زبان طبیعی (Natural Language Processing) یا NLP بود. در برنامههای پردازش اسناد، پیشنهاد متن، تکمیل جمله و موارد دیگر، تقریباً در همه جا از مدلهای زبانی (Language Models) استفاده میشد.
قابلیتهای یادگیری این مدلها از زمان انتشار مقاله Word2Vec در سال ۲۰۱۳ که فضای NLP را متحول کرد، تکامل یافته است. ایدهی روشهای جاسازی کلمات ساده بود: به جای درخواست از یک مدل برای پیشبینی کلمهی بعدی، میتوانیم از آن بخواهیم کلمه بعدی را بر اساس زمینهی قبلی پیشبینی کند.
به دلیل چنین پیشرفتهایی، ما توانستیم نمایش معناداری را از طریق توزیع جاسازیهای کلمه به دست آوریم که میتواند در بسیاری از سناریوها مانند تکمیل جمله، پیشبینی کلمات و غیره استفاده شود. امروزه یکی از محبوب ترین روشهای SSL مورد استفاده در NLP، BERT است.
در دههی گذشته، جریان تحقیقات و توسعهی شگفتانگیزی در زمینه NLP وجود داشته است. اجازه دهید برخی از موارد مهم را در زیر خلاصه کنیم.
تشخیص جملهی بعدی
در تشخیص جملهی بعدی (Next Scentence Prediction) یا NSP، دو جمله را همزمان از یک سند و یک جملهی تصادفی از همان سند یا یک سند متفاوت انتخاب میکنیم، جمله A، جمله B و جمله C. سپس از مدل موقعیت نسبی جمله A را نسبت به جملهی B میپرسیم. و خروجی مدل یا IsNextSentence است و یا IsNotNextSentence . ما این کار را برای همهی ترکیبها انجام میدهیم.
سناریوی زیر را در نظر بگیرید:
- پس از اتمام ساعات مدرسه، مایک به خانه رفت.
- پس از تقریبا ۵۰ سال، سرانجام ماموریت سرنشیندار به ماه در حال انجام است.
- زمانی که مایک به خانه رفت، Netflix تماشا کرد تا استراحت کند.
اگر از شخصی بخواهیم هر دو جمله را که با درک منطقی ما مطابقت دارد انتخاب و مرتب کند، به احتمال زیاد جملهی ۱ و بعد از آن جملهی ۳ را انتخاب میکند.
هدف اصلی مدل در اینجا پیشبینی جملات بر اساس وابستگیهای ساختاری بلندمدت است.
Bidirectional Encoder Representation from Transformers یا BERT مقالهای که توسط محققان تیم هوش مصنوعی گوگل منتشر شده است، و در زمان صحبت از تسکهای NLP مانند استنتاج زبان طبیعی (MNLI)، یا پاسخ به سؤالات (SQuAD) و غیره میشود، به یک استاندارد طلایی تبدیل شده است.
برای تسکهای پاییندستی این چنین، BERT یک راه عالی برای ثبت رابطهی بین جملات ارائه میدهد که از طریق سایر تکنیکهای مدلسازی زبان امکانپذیر نیست. در اینجا نحوهی کار برای پیشبینی جملهی بعدی را میبینید.
برای اینکه BERT انواع تسکهای پاییندستی را انجام دهد، نمایش ورودی میتواند به صورت غیر مبهم یک جفت جمله را که در یک دنباله در کنار هم قرار گرفتهاند را جانمایی کند. “دنباله” به توالی توکنهای ورودی BERT اشاره دارد.
اولین توکن هر دنباله، همیشه توکن ویژهی طبقهبندی ([CLS]) است. حالت پنهان نهایی مربوط به این توکن برای تجمیع جانماییها برای استفاده در تسکهای طبقهبندی به کار گرفته میشود.
جملات را به دو صورت متمایز میکنیم. ابتدا آنها را با یک نشانهی مخصوص ([SEP]) جدا میکنیم. سپس، یک جاسازی یادگرفتهشده را به هر توکن اضافه میکنیم که نشان میدهد به جملهی A تعلق دارد یا جملهی B.
ما جانمایی ورودی را به عنوان E، بردار پنهان نهایی توکن ویژهی [CLS] را به عنوان C و بردار پنهان نهایی توکن ورودی iام را با Ti نشان میدهیم. بردار C برای تشخیص جملهی بعدی (NSP) استفاده میشود.
تسک را میتوان با استفاده از مثال بعدی بهتر درک کرد:
اگر میخواهید BERT را برای این تسک استفاده کنید، میتوانید به مستندات Hugging Face برای آشنایی با نحوهی انجام این کار مراجعه کنید.
مدلهای زبانی خود-رگرسیون
در حالی که مدلهای رمزگذاری خودکار مانند BERT از یادگیری خود-نظارتی برای کارهایی مانند تشخیص جملهی بعدی استفاده میکنند، کاربرد دیگری از رویکردهای خود-نظارتی در حوزهی تولید متن نهفته است.
مدلهای خود-رگرسیون (Auto-Regressive) مانند GPT یا Generative Pre-Trained Transformer برای تسک مدلسازی زبان (Language Modeling) کلاسیک، پیشبینی کردن کلمهی بعدی با خواندن تمام کلمات قبلی، از قبل آموزش دیدهاند. چنین مدلهایی با قسمت رمزگشای مدلهای مبدل مطابقت دارند و از یک ماسک استفاده میشود به طوری که سرهای مکانیزم توجه (Attention Heads) فقط میتوانند آنچه را که قبلاً در متن آورده شده است را ببینند، و نه آنچه را که بعد از کلمهی فعلی ظاهر میشود.
بیایید با نگاهی به چارچوب آموزشی GPT به نحوهی عملکرد این مدلها نگاهی عمیقتر بیندازیم.
روند آموزش شامل دو مرحله است:
۱- پیش-آموزش بدون ناظر
مرحلهی اول یادگیری یک مدل زبانی با ظرفیت بالا با استفاده از مجموعهی بزرگی از دادههای متنی است.
با داشتن مجموعه متنهایی بدون برچسب از توکنها
U={u1, …, un}
ما از هدف استاندارد مدلسازی زبان، برای به حداکثر رساندن احتمال زیر استفاده میکنیم:
که در آن k اندازهی پنجرهی زمینه است و احتمال شرطی P با استفاده از یک شبکهی عصبی با پارامترهای Θ مدل شده است. این پارامترها با استفاده از الگوریتم کاهش گرادیان تصادفی آموزش داده میشوند.
مدلی که در اینجا آموزش داده میشود یک رمزگشای مبدل چند لایه برای مدل زبانی است که یک نوع از مدلهای مبدل (Transformer) است. این مدل، مکانیزم توجه به خود (self-attention) چندسره را بر روی توکنهای محتوای ورودی و به دنبال آن لایههای Feed-Forward برای تولید یک توزیع خروجی روی توکنهای هدف اعمال میکند:
که در آن
U = (u-k، …، u-1)
بردار محتوای توکنها، n تعداد لایهها، We ماتریس جاسازی توکن، و Wp ماتریس جاسازی موقعیت است. مکانیزم محدود توجه به خود که در آن هر توکن میتواند به محتوای سمت چپ خود توجه کند، رویکرد خود-نظارتی را به تصویر میکشد.
۲- بازتنظیم نظارتشده
در این مرحله، یک مجموعه داده برچسبدار C را فرض میکنیم، که در آن هر نمونه از یک دنباله از توکنهای ورودی، x1 تا xm، همراه با یک برچسب y تشکیل شده است. ورودیها از مدل از پیشآموزشدیدهی ما عبور داده میشوند تا مقدار فعالساز نهایی بلوک ترانسفورماتور، hml را بدست آوریم، که سپس به یک لایهی خروجی خطی با پارامترهای Wy برای پیشبینی y وارد میشود:
این کار تابع هدف زیر را برای بیشینه کردن در اختیار ما قرار میدهد:
گنجاندن مدلسازی زبان بهعنوان هدف کمکی برای بازتنظیم (fine-tuning) مدل، به بهبود تعمیم مدل نظارتشده و تسریع همگرایی، کمک میکند. به طور خاص، ما تابع هدف زیر را بهینه میکنیم (با وزن λ):
تنها پارامترهای اضافیای که در طول بازتنظیم نیاز داریم Wy و جانماییهایی برای توکنهای جداکننده هستند.
در تصویر بالا، در سمت چپ، معماری و اهداف آموزشی مدلهای مبدل و در سمت راست، تبدیلهای ورودی برای بازتنظیم تسکهای مختلف است. ما تمام ورودیهای ساختیافته را به دنبالههای توکن تبدیل میکنیم تا با مدل ازپیش آموزشدیدهمان پردازش شوند و به دنبال آن یک لایه خطی و یک لایهی softmax قرار میگیرد. برای تسکهای مختلف، پردازشهای متفاوتی مورد نیاز است، مثلا برای Textual Entailment، مقدمه (p)، متن مستلزم و فرضیه (h)، متن مستلزم و دنبالهی توکنها را با یک توکن جداکننده ($) در بین آنها، به هم متصل میکنیم.
بهبودهای زیادی نسبت به مدل اصلی GPT انجام شده است و برای درک اینکه چگونه میتوانید از آن برای موارد استفاده خود بهره ببرود، میتوانید به این صفحه مراجعه کنید.
کاربردهای یادگیری خود-نظارتی: مطالعهی موردی در صنعت
تا اینجا ما در مورد نحوهی آموزش مدلهای محبوب با استفاده از رویکردهای یادگیری خود-نظارتی صحبت کردهایم و اینکه چگونه میتوانید خودتان یکی از آنها را آموزش دهید یا از یکی از کتابخانههای موجود استفاده کنید.
حال بیایید نگاهی بیندازیم که صنعت چگونه از این تکنیکها برای حل مشکلات اساسی استفاده میکند.
۱- تشخیص گفتار نفرتآمیز در Facebook
یکی از دانشمندان هوش مصنوعی در Facebook:
«ما معتقدیم که یادگیری خود-نظارتی (SSL) یکی از امیدوارکنندهترین راهها برای ایجاد دانش پسزمینه و تقریب نوعی عقل سلیم در سیستمهای هوش مصنوعی است.»
Facebook نه تنها تکنیکهای یادگیری خود-نظارتی را در بسیاری از حوزهها از طریق تحقیقات علمی باز و بنیادی به پیش میبرد، بلکه از این کار پیشرو در تولید نیز استفاده میکند تا به سرعت دقت سیستمهای درک محتوا را در محصولات خود بهبود ببخشد و از امنیت افراد در پلتفرم خودش محافظت کند.
یکی از این نمونهها XLM، روش هوش مصنوعی Facebook برای آموزش سیستمهای زبانی در چندین زبان بدون تکیه بر مجموعهدادههای برچسبگذاریشدهی دستی برای بهبود تشخیص سخنان نفرتآمیز است.
این کاربرد یادگیری خود-نظارتی، مدلهای آنها را قویتر و پلتفرمهای آنها را بسیار ایمنتر کرده است. بیایید به طور خلاصه در مورد اینکه XLM چیست و چگونه توانست چنین تفاوتی ایجاد کند صحبت کنیم.
XLM
مدل
این یک معماری مبتنی بر مدلهای مبدل است که با استفاده از یکی از سه هدف مدلسازی زبان، از قبل آموزش داده شده است:
- مدلسازی زبانی ساده (Casual Language Modeling) یا CLM: برای مدلسازی احتمال کلمهای با توجه به کلمات قبلی که در یک جمله داده شده است، یعنی
P(wt |w1، . . .، wt−1، θ).
- مدلسازی زبانی ماسکشده (Masked Language Modeling) یا MLM: هدف مدلسازی زبانی ماسکشدهی BERT، پوشاندن توکنها به صورت تصادفی با استفاده از کلمهی کلیدی [MASK] و تلاش برای پیشبینی آنها است.
- مدلسازی زبانی ترجمه (Translation Language Modeling) یا TLM: توسعهای از MLMها، که در آن به جای در نظر گرفتن جریانهای متنی تکزبانه، جملات موازی همانطور که در تصویر زیر نشان داده شده است به هم متصل میشوند. کلمات در هر دو جمله مبدأ و هدف پوشانده شدهاند. برای پیشبینی کلمهای که در یک جملهی انگلیسی پوشانده شده است، مدل میتواند به کلمات انگلیسی اطراف یا ترجمهی فرانسوی آن توجه کند؛ این کار مدل را تشویق میکند تا بازنماییهای انگلیسی و فرانسوی را با یکدیگر تراز کند. همچنین در صورتی که مدل انگلیسی برای استنتاج کلمات انگلیسی ماسکشده کافی نباشد، میتواند از ساختار فرانسوی استفاده کند.
بنابراین، XLM یک مدل زبانی چندزبانه است که پیشآموزش آن را میتوان با CLM، MLM یا MLM که در ترکیب با TLM استفاده میشود، انجام داد. حالا بیایید نگاهی به مزایای XLM بیاندازیم.
تحلیل کارایی
۱- طبقهبندی چندزبانه
XLM یک مقداردهی اولیهی بهتر از رمزگذارهای جملات را برای طبقهبندی چندزبانه به صورت Zero-Shot (بدون نمونه) ارائه میدهد و توانست با به دست آوردن دقت ۷۱.۵٪ روی همان تسک از طریق روش MLM به بهترین عملکرد (state-of-the-art) دست پیدا کند. ترکیب MLM و TLM عملکرد را حتی بیش از ۷۵.۱٪ بهبود میبخشد.
۲- سیستمهای ترجمهی ماشینی
مشابه نکتهی اول، مقداردهی اولیه بهتری از سیستمهای ترجمهی ماشینی عصبی نظارتشده و بدون ناظر را فراهم میکند. پیشآموزش با هدف MLM پیشرفتهای قابلتوجهی را در مورد سیستمهای بدون ناظر نشان داد، در حالی که همین هدف منجر به بهترین عملکرد در سیستمهای نظارتشده با امتیاز BLEUی معادل ۳۸.۵ شد.
۳- مدلهای زبانی برای زبانهایی با منابع کم
برای زبانهای کممنبع، استفاده از دادهها در زبانهای مشابه اما با منابع بالاتر، اغلب مفید است؛ بهویژه زمانی که آنها بخش قابلتوجهی واژگان مشترک دارند. مشخص شد که XLM مدل زبانی نپالی (که زبانی کممنبع است) را با استفاده از اطلاعات زبان هندی (که زبان نسبتاً محبوب با منابع قابل توجهی است) بهبود میبخشد، چرا که رسمالخط هر دوی آنها Denvagari است.
۴- جانمایی کلمات چندزبانه به صورت بدون ناظر
XLM با دستیابی به نمرهی همبستگی Pearson در بهترین سطح، بین کلمات منبع و ترجمهی آنها، از کارهای قبلی در زمینه جاسازی کلمات چندزبانه بهتر عمل کرد.
با چنین پیشرفت هایی، XLM تفاوتی محسوس در پردازش زبان طبیعی ایجاد کرده است.
۱- مدلهای تحلیل تصاویر پزشکی Google
در حوزهی پزشکی، آموزش مدلهای یادگیری عمیق به دلیل محدود بودن دادههای برچسبگذاریشده و ماهیت زمانبر و گرانقیمت بودن تفسیر چنین دادههایی، همیشه کاری دشوار بوده است. برای مقابله با این مشکل، تیم تحقیقاتی Google یک روش جدید یادگیری مقایسهای چند نمونهای (Multi-Instance Contrasive Learning) یا MICLe را معرفی کرد که از چندین تصویر آسیبشناسی زمینهای مربوط به هر بیمار استفاده میکند تا جفتهای مثبت آموزندهتری برای یادگیری خود-نظارتی ایجاد کند.
چند نکته را باید در مورد رویکرد تصویرشده در نظر داشت:
- مرحله ۱ با استفاده از SimCLR، چارچوب دیگری که توسط Google برای یادگیری بازنمایی خود-نظارتی روی تصاویر طراحی شده است، انجام میشود. به زودی در مورد آن بحث خواهیم کرد.
- بر خلاف مرحله ۱، مراحل ۲ و ۳ مختص یک تسک و مجموعهدادهی خاص هستند.
پس بیایید قدم به قدم پیش ببریم.
قدم اول: چارچوب SimCLR
این مخفف عبارت A Simple Framework for Contrastive Learning of Visual Representations است و به طور قابل توجهی وضعیت هنر را در یادگیری خود-نظارتی و نیمه-نظارتشده ارتقا میدهد و به رکورد جدیدی برای طبقهبندی تصاویر با مقدار محدودی از دادههای دارای برچسب کلاسی دست پیدا میکند.
- SimCLR ابتدا جانماییهای عمومی تصاویر را روی یک مجموعه دادهی بدون برچسب میآموزد، و سپس میتوان آن را با مقدار کمی از تصاویر برچسبگذاری شده بازتنظیم کرد تا به عملکرد خوبی برای یک تسک طبقهبندی معین (درست مانند کار تصویربرداری پزشکی) دست پیدا کند.
- جانماییهای عمومی با به حداکثر رساندن توافق بین نماهای تغییریافتهی متفاوت از یک تصویر و به حداقل رساندن توافق بین نماهای تبدیلشده از تصاویر مختلف، با روشی به نام یادگیری مقایسهای (contrastive learning)، فراگرفته میشوند. بهروزرسانی پارامترهای یک شبکهی عصبی با استفاده از این هدف مقایسهای باعث میشود جانماییهای نماهای متناظر، یکدیگر را «جذب» کنند، در حالی که جانماییهای نماهای غیر متناظر یکدیگر را «دفع» میکنند.
- برای شروع، SimCLR به طور تصادفی نمونههایی را از مجموعه دادهی اصلی ترسیم میکند و هر نمونه را دو بار با استفاده از ترکیبی از روشهای سادهی افزایش داده (augmentation)، تغییر میدهد و دو مجموعه از نمایهای متناظر را ایجاد میکند.
- سپس جانمایی تصویر را با استفاده از CNN بر اساس معماری ResNet محاسبه میکند.
- در نهایت، SimCLR یک طرح غیرخطی از جانمایی تصویر را با استفاده از یک شبکهی کاملاً متصل (Fully Connected) مثل MLP محاسبه میکند، که ویژگیهای ثابت را تقویت میکند و توانایی شبکه را برای شناسایی تبدیلهای مختلف یک تصویر به حداکثر میرساند.
مدل آموزشدیده نه تنها در شناسایی دگرگونیهای مختلف یک تصویر خوب عمل میکند، بلکه بازنمایی مفاهیم مشابه را نیز میآموزد (مثلاً صندلی در مقابل سگ)، که بعداً میتواند از طریق بازتنظیم با برچسبها مرتبط شود.
قدم دوم: MICLe
پس از تکمیل پیشآموزش اولیه با SimCLR بر روی تصاویر طبیعی بدون برچسب، مدل آموزش داده میشود تا ویژگیهای ویژهی مجموعه دادههای تصاویر پزشکی را فرا بگیرد. این کار را نیز میتوان با SimCLR انجام داد، اما این روش جفتهای مثبت را فقط از طریق روشهای افزایش داده میسازد و از ابردادههای بیماران برای ساخت جفت مثبت استفاده نمیکند. از این رو MICLe در اینجا استفاده میشود.
- با توجه به تصاویر متعدد از یک مورد بیمار، MICLe یک جفت مثبت را برای یادگیری مقایسهای خود-نظارتی با ترسیم دو برش از دو تصویر مجزا از یک مورد بیمار ایجاد میکند. چنین تصاویری ممکن است از زوایای دید متفاوت گرفته شوند و قسمتهای مختلفی از بدن را با آسیبشناسی زمینهای یکسان نشان دهند.
- این یک فرصت عالی را برای الگوریتم های یادگیری خود-نظارتی ارائه میکند تا جانماییهایی را بیاموزند که در برابر تغییر زاویهی دید، شرایط تصویربرداری و سایر عوامل مخدوشکننده، قوی هستند.
قدم سوم: بازتنظیم/Fine-Tuning
- این مدل در طول بازتنظیم، با استفاده از وزنهای شبکهی ازپیش آموزشدیده بهعنوان مقداردهی اولیه برای مجموعهدادهی تسک نظارتشدهی پاییندستی، آموزش داده میشود.
- برای تقویت دادهها در حین بازتنظیم، افزایش تصادفی رنگ، برش با تغییر اندازه، محو کردن، چرخش و آینه کردن برای تصاویر در هر دو تسک (درماتولوژی و اشعه X قفسه سینه) انجام شده است.
- برای هر ترکیبی از استراتژیهای پیشآموزش و بازتنظیم تسک پاییندستی، یک جستجوی گسترده برای انتخاب هایپرپارامترها انجام شده است.
تحلیل عملکرد
۱- یادگیری خود-نظارتی از تصاویر پزشکی در حوزههای خاص بدون برچسب استفاده میکند و به طور قابل توجهی از مدلهای ازپیش آموزشدادهشده و نظارتشدهی ImageNet، بهتر عمل میکند.
۲- مدلهای ازپیش آموزشدیدهی خود-نظارتی میتوانند با پیشآموزش MICLe تعمیم بهتری نسبت به تغییرات توزیع دهند که بیشترین سود را به همراه دارد. این یک یافته ارزشمند است، زیرا تعمیم تحت تغییر توزیع برای کاربردهای بالینی از اهمیت بالایی برخوردار است.
۳- پیشآموزش با استفاده از مدلهای خود-نظارتی میتواند کارایی برچسب کم را برای طبقهبندی تصاویر پزشکی جبران کند، و همواره در مقابل بخشهای برچسبخوردهی نمونهبرداری شده، مدلهای خود-نظارتی از مدلهای پایهی نظارتشده بهتر عمل میکنند. در واقع، MICLe قادر است به عملکردی مشابه مدل پایه با استفاده از تنها ۲۰ درصد از دادههای آموزشی برای ResNet-50 (4x) و ۳۰ درصد از داده های آموزشی برای ResNet152 (2x) برسد.
چالشهای یادگیری خود-نظارتی
تاکنون در مورد اینکه چگونه یادگیری خود-نظارتی تقریباً در همهی حوزههای یادگیری ماشین پیشرفت میکند، صحبت کردهایم، اما این روش اشکالاتی نیز دارد. یادگیری خود-نظارتی در تلاش برای دستیابی به رویکرد “یک روش همهی مسائل را حل میکند” است اما با تحقق این رویکرد، فاصله زیادی دارد. برخی از چالشهای کلیدی در فضای SSL عبارتند از:
- دقت: اگرچه پیشفرض تکنیک SSL استفاده نکردن از دادههای برچسبگذاریشده است، اما نقطه ضعف این رویکرد این است که شما یا به مقادیر بسیار زیادی داده برای تولید برچسبهای کاذب دقیق نیاز دارید یا در مورد دقت مخاطره میکنید. توجه به این نکته مهم است که برچسبهای نادرست تولید شده در حین آموزش در مراحل اولیه نتیجهی معکوس خواهند داشت.
- کارایی محاسباتی: به دلیل مراحل متعدد آموزش (۱. تولید برچسبهای کاذب 2. آموزش بر روی برچسبهای کاذب) زمان صرف شده برای آموزش یک مدل در مقایسه با یادگیری نظارتشده زیاد است. همچنین، رویکردهای فعلی SSL به حجم عظیمی از دادهها برای دستیابی به دقت نزدیک به همتایانشان در یادگیری نظارتشده احتیاج دارند.
- تسک مستمسک: انتخاب تسک مستمسک مناسب برای استفادهی شما بسیار مهم است. به عنوان مثال، اگر یک خود-رمزگذار را به عنوان تسک مستمسک خود انتخاب کنید که در آن تصویر فشردهشده و سپس بازسازی میشود، این تسک سعی میکند تا نویز تصویر اصلی را هم تقلید کند و اگر تسک شما تولید تصاویر با کیفیت بالا باشد، این تسک ضرر بیشتری به شما میرساند تا نفع.
بیشتر بخوانید:
- یادگیری نظارتشده یا Supervised Learning چیست؟
- یادگیری بدون ناظر (بدون سرپرست) یا Unsupervised Learning چیست؟
منبع:
https://neptune.ai/blog/self-supervised-learning
دیدگاهتان را بنویسید