الرؤية الحاسوبية2020متوسط9 دقيقة قراءة

إطار بسيط للتعلم التبايُني للتمثيلات البصرية

A Simple Framework for Contrastive Learning of Visual Representations

Chen, T. · Kornblith, S. · Norouzi, M. · Hinton, G. — ICML

المشكلة

التعلم الخاضع للإشراف يتطلّب ملايين الصور الموسومة، وجمعها عملية بطيئة ومكلفة. أساليب كانت موجودة لكنها متأخرة بفارق كبير عن الأداء الإشرافي على ImageNet. الأساليب التبايُنية السابقة احتاجت بنى متخصصة أو بنوك ذاكرة أو مُرمِّزات زخمية، فصارت معقّدة في التنفيذ والضبط. الميدان كان بحاجة إلى وصفة بسيطة قابلة للتوسعة تردم هذه الفجوة.

الإسهام

SimCLR: إطار بسيط بشكل لافت — بلا بنك ذاكرة ولا مُرمِّز زخمي. كل ما يحتاجه عمود فقري ResNet، ورأس إسقاط MLP بطبقتين، وتعزيز بيانات مكثّف (قصّ عشوائي + اهتزاز ألوان + ضبابية غاوسية)، التبايُنية مع دُفعات كبيرة، ومُحسِّن LARS. الاكتشاف المحوري كان : شبكة MLP لاخطية بين ودالة الخسارة حسّنت جودة التمثيلات بشكل ملموس. بنموذج ResNet-50 (4×)‏ حقّق SimCLR تكافؤاً مع ResNet-50 الإشرافي على تقييم ImageNet الخطي (76.5%) — وهي المرة الأولى التي يبلغ فيها أسلوب ذاتي الإشراف هذا المستوى.

الأثر

أثبت SimCLR أن قادر على منافسة المسبق الإشرافي ببساطة وفعالية. أطلق موجة من أساليب التعلم ذاتي الإشراف — BYOL استغنى عن العيّنات السلبية، وSwAV استبدلها بالتجميع العنقودي، وBarlow Twins فكّك الارتباط بين السمات، وCLIP نقل الفكرة إلى أزواج اللغة والصورة. اليوم يُشكّل التدريب المسبق التبايُني ركيزة النماذج التأسيسية في الرؤية واللغة والذكاء الاصطناعي متعدد الوسائط.

تخيّل كابينة تصوير جوازات مطلوب منها التعرّف عليك سواء لبست نظارات شمسية، أو غيّرت لون شعرك، أو وقفت تحت إضاءة مختلفة. كيف تفعل ذلك؟ تأخذ صورتين لك بفارق ثوانٍ، كل منهما بتشويهات عشوائية مختلفة، ثم تتعلّم ما يبقى ثابتاً بين الصورتين.

SimCLR يفعل الشيء نفسه مع أي صورة: يُنتج مشهدين مُشوَّهين عشوائياً من الصورة ذاتها، ثم يُدرِّب المُرمِّز على تقريب من بعضهما وإبعاد تمثيلات بقية الصور. لا حاجة لتسميات — الصورة نفسها هي المُعلِّم.

المشكلة: التسميات مُكلفة، لكن السمات موجودة مجاناً

بحلول عام 2020 كان يسيطر على : درِّب شبكة ResNet على 1.28 مليون صورة موسومة يدوياً في ImageNet، ثم أجرِ على مهمتك المستهدفة. لكن عملية التوسيم بطيئة ومكلفة — الصور الطبية وبيانات الأقمار الاصطناعية والأنواع النادرة لا تحتمل ملايين التوصيفات من خبراء مختصين.

التعلم ذاتي الإشراف يفتح باباً للخروج من هذه المعضلة: تعلّم التمثيلات البصرية من الصور نفسها دون الحاجة إلى تسميات. المقاربات التبايُنية — أي التعلم بالمقارنة — أظهرت بوادر واعدة عبر CPC وMoCo، لكنها احتاجت بنوك ذاكرة أو مُرمِّزات زخمية أو بنى متخصصة، وظلّت الفجوة مع الدقة الإشرافية واسعة.

افتح في المختبر
التعلم الإشرافي يحتاج أزواجاً موسومة (صورة + تصنيف). أمّا SimCLR فيولّد إشارته التدريبية من المشاهد المُعزَّزة — بلا أي تسميات.
تستيقظ التجربة عند وصولك…

الوصفة: أربعة مكوّنات، صفر تعقيد

يختزل SimCLR التعلم التبايُني في أربعة مكوّنات، كلّ منها بسيط بشكل مدهش:

1. — خذ صورة واحدة وطبّق عليها تحويلين عشوائيين (قصّ، اهتزاز ألوان، ضبابية) فتحصل على زوج إيجابي. كل صورة مُعزَّزة أخرى في الدُّفعة تُعامَل كـعيّنة سلبية.

