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

تعلُّم تمثيلات بصرية بدون إشراف عبر التنبؤ بالسياق

Unsupervised Visual Representation Learning by Context Prediction

Doersch, C. · Gupta, A. · Efros, A. A. — ICCV

المشكلة

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

الإسهام

مهمة ذريعية ذاتية الإشراف: تُقتطع أزواج عشوائية من رُقَع الصورة وفق شبكة 3×3، وتُدرَّب شبكة التفافية على بأيّ من المواضع النسبية الثمانية تقع فيه الرُّقعة الثانية. الفرضية أن حلّ هذه الأحجية المكانية يُجبر الشبكة على تعلّم التعرّف على الأشياء وأجزائها. فرعان بمعمارية AlexNet يتشاركان الأوزان، يعالج كلٌّ منهما مستقلة ثم يُدمجان عند القمة . صُمّمت احتياطات دقيقة لمنع الحلول السطحية — فجوات بين الرُّقَع، وإزاحات عشوائية، ومعالجة لقنوات اللون — لسدّ ثغرات مثل استمرارية النسيج . السمات الناتجة حققت أفضل أداء بين الأساليب غير الإشرافية على معيار PASCAL VOC 2007 للكشف (46.3% mAP)، كما أتاحت اكتشاف فئات الأشياء تلقائياً بلا إشراف.

الأثر

دشّنت هذه الورقة عصر المهام الذريعية البصرية — تصميم ألغاز ذكية لا يمكن حلّها دون فهم دلالي حقيقي. أثبتت أن السياق المكاني داخل صورة واحدة يمثّل إشارة إشرافية غنية. أعمال RotNet وJigsaw والتلوين سارت على النهج ذاته. المسار الذي أرسته — «مهمة ذريعية ← نقل التعلّم» — أصبح الأساس الذي طوّرته لاحقاً أساليب التعلّم التبايُني مثل MoCo وSimCLR، حتى وصلنا إلى سمات ذاتية الإشراف تُضاهي أو تتفوق على سمات ImageNet الإشرافية.

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

هذا بالضبط ما تفعله الورقة: تُجبر على خوض اللعبة نفسها مع رُقَع مقتطعة من الصور. الشبكة لا ترى تسميات ولا ترى الصورة الكاملة، كل ما تفعله هو محاولة التنبؤ بالعلاقات المكانية بين الرُّقَع — ولكي تنجح في ذلك، لا بدّ أن تتعلّم ماهية الأشياء الموجودة في الصورة.

المشكلة: التسميات مُكلفة والصور متاحة بلا حدود

بحلول عام 2015 كانت الوصفة المُجرَّبة للحصول على بصرية جيدة واضحة ومباشرة: درِّب عميقة على 1.3 مليون صورة مُعنونة يدوياً من ImageNet، ثم استخدم ما تعلّمته — وبخاصة — في مهام أخرى مثل على معيار PASCAL VOC.

المشكلة أن هذه الوصفة فيها عنق زجاجة واضح: التسميات البشرية. بناء مجموعة ImageNet وحدها احتاج سنوات من الجهد الجماعي في التعنون. على الإنترنت مليارات الصور بلا أي تسميات، لكن لا يستطيع الاستفادة منها. في المقابل، مثل وآلات بولتزمان لم تنجح مع الصور الطبيعية عالية الدقّة — كانت تضيع طاقتها على تفاصيل البكسلات الدنيا كـ والنسيج، بدلاً من تعلّم مفاهيم عالية المستوى مثل «قطة» أو «سيارة».

فالسؤال الذي طرح نفسه: هل نستطيع تصميم مهمة تفرض على الشبكة فهماً دلالياً حقيقياً دون الحاجة إلى أي تسمية بشرية؟

الفكرة: تنبّأ بموضع الرُّقعة

نقطة الانطلاق جاءت من عالم معالجة اللغة الطبيعية. نماذج Skip-gram تبني غنية للكلمات بمجرد التنبؤ بالكلمات المحيطة — دون أي بيانات مُعنونة. السؤال الذي طرحه المؤلفون: ماذا لو طبّقنا الفكرة نفسها على رُقَع الصور بدلاً من الكلمات؟

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

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

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

المعمارية: شبكة AlexNet سيامية

المعمارية تعتمد على مبدأ الدمج المتأخر. كل رُقعة تدخل فرعاً مستقلاً بمعمارية AlexNet (من conv1 حتى ما يُعادل fc6) — لكن الفرعين يتشاركان نفسها. هذه نقطة جوهرية: تعني أن دالة واحدة لكلتا الرُّقعتين، وبالتالي يُنتج كل فرع تضميناً من الفضاء نفسه — تضمين قابل لإعادة الاستخدام لاحقاً.

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

