Vision-Language2015متوسط11 دقيقة قراءة

أرِني وأخبرني: مولّد وصف الصور بالشبكات العصبية

Show and Tell: A Neural Image Caption Generator

Vinyals, O. · Toshev, A. · Bengio, S. · Erhan, D. — CVPR

المشكلة

قبل عام 2015 كان فهم الصور وتوليد اللغة عالَمين منفصلين. مصنّفات الصور كانت تستطيع تسمية الصورة «قطة» أو «كلب»، لكنها عاجزة عن قول «قطة تجلس على حافة النافذة بجانب نبتة في أصيص». أنظمة الوصف الأقدم كانت تلصق كاشفات بصرية مصمَّمة يدوياً بقوالب جمل جامدة، فتنتج أوصافاً متصلّبة ونمطيّة تنهار أمام أي مشهد لم تتوقعه تلك القوالب.

الإسهام

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

الأثر

كان Show and Tell أول نموذج يُثبت بشكل مُقنع أن شبكة عصبية واحدة تستطيع الربط بين الرؤية واللغة من طرف إلى طرف، فأرسى نموذج -فاكّ الترميز لوصف الصور. فاز بمسابقة MSCOCO لوصف الصور عام 2015 وألهم موجة من نماذج الرؤية واللغة — من Show, Attend and Tell (الذي أضاف الانتباه) إلى أنظمة الإجابة البصرية عن الأسئلة والنماذج اللغوية الكبيرة متعددة الوسائط. مخطط «الشبكة الالتفافية كمُرمِّز والشبكة التكرارية كفاكّ ترميز» صار القالب المرجعي لحقل بأكمله.

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

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

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

بحلول 2014 أصبحت الشبكات الالتفافية مثل GoogLeNet قادرة على الصور ضمن 1,000 فئة بدقة تقارب أداء الإنسان. لكن التصنيف يُجيب فقط عن سؤال «ما هذا الشيء؟» ولا يقدر على وصف العلاقات بين الأشياء أو الأفعال الجارية أو ترتيبها في المشهد. فكلمة «كلب» وحدها لا تُخبرك هل الكلب يركض على الشاطئ، أم نائم على الأريكة، أم يلتقط قرصاً طائراً.

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

الحاجة الفعلية كانت إلى نموذج يتعلّم الانتقال من بكسلات خام إلى جمل كاملة ضمن مسار واحد متّصل، على غرار ما بدأت تفعله نماذج في الترجمة الآلية.

افتح في المختبر
على اليسار: النهج القديم متعدد المراحل — اكشف، صنّف، ركّب قالباً. على اليمين: نهج Show and Tell الشامل — شبكة واحدة تنتقل من البكسلات إلى الجملة مباشرةً.
تستيقظ التجربة عند وصولك…

الفكرة: عامِل الصورة كأنها الكلمة الأولى في الجملة

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

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

  • فاكّ الترميز (LSTM): شبكة ذاكرة طويلة قصيرة المدى تستقبل متجه الصورة كمدخل أوّلي عند الخطوة الزمنية −1، ثم تبدأ بتوليد الوصف كلمةً بكلمة. في كل خطوة تأخذ الكلمة السابقة، وتُحدّث ، وتتنبّأ بالكلمة التالية حتى تصل إلى .

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

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

هدف التدريب: تعظيم احتمالية الوصف

الهدف من التدريب واضح: نريد من النموذج أن يُعطي أعلى احتمال للوصف الصحيح عندما يرى الصورة. هذا ببساطة هو مبدأ المعتاد. لصورة II ووصفها الصحيح S=(S0,S1,,SN)S = (S_0, S_1, \ldots, S_N)، يُعظِّم النموذج:

θ=argmaxθ(I,S)logp(SI;θ)\theta^* = \arg\max_\theta \sum_{(I,S)} \log p(S \mid I;\, \theta)
هدف التدريب — تعظيم اللوغاريتم الاحتمالي للأوصاف الصحيحةθ* = أفضل معاملات · (I, S) = أزواج صورة-وصف من مجموعة البيانات · p(S|I; θ) = الاحتمال الذي يمنحه النموذج للوصف S عند رؤية الصورة I