2. المُرمِّز — شبكة ResNet قياسية تستخلص من كل مشهد مُعزَّز. لا شيء خاص — بنية جاهزة دون أي تعديل.

3. رأس الإسقاط صغير بطبقتين يُسقط سمات المُرمِّز على فضاء أخفض بُعداً تُحسَب فيه الخسارة التبايُنية. هذا كان اكتشافاً جوهرياً: الخسارة تعمل على السمات المُسقَطة، لكن تستخدم سمات المُرمِّز قبل الإسقاط — أي أن رأس الإسقاط يعمل كدرع واقٍ يحمي التمثيلات الغنية من التشوّه الذي تفرضه الخسارة.

4. الخسارة التبايُنية (NT-Xent) — لكل زوج إيجابي، عظّم بينهما وقلّل التشابه مع كل العيّنات السلبية. يتحكّم في حدّة تمييز النموذج بين الإيجابيات والسلبيات.

افتح في المختبر
تجوّل في المكوّنات الأربعة لـ SimCLR. انقر على كل مرحلة لترى كيف تسير صورة واحدة عبر الإطار.
تستيقظ التجربة عند وصولك…

تعزيز البيانات: المكوّن السرّي

أكثر نتائج SimCLR إثارة للدهشة أن تركيب التعزيزات أهمّ من أي تقنية بمفردها. اختبرت الورقة القصّ وتشويه الألوان والتدوير والقطع و ومرشّح سوبل — كلاً على حدة ثم في أزواج.

الفائز: القصّ العشوائي + القوي. لماذا هذا الزوج تحديداً؟ القصّ وحده يُنتج مشاهد تتشابه في توزيعات الألوان، فيستطيع النموذج «الغشّ» بمطابقة الإحصائيات اللونية بدلاً من تعلّم السمات الدلالية. إضافة تشويه لوني قوي تُجبر النموذج على تجاوز اللون والتركيز على الشكل والملمس وبنية الكائن في الصورة.

الضبابية الغاوسية تُضيف طبقة ثالثة من المتانة، إذ تمنع النموذج من الاعتماد على تفاصيل الملمس الدقيقة. مجتمعةً، تُجبر هذه التحويلات الثلاثة المُرمِّز على التقاط المحتوى الدلالي عالي المستوى — وهو تحديداً ما يجعل التمثيلات مفيدة في المهام اللاحقة.

افتح في المختبر
بدّل بين تركيبات التعزيز المختلفة. لاحظ كيف يُزيل الجمع بين القصّ واهتزاز الألوان «الاختصار اللوني».
تستيقظ التجربة عند وصولك…

رأس الإسقاط: احمِ ما يهمّ

الاكتشاف المحوري الثاني في SimCLR: وجود رأس إسقاط لاخطي بين المُرمِّز والخسارة التبايُنية يُحدث فارقاً كبيراً. بدونه تنخفض الدقة بأكثر من 10%.

تخيّله كـمنطقة عازلة تضحوية: الخسارة التبايُنية مضطرة للتخلّص من معلومات لا تخصّ تمييز الصور عن بعضها (مثل درجة حرارة اللون أو موضع القصّ). لو عملت الخسارة مباشرة على تمثيلات المُرمِّز لانتزعت هذه المعلومات من السمات ذاتها. رأس الإسقاط يمتصّ هذا التدمير — يتعلّم التخلّص من تفاصيل التعزيز بينما تظلّ تمثيلات المُرمِّز غنية وشاملة.

أظهرت الورقة أن التمثيلات قبل رأس الإسقاط (مخرج المُرمِّز hh) تتفوّق على التمثيلات بعده (السمات المُسقَطة zz) في المهام اللاحقة. الخلاصة: درِّب مع رأس الإسقاط، وقيِّم بدونه.

افتح في المختبر
قارن أداء المهام اللاحقة مع رأس الإسقاط وبدونه. لاحظ كيف تتفوّق سمات المُرمِّز (h) على السمات المُسقَطة (z).
تستيقظ التجربة عند وصولك…

خسارة NT-Xent: محرّك التعلم التبايُني

الخسارة التبايُنية — واسمها NT-Xent اختصاراً لـ Normalized Temperature-scaled Cross-Entropy — هي التي تُعلّم الشبكة تقريب وإبعاد .

من دُفعة تضمّ NN صورة، يُنتج SimCLR 2N2N مشهداً مُعزَّزاً (مشهدان لكل صورة). لكل زوج إيجابي (i,j)(i, j) تتحوّل الخسارة إلى مسألة تصنيف من (2N1)(2N-1) فئة: «بين كل $2N - 1$ مشهداً آخر، أيّها جاء من صورتي الأصلية؟» الإجابة هي الشريك الإيجابي، والخسارة هي لهذا التصنيف.

