Meta Learning
يدرّب التعلم التلوي نموذجًا عبر مهام عديدة ليتمكن من التكيف مع مهمة جديدة باستخدام أمثلة قليلة. تعرّف على آلية عمل الحلقات وMAML والشبكات النموذجية.
التعلّم التلوي، الذي يُسمى غالبًا «التعلّم من أجل التعلّم»، هو نهج في التعلّم الآلي (ML) يدرّب نموذجًا على عدد كبير من المهام المترابطة كي يتمكن من التكيف بسرعة مع مهمة جديدة، عادةً باستخدام عدد قليل من الأمثلة الموسومة. فبينما يلائم التعلّم الخاضع للإشراف مجموعة بيانات واحدة، يحسّن التعلّم التلوي عملية التعلّم نفسها: الأوزان الابتدائية، أو فضاء التضمين المستخدم لمقارنة الأمثلة، أو شبكة تتعلم من الأمثلة في تمريرة أمامية واحدة. ويتمثل تطبيقه الرئيسي في التعلّم من أمثلة قليلة، أي التعرّف على فئات جديدة من مثال واحد إلى بضعة أمثلة لكل فئة، إضافة إلى الروبوتات والوكلاء الآخرين الذين يتعين عليهم التكيف مع الظروف الجديدة فورًا.
آلية عمل التعلّم التلوي#
يدرّب التعلّم التلوي النموذج ضمن حلقات تحاكي الوضع الذي سيواجهه النموذج وقت الاختبار. تأخذ كل حلقة عينة من مهمة، مثل مسألة تصنيف من 5 فئات ومثال واحد لكل فئة، تتكون من خمس فئات وصورة موسومة واحدة لكل منها. وتشكل الأمثلة الموسومة مجموعة الدعم، بينما تشكل الأمثلة المحجوبة من الفئات نفسها مجموعة الاستعلام. وفي حلقة داخلية، يتكيف النموذج مع مجموعة الدعم؛ وفي حلقة خارجية، تُحدّث المعلمات الفوقية وفقًا لمدى جودة أداء النموذج المتكيف على مجموعة الاستعلام، وبذلك يُكافأ النموذج على حسن التكيف بدلًا من حفظ أي مهمة بعينها. ولا تظهر الفئات المستخدمة في الاختبار التلوي مطلقًا أثناء التدريب التلوي.
الأساليب الرئيسية#
- القائم على التحسين: يتعلم التعلّم التلوي غير المعتمد على النموذج (MAML) تهيئةً تحقق أداءً جيدًا عند تطبيق خطوة أو بضع خطوات من الانحدار المتدرج على مجموعة دعم مهمة جديدة. وتشتق الحلقة الخارجية عبر التحديث الداخلي، ما يتطلب تدرجات من الرتبة الثانية؛ أما المتغيرات من الرتبة الأولى، مثل Reptile من OpenAI، فتتجنب هذه الكلفة بتحريك التهيئة نحو الأوزان التي تكيفت مع كل مهمة.
- القائم على المقاييس: تتعلم هذه الأساليب فضاء تضمين يمكن فيه تصنيف الأمثلة حسب المسافة. وتحسب الشبكات النموذجية متوسط تضمينات الدعم لكل فئة لإنشاء نموذج أولي، ثم تسند كل استعلام إلى أقرب نموذج أولي، لذا لا يتطلب إضافة فئة أثناء الاختبار أي تدريب.
- القائم على النموذج: تقرأ شبكة مثل الشبكة العصبية المتكررة (RNN) ذات الذاكرة الخارجية مجموعة الدعم وتتنبأ مباشرةً بتسميات الاستعلامات، متعلمةً إجراء التكيف ضمن تنشيطاتها. وقد وصفت ورقة GPT-3 التعلّم ضمن السياق في النماذج اللغوية الكبيرة (LLMs)، أي حل مهمة بالاستناد إلى أمثلة ضمن المطالبة، بأنه الحلقة الداخلية لهذا النوع من التعلّم التلوي، وبأن التدريب المسبق هو الحلقة الخارجية.
يطلب معيار الانحدار الخاص بـ MAML من شبكة صغيرة ملاءمة موجات جيبية ذات سعة وطور عشوائيين باستخدام 10 نقاط لكل منها. ويُدرّب مثال PyTorch التالي التهيئة تلوّيًا باستخدام الحلقتين، ثم يختبر خطوة تكيف واحدة على موجات جيبية جديدة:
import torch
import torch.nn.functional as F
from torch import nn
from torch.func import functional_call
torch.manual_seed(0)
net = nn.Sequential(nn.Linear(1, 40), nn.ReLU(), nn.Linear(40, 40), nn.ReLU(), nn.Linear(40, 1))
meta_optimizer = torch.optim.Adam(net.parameters(), lr=0.001)
def sine_task_losses():
"""Sample a sine-wave task, adapt on 10 points with one gradient step, and return query losses before and after."""
amplitude, phase = torch.empty(1).uniform_(0.1, 5), torch.empty(1).uniform_(0, 3.14)
x = torch.empty(20, 1).uniform_(-5, 5)
y = amplitude * torch.sin(x + phase)
params = dict(net.named_parameters())
support_loss = F.mse_loss(functional_call(net, params, x[:10]), y[:10])
grads = torch.autograd.grad(support_loss, list(params.values()), create_graph=True) # inner loop
adapted = {name: p - 0.01 * g for (name, p), g in zip(params.items(), grads)}
before = F.mse_loss(functional_call(net, params, x[10:]), y[10:])
after = F.mse_loss(functional_call(net, adapted, x[10:]), y[10:])
return before, after
# Outer loop: update the shared initialization so that one inner step fits each new task
for step in range(10000):
meta_loss = sum(sine_task_losses()[1] for _ in range(4))
meta_optimizer.zero_grad()
meta_loss.backward()
meta_optimizer.step()
# On 500 unseen sine waves, compare query error before and after the one-step adaptation
losses = torch.tensor([[loss.item() for loss in sine_task_losses()] for _ in range(500)])
print(f"query MSE before adaptation: {losses[:, 0].mean():.2f}, after one step: {losses[:, 1].mean():.2f}")يطبع query MSE before adaptation: 3.10, after one step: 0.70. لا تلائم التهيئة المتعلّمة تلويًا أي موجة جيبية بعينها، ومع ذلك تخفض خطوة تدرج واحدة باستخدام 10 نقاط الخطأ على النقاط الجديدة من موجة غير مرئية إلى أقل من ربع قيمته.
التعلّم التلوي والمصطلحات ذات الصلة#
- التعلّم بالنقل: يعيد استخدام أوزان دُرّبت على مهمة كبيرة واحدة كنقطة بداية لمهمة أخرى، من دون تحسينها لتكون قابلة للتكيف. ويُعد الضبط الدقيق لكاشف Ultralytics YOLO26 المدرّب مسبقًا على COCO باستخدام مجموعة بيانات مخصصة تعلّمًا بالنقل: فأوزانه الابتدائية ناتجة عن تدريب اعتيادي على COCO، ويتطلب تكييفها مجموعة بيانات موسومة وحقب تدريب كثيرة، لا بضعة أمثلة وبضع خطوات تدرج.
- التعلّم من أمثلة قليلة: مسألة التعلّم باستخدام عدد قليل جدًا من الأمثلة. والتعلّم التلوي إحدى عائلات الحلول؛ أما التضمينات المدرّبة مسبقًا مع مصنف بسيط فهي حل آخر.
- التعلّم الآلي المؤتمت (AutoML): يبحث عن البنى والمعلمات الفائقة، عادةً لمجموعة بيانات واحدة في كل مرة. وتعد بعض الدراسات الاستقصائية تعلّم المعلمات الفائقة عبر المهام نوعًا من التعلّم التلوي.
- التعلّم المستمر: يتعلم سلسلة من المهام دون نسيان المهام السابقة، بينما يهيئ التعلّم التلوي نموذجًا لتعلّم المهام الجديدة بسرعة.
المعايير والنتائج#
دفعت معايير الصور للتعلّم من أمثلة قليلة معظم أبحاث التعلّم الفوقي: تضم Omniglot عدد 1,623 حرفًا مكتوبًا بخط اليد من 50 أبجدية، وتستخدم miniImageNet مئة فئة من ImageNet تضم كل منها 600 صورة، مقسّمة إلى فئات منفصلة للتدريب الفوقي والتحقق والاختبار. وشككت دراستان لاحقتان في مدى إسهام التعلّم الفوقي نفسه. أظهرت دراسة «التعلّم السريع أم إعادة استخدام الميزات؟» أن نجاح MAML يعود أساسًا إلى إعادة استخدام الميزات المتعلّمة في الحلقة الخارجية، وأن نسخة ANIL المبسطة، التي تكيّف الطبقة الأخيرة فقط في الحلقة الداخلية، تضاهي MAML. ثم وجدت دراسة «إعادة التفكير في تصنيف الصور من أمثلة قليلة» أن مصنفًا خطيًا على تضمين جيد، متعلّمًا بتدريب خاضع للإشراف عادي أو ذاتي الإشراف على فئات التدريب الفوقي، تفوق على أبرز أساليب التعلّم الفوقي من أمثلة قليلة في ذلك الوقت.