بما أن الوصف عبارة عن سلسلة كلمات، نستطيع تفكيك الاحتمال الكلّي باستخدام : احتمال كل كلمة يعتمد على الصورة وعلى جميع الكلمات التي سبقتها:

logp(SI)=t=0Nlogp(StI,S0,,St1)\log p(S \mid I) = \sum_{t=0}^{N} \log p(S_t \mid I, S_0, \ldots, S_{t-1})
تفكيك قاعدة السلسلة — النماذج اللغوية تُولّد كلمةً واحدة في كل خطوةكل حدّ p(Sₜ | I, S₀, …, Sₜ₋₁) تتولّاه LSTM: الحالة المخفية تحمل السياق السابق بأكمله، ثم تُحوّل دالة softmax خرجها إلى توزيع احتمالي على المفردات لاختيار الكلمة التالية.

داخل فاكّ الترميز: كيف تكتب LSTM

في كل خطوة زمنية tt، تقوم LSTM بثلاث عمليات متتابعة:

  1. : تحويل الكلمة السابقة من تمثيلها St1S_{t-1} إلى متجه كثيف WeSt1W_e S_{t-1}. عند t=0t = 0 يكون المدخل هو رمز البداية (START)، وعند t=1t = -1 يكون متجه الصورة القادم من الشبكة الالتفافية بعد تمريره عبر إسقاط خطي مُتعلَّم.

  2. تحديث الحالة المخفية: بوابات LSTM الثلاث (الإدخال والنسيان والإخراج) تُقرّر ما يُحفظ وما يُنسى وما يُخرَج. حالة الخلية هنا تعمل كسير ناقل يحمل المعلومات البصرية واللغوية معاً إلى الأمام.

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

x1=WimgCNN(I),xt=WeSt    (t0),pt+1=LSTM(xt)x_{-1} = W_{img}\, \text{CNN}(I), \quad x_t = W_e\, S_t \;\; (t \ge 0), \quad p_{t+1} = \text{LSTM}(x_t)
معادلات Show and Tell الثلاثx₋₁ = تضمين الصورة (خرج الشبكة الالتفافية مُسقطاً على بُعد LSTM) · xₜ = تضمين الكلمة في الخطوة t · pₜ₊₁ = احتمال الكلمة التالية، يُنتجه LSTM ثم softmax
افتح في المختبر
تتبّع عملية فك الترميز كلمةً بكلمة. راقب كيف تتطور الحالة المخفية وكيف يُحسب احتمال كل كلمة.
تستيقظ التجربة عند وصولك…

التدريب: التوجيه بالمعلم

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

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

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

الاستدلال: البحث الشعاعي لأوصاف أفضل

عند الاستدلال لا يوجد معلّم، وعلى LSTM أن تُولّد الكلمات بمفردها. أبسط طريقة هي : في كل خطوة اختر الكلمة ذات الاحتمال الأعلى. المشكلة أن الكلمة الأفضل محلياً في الخطوة 3 قد تقودك إلى طريق مسدود عند الخطوة 7.

البحث الشعاعي يتفادى هذا الفخ. الآلية بسيطة: احتفظ بأفضل kk وصف جزئي في كل خطوة، وسّع كلاً منها بكلمة واحدة، قيّم جميع المرشحين الناتجين، ثم أبقِ أفضل kk مجدداً. بحجم شعاع يساوي 20 مثلاً، يستكشف النموذج 20 مساراً بالتوازي ويختار في النهاية الوصف الكامل الأعلى تقييماً.

أهمية ذلك تعود إلى أن اللغة فيها اعتمادات بعيدة المدى. كلمة «يلعبون» في الموضع 5 لا تصحّ إلا إذا كان الفاعل في الموضع 1 جمعاً، لكن فك الترميز الجشع يكون قد التزم مبكّراً بفاعل مفرد. البحث الشعاعي يتجاوز هذه المشكلة لأنه يُبقي فرضية الجمع حيّة حتى نهاية الجملة.

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