تخيّل الأمر كمحقّقَين يعمل كلٌّ منهما على قراءة وثيقة بمفرده، ثم يلتقيان لدقائق معدودة ليقرّرا كيف ترتبط الوثيقتان. لأن وقت الاجتماع قصير، على كل محقق أن يستخرج أكبر قدر من المعنى وحده قبل اللقاء.

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

تفادي الحلول البسيطة المُختصرة

أي مهمة ذريعية تفقد قيمتها لو استطاعت الشبكة حلّها من غير أن تتعلّم شيئاً ذا معنى. وبالفعل، اكتشف المؤلفون ثلاثة اختصارات كانت الشبكة تستغلّها:

1. استمرارية النسيج عند الحدود. حين تتلاصق الرُّقَع، قد تمتد الأنسجة أو الحواف عبر الحدّ الفاصل فتكشف الإجابة مباشرة. الحل: ترك فجوة ~48 بكسل (نصف عرض الرُّقعة) بين كل رُقعتين.

2. المحاذاة الدقيقة. حتى مع وجود فجوة، قد تمتد خطوط مستقيمة طويلة عبر الرُّقعتين وتكشف العلاقة المكانية. الحل: إضافة إزاحة عشوائية (jitter) بمقدار ±7 بكسلات لموقع كل رُقعة.

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

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

افتح في المختبر
بدِّل بين الرُّقَع الأصلية والمُسقَطة لونياً. لاحظ كيف يختفي التدرج الأخضر–الأرجواني بعد الإسقاط، مما يُجبر الشبكة على استخدام دلالات المحتوى.
تستيقظ التجربة عند وصولك…

تفاصيل التدريب

جرى على صور ImageNet 2012 كاملةً (~1.3 مليون صورة)، لكن مع حذف جميع التسميات واستخدام الصور فقط. أُعيد تحجيم كل صورة إلى 150–450 ألف بكسل مع الحفاظ على نسبة الأبعاد، ثم استُخرجت الرُّقَع بدقّة 96×96 وفق نمط شبكي، بحيث تدخل كل رُقعة في 8 أزواج كحدّ أقصى.

المعالجة الأولية لكل رُقعة شملت طرح المتوسط، وإسقاط اللون أو حذف القنوات، بالإضافة إلى تصغير عشوائي حتى 100 بكسل فقط (ثم إعادة تكبير) لتعويد الشبكة على التعامل مع صور منخفضة الدقّة.

التحدّي الأصعب كان ما يُعرف بـالانهيار عند : حين استُخدم المعياري، كانت الشبكة تتوقف عن التعلّم وتتنبأ بتوزيع منتظم على الفئات الثمانية، مع انهيار تنشيطات fc6 وfc7 إلى الصفر. بمعنى آخر، الطبقات العليا تعلّمت تجاهل ما تحتها تماماً. الحل كان تطبيق — لكن بدون القياس والإزاحة المُتعلَّمة — مما أجبر التنشيطات على التنوّع بين الأمثلة وكسر حالة الجمود. كذلك استُخدم مرتفع (0.999) لتسريع التعلّم. التدريب الكامل استغرق نحو أربعة أسابيع على وحدة K40 واحدة.

الفكرة في شيفرة برمجية

التنبؤ بالسياق — أخذ عينات الرُّقَع والتصنيف الثُّمانيpython

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

import numpy as np

def sample_patch_pair(image, patch_size=96, gap=48, jitter=7):
    """اسحب رقعة مركزية وإحدى جاراتها الثمانية من الصورة."""
    h, w = image.shape[:2]
    stride = patch_size + gap  # المسافة بين مراكز الرقع

    # موقع عشوائي للرقعة المركزية
    cy = np.random.randint(stride, h - stride)
    cx = np.random.randint(stride, w - stride)

    # 8 مواضع نسبية: أعلى-يسار، أعلى، أعلى-يمين، يسار، يمين...
    offsets = [(-1,-1), (-1,0), (-1,1),
               ( 0,-1),         ( 0,1),
               ( 1,-1), ( 1,0), ( 1,1)]
    label = np.random.randint(8)
    dy, dx = offsets[label]

    # اهتزاز عشوائي لكسر المحاذاة الدقيقة
    jy = np.random.randint(-jitter, jitter + 1)
    jx = np.random.randint(-jitter, jitter + 1)

    center = crop(image, cy, cx, patch_size)
    neighbor = crop(image, cy + dy*stride + jy,
                           cx + dx*stride + jx, patch_size)
    return center, neighbor, label   # label ∈ {0, ..., 7}

def drop_color_channels(patch):
    """أبقِ قناة لون واحدة عشوائياً واستبدل الباقيتين بضوضاء."""
    keep = np.random.randint(3)
    noisy = patch.copy().astype(float)
    sigma = patch[:, :, keep].std() / 100
    for c in range(3):
        if c != keep:
            noisy[:, :, c] = np.random.normal(0, sigma, patch.shape[:2])
    return noisy

