One-Shot Learning
يتعرف التعلم من مثال واحد على فئة جديدة انطلاقًا من مثال واحد موسوم، عادةً بمقارنة التضمينات. يتناول الشبكات السيامية والاستخدامات والشيفرة.
التعلّم من مثال واحد هو مهمة التعرّف على فئة جديدة من مثال واحد موسوم. يحتاج نموذج تصنيف الصور التقليدي إلى مئات الصور الموسومة لكل فئة وإلى إعادة التدريب عند إضافة أي فئة، بينما يستطيع الشخص عادةً التعرّف على وجه جديد أو منتج جديد بعد رؤيته مرة واحدة. تقترب الأنظمة التي تتعلم من مثال واحد من هذه القدرة بإعادة استخدام المعرفة المستمدة من فئات كثيرة سبق تعلّمها: إذ تربط الشبكة المدرّبة على تلك الفئات الصورَ بـتضمينات تتقارب فيها الصور للأشياء نفسها، ولذلك يكفي مثال واحد لتحديد موضع فئة جديدة. ويُستخدم هذا الأسلوب في التحقق من الوجوه وفحص التواقيع والتعرّف على المنتجات، كما تمنح المطالبة بمثال واحد في النماذج اللغوية الكبيرة (LLMs) النموذجَ مثالًا واحدًا محلولًا لمهمة ما ضمن المطالبة.
آلية التعلّم من مثال واحد#
تستبدل معظم الأنظمة التي تتعلم من مثال واحد التصنيفَ بالمقارنة. تجري الشبكة العصبية استخراج السمات من المثال المخزّن ومن كل استعلام جديد، وتحدد مسافة بين التضمينين، مثل المسافة الإقليدية أو التشابه الجيبي، ما إذا كانا متطابقين. وتضفي الشبكة العصبية السيامية صيغةً رسمية على ذلك باستخدام فرعين يشتركان في الأوزان نفسها. استخدم Jane Bromley وYann LeCun وزملاؤهما شبكةً كهذه للتحقق من التواقيع في عام 1993، ودرّب Gregory Koch وزملاؤه شبكةً مماثلة في عام 2015 لتصنيف الأحرف المكتوبة بخط اليد من أبجديات جديدة بعد رؤية مثال واحد لكل حرف:
يُدرَّب نموذج التضمين مسبقًا على فئات أخرى كثيرة باستخدام خسائر تباينية أو ثلاثية، فتقرّب صور الفئة نفسها وتُباعد بين صور الفئات المختلفة، وبذلك تعمم المسافة المتعلّمة على الفئات التي لا تظهر إلا لاحقًا. وتُدرّب أساليب التعلّم التلوي، مثل شبكات المطابقة، على آلاف المهام المحاكاة للتعلّم من مثال واحد، وتضم كل مهمة مثالًا واحدًا لفئات عدة، لكي يتدرب النموذج على المشكلة نفسها التي سيواجهها.
التصنيف من مثال واحد باستخدام التضمينات#
تعيد نماذج التصنيف من Ultralytics YOLO26 تضمينات الصور عبر embed()، الذي يجمع خرج الطبقة السابقة لرأس التصنيف في متجه واحد لكل صورة. ينشئ هذا المثال مصنّفًا من مثال واحد لعشر فئات باستخدام CIFAR-10 انطلاقًا من تلك التضمينات: صورة مخزّنة واحدة لكل فئة هي البيانات الموسومة الوحيدة، ويحصل كل استعلام على تسمية الصورة المخزّنة الأكثر تشابهًا معه:
from pathlib import Path
import torch
import torch.nn.functional as F
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO
# CIFAR-10 test images, one folder per class
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
images = [sorted(folder.glob("*.png")) for folder in sorted(Path("data/cifar10/test").iterdir()) if folder.is_dir()]
model = YOLO("yolo26n-cls.pt")
# Support set: the first image of each class is its only labeled example (one shot)
shots = torch.stack([model.embed(paths[0], verbose=False)[0] for paths in images])
# Query set: the next 50 images of each class, each labeled with the class of its most similar shot
correct = 0
for label, paths in enumerate(images):
for path in paths[1:51]:
query = model.embed(path, verbose=False)[0]
correct += F.cosine_similarity(shots, query.unsqueeze(0)).argmax().item() == label
print(f"10-way 1-shot accuracy: {correct / 500:.1%} (random guessing: 10%)")لا يتدرب النموذج مطلقًا على CIFAR-10، لذا تقيس الدقة المطبوعة مدى نجاح مثال واحد لكل فئة في تعريف تلك الفئة ضمن فضاء التضمين في YOLO26، وستتطلب إضافة فئة حادية عشرة تضمينًا مخزّنًا إضافيًا.
التطبيقات#
- التحقق من الوجوه: تقارن البوابات الحدودية الآلية صورةً حية من الكاميرا بالصورة الوحيدة المخزنة على شريحة جواز السفر، كما تطابق الهواتف وأنظمة التحكم في الوصول كل محاولة مع الوجه المسجّل عند التسجيل.
- التعرّف على منتجات التجزئة: تضيف المتاجر منتجات جديدة باستمرار، وتتيح صورة واحدة من الكتالوج لكل منتج للنظام التعرّف عليه على الرف دون إعادة التدريب.
- التعلّم بالمحاكاة من مثال واحد: يدرّب الروبوتات على تنفيذ حالة جديدة من مهمة ما، مثل تكديس المكعبات بترتيب جديد، بعد مشاهدة عرض واحد.
التحديات#
لا يوضّح المثال الواحد مدى تنوع الفئة، لذا فإن صورة مرجعية ملتقطة في إضاءة ضعيفة أو من زاوية غير مألوفة أو مع حجب جزء من الجسم توفر نقطة ارتكاز ضعيفة لكل مقارنة لاحقة. وتحدد عتبة المطابقة التوازن بين القبول الخاطئ والرفض الخاطئ، ويجب ضبطها على أزواج التحقق لكل تطبيق؛ كما أن التضمين المدرّب على مجال واحد، مثل الصور اليومية، يفصل بين الفئات بدرجة أقل في مجال آخر، مثل الصور الطبية.
التعلّم من مثال واحد مقارنةً بالمصطلحات ذات الصلة#
- التعلّم من أمثلة قليلة: المشكلة العامة للتعلّم من بضعة أمثلة موسومة لكل فئة. والتعلّم من مثال واحد هو الحالة التي يكون فيها عدد الأمثلة واحدًا بالضبط، ويُكتب 1-shot ضمن ترميز N-way K-shot.
- التعلّم دون أمثلة: يتعرّف على الفئات دون أي أمثلة، اعتمادًا على وصف نصي أو وصف للسمات.
- التعلّم بالنقل: يعيد استخدام نموذج مدرّب مسبقًا لمهمة جديدة، عادةً عبر الضبط الدقيق على أمثلة موسومة كثيرة. وتعتمد الأنظمة التي تتعلم من مثال واحد على السمات المنقولة أيضًا، لكنها تقارنها مباشرةً دون تحديث أي أوزان.
- كشف الحالات الشاذة: يتعلّم شكل الحالات الطبيعية ويرصد كل ما يبتعد عنها، مجيبًا عما إذا كان العنصر غير مألوف بدلًا من تحديد الفئة التي ينتمي إليها.