المُرمِّز البصري: من البكسلات إلى المعنى

الشبكة الالتفافية المستخدمة هي GoogLeNet ( v1)، التي فازت بمسابقة تصنيف ILSVRC عام 2014. ابتكارها الرئيسي هو وحدة Inception: بدلاً من اختيار حجم مرشّح واحد، تُشغّل التفافات 1×1 و3×3 و5×5 بالتوازي ثم تُدمج نتائجها. الفائدة أن الشبكة تلتقط أنماطاً بمقاييس مختلفة في آنٍ واحد.

لأغراض وصف الصور، يحذف الباحثون طبقة التصنيف الأخيرة في GoogLeNet (طبقة softmax ذات 1,000 فئة) ويأخذون متجه التنشيط من الطبقة التي تسبقها مباشرةً وهو بـ1024 بُعداً. هذا المتجه يمثّل ملخصاً غنياً ومُتعلَّماً للصورة، فهو لا يُرمّز فقط «أي أجسام موجودة» بل يلتقط أيضاً العلاقات المكانية والنسيج وسياق المشهد ككل. بعدها يأتي تحويل خطي مُتعلَّم WimgW_{img} يُسقط هذا المتجه إلى فضاء تضمين LSTM (عادةً 512 بُعداً)، وبذلك تحتل الصورة الفضاء التمثيلي نفسه الذي تعيش فيه الكلمات.

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

افتح في المختبر
شاهد كيف تعالج GoogLeNet الصورة من البكسلات عبر وحدات Inception إلى متجه واحد بـ1024 بُعداً.
تستيقظ التجربة عند وصولك…

النتائج: ما مدى جودة النموذج؟

قُيِّم Show and Tell على عدة معايير مرجعية باستخدام مقياس الذي يقيس مدى تداخل المقاطع النصية (n-gram) بين الوصف الذي يُولّده النموذج والأوصاف المرجعية المكتوبة بأيدٍ بشرية. كلّما ارتفعت درجة BLEU، دلّ ذلك على تطابق أقرب مع الأوصاف البشرية:

  • Pascal VOC 2008: BLEU-1 قفز من 25 (أفضل نتيجة سابقة) إلى 59، مقترباً من الأداء البشري عند 69.
  • Flickr30k: BLEU-1 تحسّن من 56 إلى 66.
  • SBU: BLEU-1 ارتفع من 19 إلى 28.
  • MSCOCO: حقق النموذج BLEU-4 بقيمة 27.7، رقم قياسي جديد، وفاز بمسابقة MSCOCO لوصف الصور عام 2015.

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

افتح في المختبر
قارن درجات BLEU على مجموعات البيانات المختلفة. مرّر المؤشر فوق أي عمود لترى مقدار القفزة بين أفضل نتيجة سابقة ونتيجة Show and Tell.
تستيقظ التجربة عند وصولك…

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

Show and Tell — مُرمِّز التفافي + فاكّ ترميز LSTMpython

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

import numpy as np

def softmax(x):
    e = np.exp(x - x.max(axis=-1, keepdims=True))
    return e / e.sum(axis=-1, keepdims=True)

def show_and_tell(image, W_img, W_embed, lstm, W_out, vocab, max_len=20):
    """
    image:   متجه سمات الشبكة الالتفافية (1024,)
    W_img:   مصفوفة إسقاط (1024 x embed_dim) — تنقل الصورة إلى فضاء الكلمات
    W_embed: مصفوفة تضمين الكلمات (vocab_size x embed_dim)
    lstm:    خلية LSTM مع .step(input, hidden) -> (output, new_hidden)
    W_out:   إسقاط الخرج (hidden_dim x vocab_size)
    """
    # الخطوة -1: أدخل الصورة بوصفها «الكلمة» الأولى
    img_embed = image @ W_img                    # (embed_dim,)
    hidden = lstm.step(img_embed, init_hidden())  # LSTM تقرأ الصورة

    # الخطوة 0+: ولّد الوصف كلمة بكلمة
    word = START_TOKEN
    caption = []
    for t in range(max_len):
        word_embed = W_embed[word]               # ابحث عن التضمين
        output, hidden = lstm.step(word_embed, hidden)
        logits = output @ W_out                  # قيّم كل كلمة في المفردات
        probs = softmax(logits)
        word = np.argmax(probs)                  # الاختيار الجشع
        if word == STOP_TOKEN:
            break
        caption.append(vocab[word])

    return " ".join(caption)

