فرا یادگیری (Meta-Learning)
🤔 متا یادگیری = یادگیریِ چگونه یاد گرفتن
متا یادگیری = تمرین روی کارهای متعدد با داده کم، تا یاد بگیریم برای کارهای جدید با داده کم چطور سریع یاد بگیریم.
نکته کلیدی: هدف متا یادگیری بهروزرسانی پارامترهای مدل نیست، بلکه بهروزرسانی فرایند یادگیری مدل است!
آیا درست فهمیدم؟
فرض که دیتا ست mnist داریم و می خواهیم این روش را بکار بندیم
task ها را اموزش شبکه ای روی جفت کلاسها می دانیم لذا چندین نمونه که کلاس 1 و 2 هستند تسک دوم مثلا کلاس 2 و 5 به تعداد 20 تا و … اینها می شوند دیتا ست ما که شبکه می آموزد
حالا کارکتر A, B را با support set این که در اختیار قرار می دهند مثلا 15 نمونه می دهیم به همان شبکه قبلی که تا بحال آموزش دیده روی Mnist و اموزش می بیند و حالا اماده ایم که query داده شود تا ببینیم چقدر توانا هستیم
🎯 چه زمانی از متا یادگیری استفاده کنم؟ ✅ وقتی که:
-
کارهای مشابه اما متفاوت زیاد دارید
-
برای هر کار داده کمی دارید
-
میخواهید روی کارهای جدید سریع سازگار شوید
🎯 چه زمانی از متا یادگیری استفاده نکنم؟ ❌ وقتی که:
-
فقط یک کار دارید
-
داده کافی دارید
-
نیاز به یادگیری یک چیز خاص دارید
فرا یادگیری را میتوان از چندین دیدگاه تعریف کرد. دو دیدگاه اصلی را بررسی میکنیم:
- الف) توزیع وظایف (Task Distribution)
- ب) بهینهسازی دو سطحی (Bilevel Optimization)
۱. چارچوب ریاضی
فرا یادگیری را میتوان به عنوان یک مسئله بهینهسازی روی توزیع وظایف ( \mathcal{T} ) تعریف کرد:
[ \min_{\omega} \mathbb{E}_{\mathcal{T} \sim p(\mathcal{T})} \mathcal{L}(D; \omega) ]
که در آن:
- ( \omega ) فرادانش (Meta-Knowledge) است.
- ( \mathcal{T} = {D, L} ) شامل یک مجموعهداده ( D ) و یک تابع هزینه ( L ) است.
۲. مراحل فرا یادگیری
در فرایند فرا یادگیری دو گام اصلی وجود دارد:
الف) فرا-یادگیری (Meta-Training)
در این مرحله، از مجموعهدادههای منبع (source) استفاده میشود:
[ D_{\text{source}} = {(D_{\text{source train}}, D_{\text{source val}})^{(i)}}_{i=1}^{S} ]
- ( D_{\text{source train}} ) مجموعه پشتیبان (Support Set)
- ( D_{\text{source val}} ) مجموعه پرسش (Query Set)
ب) فرا-آزمون (Meta-Testing)
در این مرحله، روی مجموعهدادههای هدف (target) ارزیابی انجام میشود:
[ D_{\text{target}} = {(D_{\text{target train}}, D_{\text{target test}})^{(i)}}_{i=1}^{G} ]
- ( D_{\text{target train}} ) مجموعه پشتیبان (Support Set)
- ( D_{\text{target test}} ) مجموعه پرسش (Query Set)
۳. تفاوت با روشهای کلاسیک یادگیری ماشین
برخلاف روشهای معمول یادگیری ماشین، در فرا یادگیری هر مجموعهداده نیاز به طراحی دقیق دارد و ساختار وظایف (tasks) به گونهای تنظیم میشود که شبیه به سناریوی تست نهایی باشد.
۴. مفهوم k-way n-shot
در تنظیم فرا یادگیری، k-way n-shot به معنای استفاده از ( k ) کلاس مختلف و ( n ) نمونه از هر کلاس در مجموعه پشتیبان (support set) مرحله فرا-آزمون است.
۵. نمودار مفهومی فرا یادگیری