معامل الحرارة τ\tau يتحكّم في حدّة التمييز. قيمة منخفضة تجعل النموذج يركّز على أصعب السلبيات — تلك التي تكاد تُشبه الإيجابي. قيمة مرتفعة تجعله يُعامل السلبيات بتساوٍ أكبر. وجد SimCLR أن τ=0.5\tau = 0.5 تعمل جيداً، لكن القيمة المثلى تعتمد على حجم الدُّفعة.

i,j=logexp(sim(zi,zj)/τ)k=12N1[ki]exp(sim(zi,zk)/τ)\ell_{i,j} = -\log \frac{\exp(\text{sim}(z_i, z_j) / \tau)}{\sum_{k=1}^{2N} \mathbf{1}_{[k \neq i]} \exp(\text{sim}(z_i, z_k) / \tau)}
خسارة NT-Xent لزوج إيجابي (i, j)تدفع هذه الخسارة المشاهد المُعزَّزة للعيّنة نفسها نحو تمثيلات متقاربة، وفي الوقت ذاته تُبعدها عن تمثيلات بقية العيّنات في الدُّفعة. معامل الحرارة يُحدّد مدى حدّة التركيز على فروق التشابه. بتقليل هذه الخسارة يصبح الزوج الإيجابي بارزاً وواضحاً مقارنةً بالأزواج السلبية المنافسة.

تخيّل الأمر كغرفة مزدحمة: شريكك الإيجابي يلبس سواراً مطابقاً لسوارك. الخسارة تسألك: «هل تستطيع إيجاد شريكك وسط كل هؤلاء؟» معامل الحرارة يتحكّم في مدى صعوبة المهمة — حرارة منخفضة تعني أنك تحتاج دقة عالية في تحديد من يُطابقك.

افتح في المختبر
اضبط الحرارة وحجم الدُّفعة لترى تأثيرهما على سلوك الخسارة. الحرارة المنخفضة تزيد التركيز على أصعب السلبيات.
تستيقظ التجربة عند وصولك…

دُفعات أكبر، سلبيات أكثر، تمثيلات أفضل

على خلاف التعلم الإشرافي حيث مجرد مفاضلة حوسبية، في التعلم التبايُني يُحدّد حجم الدُّفعة مباشرةً عدد العيّنات السلبية المتاحة. دُفعة من N=256N = 256 صورة تُوفّر لكل زوج إيجابي 510510 عيّنة سلبية للمقارنة معها. دُفعة من N=8192N = 8192 تُوفّر 1638216382 سلبية — إشارة تعلّم أصعب بكثير وأغنى بالمعلومات.

لاحظ SimCLR تحسّنات كبيرة عند التوسعة من 256 إلى 8192. مُحسِّن LARS — الذي يُطبّق مستقلّة لكل طبقة — كان ضرورياً لاستقرار التدريب عند هذه الأحجام الضخمة. هذا أحد المواضع التي يتطلّب فيها SimCLR موارد حوسبية كبيرة: التدريب بحجم دُفعة 4096 على 32 نواة TPU v3 لمئة حقبة تدريبية.

افتح في المختبر
شاهد كيف تُحسّن زيادة السلبيات في الدُّفعة جودة التمثيلات. كل نقطة تُمثّل عيّنة سلبية — الدُّفعات الأكبر تصنع مشهد مقارنة أكثف.
تستيقظ التجربة عند وصولك…

SimCLR في الكود

حلقة تدريب SimCLR — بسيطة لكن كاملةpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import torch
import torch.nn.functional as F

def simclr_loss(z_i, z_j, temperature=0.5):
    """خسارة NT-Xent لزوج إيجابي واحد عبر الدُّفعة.
    z_i, z_j: (حجم_الدُّفعة, البُعد) — سمات مُسقَطة من مشهدين مُعزَّزين."""
    batch_size = z_i.shape[0]
    z = torch.cat([z_i, z_j], dim=0)                       # (2N, dim)
    z = F.normalize(z, dim=1)                               # متّجهات وحدة
    sim = z @ z.T / temperature                             # (2N, 2N) تشابه جيب التمام / τ

    # الأزواج الإيجابية: (i, i+N) و (i+N, i)
    labels = torch.arange(batch_size, device=z.device)
    labels = torch.cat([labels + batch_size, labels])       # كل عنصر يشير إلى شريكه

    # إخفاء التشابه الذاتي (القُطر)
    mask = ~torch.eye(2 * batch_size, dtype=bool, device=z.device)
    sim = sim[mask].view(2 * batch_size, -1)                # أزل القُطر

    return F.cross_entropy(sim, labels)