# هذا هو خط المعالجة كاملاً:
# CNN(image) ← إسقاط ← LSTM ← softmax ← كلمات
# جميع المعاملات (W_img, W_embed, LSTM, W_out) تُدرَّب معاً.

لماذا غيَّر هذا البحث المشهد

  1. 2014

    التسلسل إلى تسلسل للترجمة (Sutskever وآخرون)

    أظهر أن بنية مُرمِّز-فاكّ ترميز بشبكة LSTM قادرة على الترجمة بين اللغات، وأرسى بذلك النموذج الذي بنى عليه Show and Tell.

  2. 2015

    Show and Tell (هذه الورقة)

    بدّل المُرمِّز النصي بمُرمِّز صور التفافي، فأصبح أول نظام عصبي شامل لوصف الصور. فاز بمسابقة MSCOCO 2015.

  3. 2015

    Show, Attend and Tell — أرِني وانتبه وأخبرني

    أضاف آلية الانتباه المكاني: LSTM أصبحت «تنظر» إلى مناطق مختلفة من الصورة عند توليد كل كلمة، بدلاً من الاعتماد على متجه واحد ثابت. سرعان ما صارت هذه البنية هي المعيار السائد في وصف الصور.

  4. 2015

    الإجابة البصرية عن الأسئلة (Antol وآخرون)

    نقل نموذج الرؤية-اللغة من مهمة وصف الصور إلى الإجابة عن أسئلة حولها، وفتح بذلك اتجاهاً بحثياً جديداً بالكامل.

  5. 2017

    الانتباه التصاعدي والتنازلي (Anderson وآخرون)

    جمع بين سمات على مستوى الأجسام (مستخرجة من Faster R-CNN) وآلية انتباه تنازلي، فدفع جودة الأوصاف إلى مستوى أعلى. اعتمد مباشرةً على بنية المُرمِّز-فاكّ الترميز التي أسّسها Show and Tell.

  6. 2021

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

    تعلّم تمثيلات مشتركة للصورة والنص من 400 مليون زوج مأخوذ من الويب. هو في جوهره الجسر ذاته بين الرؤية واللغة الذي افتتحه Show and Tell، لكن بحجم الإنترنت.

  7. 2023

    LLaVA — مساعد اللغة والرؤية الكبير

    وصل مُرمِّزاً بصرياً بنموذج لغوي كبير عبر طبقة إسقاط — المسار نفسه الذي رسمه Show and Tell (شبكة التفافية ← إسقاط ← نموذج لغوي)، لكن هذه المرة بنموذج لغوي كبير يضم مليار معامل كفاكّ ترميز.

الخط الواصل من Show and Tell إلى أنظمة الذكاء الاصطناعي متعدد الوسائط اليوم واضح بشكل لافت: بدّل الشبكة الالتفافية بـ، وبدّل LSTM بـفاكّ ترميز محوِّل أو نموذج لغوي كبير كامل، ووسّع البيانات من MSCOCO إلى الإنترنت بأكمله — تحصل على أنظمة مثل GPT-4 Vision وGemini وClaude ذات القدرات البصرية. الفكرة الجوهرية — رمِّز الصورة، فُكَّ ترميز اللغة — لم تتغيّر قط.

المرجعVinyals, Toshev, Bengio, Erhan. Show and Tell: A Neural Image Caption Generator. CVPR, 2015.

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