# الشبكة: فرعا AlexNet بأوزان مشتركة ← fc6 لكل فرع،
# ربط ← fc7 ← fc8 ← softmax على 8 فئات.
# تسوية الدُّفعات (بدون γ و β) تمنع الانهيار عند نقطة السرج.

النتائج الفعلية: هل تُفيد المهمة الذريعية في مهام حقيقية؟

لاختبار جودة السمات المُتعلَّمة، أُجريت تجارب على مهام حقيقية:

كشف الأشياء (PASCAL VOC 2007). أُدخلت المُدرَّبة مسبقاً في نظام R-CNN ثم جرى على VOC. النتيجة: 46.3% mAP بأسلوب حذف القنوات — أي تحسّن بنسبة 6% مقارنة بالتدريب من الصفر، وأفضل أداء بين الأساليب غير الإشرافية في ذلك الوقت. وحين استُخدم عمود فقري بمعمارية VGG مع حيلة إعادة القياس من Krähenbühl وزملائه، قفز الأداء إلى 61.7% mAP — وهو قريب بشكل لافت من أداء VGG المُدرَّب إشرافياً على ImageNet الذي بلغ 68.6% mAP.

تقدير أسطح النواظم (NYUv2). في مهمة الفهم الهندسي ثلاثي الأبعاد، أدّت السمات الذاتية الإشراف بشكل يكاد يُطابق سمات ImageNet الإشرافية الكاملة. هذا يعني أن الاستدلال المكاني الذي تعلّمته الشبكة من التنبؤ بالسياق ينتقل أيضاً إلى فهم البنية ثلاثية الأبعاد — رغم أن تصنيف ImageNet لا يُشجّع ذلك بشكل مباشر.

التنقيب البصري. باستخدام السمات المُتعلَّمة في مطابقة والتحقق الهندسي، تمكّن النظام من اكتشاف فئات أشياء (قطط وأشخاص وطيور وشاشات) من صور Pascal VOC 2011 بدون أي تسميات — بما في ذلك أشياء مُشوَّهة كالطيور والجذوع البشرية التي كانت السمات اليدوية عاجزة عن التعامل معها.

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

ما مدى صعوبة المهمة الذريعية؟

حققت الشبكة 38.4% في مهمة التصنيف الثُّماني (التخمين العشوائي يُعطي 12.5% فقط)، وهذا يدلّ على أن المهمة صعبة حقاً — حتى أداء البشر فيها مقارب. اللافت أنه لم يحصل يُذكر: الدقة على مجموعة بلغت 39.5% مقابل 40.3% على مجموعة .

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

الإرث: عصر المهام الذريعية

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

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

مع الوقت، أفسح نموذج المهمة الذريعية المجال لـ — فقد أظهر SimCLR وMoCo أن المهمة الذريعية المحددة أقل أهمية من هدف التعلّم نفسه (تقريب التمثيلات المتشابهة وإبعاد المختلفة). لكن الفكرة الأساسية — أن البنية المكانية داخل صورة واحدة تكفي لتعلّم شيء حقيقي عن العالم البصري — بدأت من هنا تحديداً.

  1. 2015

    التنبؤ بالسياق (هذه الورقة)

    التنبؤ بالمواضع النسبية للرُّقَع كمهمة ذريعية ذاتية الإشراف. أول برهان على أن السياق المكاني داخل صورة واحدة يمكنه تدريب سمات مفيدة.

  2. 2016

    مرمِّزات السياق (الترقيع)

    التنبؤ بالمناطق المفقودة من الصورة (الترقيع) كمهمة ذريعية، توسيع للتنبؤ بالسياق من المواضع النسبية إلى إعادة بناء كاملة للمنطقة.

  3. 2016

    أحجية الترتيب

    حلّ أحجيات الترتيب المُبعثرة كمهمة ذريعية — تعميم متعدد الرُّقَع للتنبؤ بالسياق.

  4. 2018

    RotNet

    التنبؤ بزاوية دوران الصورة (0° و90° و180° و270°). مهمة ذريعية أبسط بسمات مقاربة — أثبتت أن الاستدلال المكاني يمتد إلى ما هو أبعد من الرُّقَع.

  5. 2019

    MoCo

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

  6. 2020

    SimCLR

    تعلّم تبايُني بسيط بدُفعات كبيرة وتعزيزات قوية. لا مهمة ذريعية البتة — فقط تقريب المناظر المعزَّزة للصورة ذاتها. الوريث الروحي لعصر المهام الذريعية.

المرجعDoersch, Gupta, Efros. Unsupervised Visual Representation Learning by Context Prediction. ICCV, 2015.

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