# الكود الزائف للتدريب:
# for images in loader:
#     x_i = augment(images)    # قصّ عشوائي + اهتزاز ألوان + ضبابية
#     x_j = augment(images)    # تعزيز عشوائي مختلف
#     h_i = encoder(x_i)      # سمات ResNet ← التمثيلات
#     h_j = encoder(x_j)
#     z_i = projection(h_i)   # رأس MLP ← مُسقَط للخسارة
#     z_j = projection(h_j)
#     loss = simclr_loss(z_i, z_j)
#     loss.backward()          # حدّث المُرمِّز + رأس الإسقاط

النتائج: ردم الفجوة

حقّق SimCLR عدّة إنجازات أعادت تشكيل الميدان:

في (تجميد المُرمِّز وتدريب مُصنِّف خطي فوقه فقط)، وصل SimCLR بنموذج ResNet-50 (4×) إلى دقة 76.5% على مقياس top-1 في ImageNet — مكافئاً أداء ResNet-50 الإشرافي لأول مرة بأسلوب ذاتي الإشراف.

في (باستخدام 1% أو 10% فقط من تسميات ImageNet) تفوّق SimCLR على الأداء الإشرافي بهامش واسع. بنسبة 1% فقط من التسميات حقّق دقة 48.3% على مقياس top-5 — أي ما يقارب ضعف أفضل نتيجة سابقة.

في إلى 12 مجموعة بيانات صور طبيعية، كافأ SimCLR التدريب المسبق الإشرافي أو تفوّق عليه في 5 من أصل 12 مجموعة، ما يُثبت أن التمثيلات التبايُنية تتعمّم إلى ما هو أبعد من ImageNet.

افتح في المختبر
قارن دقة SimCLR مع الأساليب الإشرافية وأساليب التعلم ذاتي الإشراف السابقة عبر بروتوكولات التقييم المختلفة.
تستيقظ التجربة عند وصولك…

ما الذي فتحه SimCLR

  1. 2018

    CPC — الترميز التنبؤي التبايُني

    قدّم خسارة InfoNCE للتعلم ذاتي الإشراف من خلال التنبؤ بالتمثيلات الكامنة المستقبلية. أظهر أن الأهداف التبايُنية قادرة على تعلّم سمات نافعة عبر مجالات متعددة (صوت، رؤية، نص).

  2. 2020

    MoCo — التباين الزخمي

    استخدم مُرمِّزاً يُحدَّث بالزخم وطابور عيّنات سلبية لفصل حجم الدُّفعة عن عدد السلبيات. عملي لكنه معقّد معمارياً.

  3. 2020

    SimCLR — التعلم التبايُني البسيط

    أثبت أن سلسلة التعلم التبايُني بالكامل قابلة للتبسيط: بلا بنك ذاكرة ولا مُرمِّز زخمي. فقط عزِّز، رمِّز، أسقِط، قارِن. حقّق تكافؤاً مع الأداء الإشرافي.

  4. 2020

    BYOL — ابنِ تمثيلاتك الكامنة بنفسك

    ألغى الأزواج السلبية كلياً — تدرّب بشبكتين (واحدة فورية وأخرى مرجعية) مع أزواج إيجابية فقط. أظهر أن السلبيات ليست شرطاً لازماً.

  5. 2020

    SwAV — تبادل التعيينات بين المشاهد

    استبدل السلبيات الصريحة بتجميع عنقودي فوري — يُقارن تعيينات العناقيد بدل التمثيلات الفردية. أكثر كفاءة ويتجنّب انهيار التمثيلات دون الحاجة لدُفعات ضخمة.

  6. 2021

    Barlow Twins — تقليل التكرار

    جعل مصفوفة الارتباط التقاطعي بين المشهدين تقترب من مصفوفة الهوية — ففكّك الارتباط بين السمات بدل مقارنة الأزواج صراحة. أنيق وفعّال.

  7. 2021

    CLIP — التدريب المسبق التبايُني للغة والصورة

    وسّع التعلم التبايُني إلى أزواج الصورة والنص بحجم هائل (400 مليون زوج). الهدف التبايُني المستوحى من SimCLR، بعد تكييفه للمطابقة بين الوسائط، صار ركيزة الذكاء الاصطناعي متعدد الوسائط الحديث.

إرث SimCLR الحقيقي نمط تصميمي وليس رقماً على لوحة صدارة. الرؤية القائلة بأن تعزيز + مُرمِّز بسيط + رأس إسقاط + خسارة تبايُنية يكفي لتعلّم ذاتي إشراف قوي — اعتُمدت وعُدِّلت ووُسِّعت في كل ركن من أركان تعلّم الآلة — من محاذاة اللغة والرؤية في CLIP إلى استرجاع النصوص في Contriever.

المرجعChen, Kornblith, Norouzi, Hinton. A Simple Framework for Contrastive Learning of Visual Representations. ICML, 2020.

مصطلحات هذه الورقة