تخطّي إلى المحتوى
Kudos AI
Read in English
الشبكات العصبية

الشبكات الالتفافية للرؤية

الالتفاف مُعرَّفاً بدقة، وكاشف حواف سوبل محلولاً يدوياً على صورة 5×5، ولماذا يتفوّق تمرير نواة صغيرة واحدة على الصورة على طبقة كثيفة بخمس مراتب عشرية في عدد البارامترات، وما الذي تغيّر حين كفّت النوى عن التصميم وصارت تُتعلَّم.

قراءة 8 دقيقةKudos AI

المتطلبات المسبقة: ما هي الشبكة العصبية؟

نواة 3×3 واحدة تمسح صورةً والأوزان التسعة نفسها تضيء عند كل موضع - مشاركة الأوزان بوصفها دعوى عن العالم لا مجرّد توفير.

أطعِم صورة فوتوغرافية للطبقة الكثيفة من ما هي الشبكة العصبية؟ وسيختلّ شيء فوراً: فصورة ملوّنة متواضعة بحجم 224×224224 \times 224 تحوي 150,528 عدداً، ووصل كل واحد منها بكل وحدة في طبقة من 1000 وحدة يحتاج أكثر من 150 مليون وزن - لطبقة واحدة. والأسوأ أن النموذج سيضطر إلى تعلّم شكل الحافة على حدة لكل موضع في الصورة، إذ لا شيء يربط الوزن عند بكسل بالوزن عند جاره.

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

أ. الصور، وما تعنيه الرؤية «منخفضة المستوى»

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

والمحلية هي الخاصية التي بُني الالتفاف لاستثمارها. فكاشف الحافة الرأسية يحتاج رؤية حفنة من البكسلات المجاورة؛ ولا يحتاج الـ150,000 الأخرى.

ب. الالتفاف، مُعرَّفاً

يقدّم راسل ونورفيغ التعريف مباشرة. الدالة hh هي التفاف ff وgg، ويُكتب f∗gf * g، حين

h(x,y)=(f∗g)(x,y)=∑u=−∞+∞∑v=−∞+∞f(u,v) g(x−u, y−v).h(x, y) = (f * g)(x, y) = \sum_{u=-\infty}^{+\infty} \sum_{v=-\infty}^{+\infty} f(u, v)\, g(x - u,\, y - v) .

وعملياً تكون gg - النواة أو المرشّح - صفراً خارج نافذة صغيرة، فتكون المجاميع على رقعة 3×33\times3 أو 5×55\times5 لا على المستوي كله. وكل بكسل خرج هو مجموع مرجّح لجوار صغير من بكسلات الدخل، بالأوزان نفسها في كل موضع.

ملاحظة أمانة ترميزية. يتضمّن التعريف أعلاه g(x−u, y−v)g(x-u,\, y-v): أي أن النواة تُقلَب قبل تطبيقها. وتتخطّى أطر التعلّم العميق القلبَ وتحسب ∑u∑vf(x+u, y+v) g(u,v)\sum_u \sum_v f(x+u,\,y+v)\,g(u,v) - وهو بدقّة ارتباط متقاطع - مع أنها تسمّي الطبقة التفافاً. ولنواة سوبل أدناه يختلف الاثنان بالإشارة: فرقعتنا تعطي +320+320 بالارتباط المتقاطع و−320-320 بالالتفاف الحقيقي. ولا فرق عملي في شبكة، لأن النواة مُتعلَّمة: فأياً كان اصطلاح الإطار، يجد التدريب ببساطة النواة التي تعمل في ظله. ولا يهمّ ذلك إلا حين تقارن صيغاً بين كتاب ومكتبة برمجية.

ج. كاشف حواف محلول

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

خذ صورة 5×55\times5 بحافة رأسية واحدة - داكنة على اليسار، ساطعة على اليمين:

I=[10101090901010109090101010909010101090901010109090],K=[−101−202−101].I = \begin{bmatrix} 10 & 10 & 10 & 90 & 90\\ 10 & 10 & 10 & 90 & 90\\ 10 & 10 & 10 & 90 & 90\\ 10 & 10 & 10 & 90 & 90\\ 10 & 10 & 10 & 90 & 90 \end{bmatrix}, \qquad K = \begin{bmatrix} -1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1 \end{bmatrix} .

KK هي نواة سوبل الأفقية: تطرح ما على اليسار مما على اليمين، فتستجيب للحواف الرأسية وتتجاهل المناطق المستوية.

رقعة مستوية. نافذة 3×33\times3 العلوية اليسرى كلها 1010:

(−1)(10)+(0)(10)+(1)(10)+(−2)(10)+(0)(10)+(2)(10)+(−1)(10)+(0)(10)+(1)(10)=0.(-1)(10) + (0)(10) + (1)(10) + (-2)(10) + (0)(10) + (2)(10) + (-1)(10) + (0)(10) + (1)(10) = 0 .

تُلغي الأوزانُ السالبة الموجبةَ تماماً. والنواة التي تجمع أوزانها إلى صفر تعيد صفراً على أي رقعة ثابتة - فهي تقيس فرقاً لا سطوعاً.

رقعة تمتطي الحافة. النافذة التي تبدأ عند العمود 2:

[101090101090101090]  ⟶  (−1)(10)+(1)(90)+(−2)(10)+(2)(90)+(−1)(10)+(1)(90)\begin{bmatrix}10 & 10 & 90\\ 10 & 10 & 90\\ 10 & 10 & 90\end{bmatrix} \;\longrightarrow\; (-1)(10) + (1)(90) + (-2)(10) + (2)(90) + (-1)(10) + (1)(90) =−10+90−20+180−10+90=320.= -10 + 90 - 20 + 180 - 10 + 90 = 320 .

وبتمرير النواة دون قلبها على المواضع التسعة الصالحة (وهو ارتباط متقاطع نرمز له بـ⋆\star، كما تحسبه الأطر؛ أما الالتفاف الحقيقي I∗KI * K فيعكس إشارة كل مدخلة):

I⋆K=[032032003203200320320].I \star K = \begin{bmatrix} 0 & 320 & 320\\ 0 & 320 & 320\\ 0 & 320 & 320 \end{bmatrix} .

والخرج - خريطة سمات - صورةٌ لموضع الحافة. فالمناطق المستوية أصفار؛ والعمودان اللذان يمتدّان عبر قفزة الشدّة يضيئان.

Python

يعمل في متصفحك. تُنزّل عملية التشغيل الأولى بيئة بايثون (~10 ميغابايت)، ثم تُخزّن مؤقتًا.

تفاعلي: تسعة أوزان تُستعمل في كل مكان

حشو «صالح»، فالخرج أصغر باثنين في كل اتجاه.

الصورة

10101090901010109090101010909010101090901010109090

النواة

-101-202-101

=

032032003203200320320
هذه النافذة
320
مجموع أوزان النواة
صفر

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

د. التنعيم أولاً، ومبرهنة توفّر مروراً

الصور الحقيقية مشوّشة، والفرق يضخّم الضجيج. والعلاج المعياري هو التنعيم أولاً بدالة غاوسية،

Nσ(x,y)=12πσ2 e−(x2+y2)/2σ2,N_\sigma(x, y) = \frac{1}{2\pi\sigma^2}\,e^{-(x^2 + y^2)/2\sigma^2},

بالتفاف الصورة معها، I∗NσI * N_\sigma. ويلاحظ راسل ونورفيغ أن σ\sigma بمقدار بكسل واحد ينعّم قدراً صغيراً من الضجيج بينما ينعّم بكسلان أكثر لكن على حساب التفاصيل، وأنه لأن تأثير الغاوسية يخبو سريعاً يمكن بتر المجاميع اللانهائية عند ±3σ\pm 3\sigma.

وثمّة اقتصاد جميل متاح هنا. فمن المبرهَن أنه لأي ff وgg،

(f∗g)′=f∗(g′),(f * g)' = f * (g') ,

أي أن مشتقّة الالتفاف تساوي الالتفاف مع المشتقّة. فبدل تنعيم الصورة ثم اشتقاقها، يمكنك التفاف الصورة مرة واحدة مع مشتقّة دالة التنعيم، Nσ′N'_\sigma، ثم اعتبار قمم الاستجابة التي تتجاوز عتبةً حوافّ. فيصير المروران مروراً واحداً.

هـ. لماذا لا نستخدم طبقة كثيفة وحسب

خاصيّتان تجعلان الالتفاف الأداةَ الصحيحة، وكلتاهما قابلة للعدّ.

تشارك البارامترات. نواة 3×33\times3 على 3 قنوات لونية تعني 3×3×3=273 \times 3 \times 3 = 27 وزناً، وطبقة من 64 مرشّحاً كهذا تعني 1,7281{,}728. أما الطبقة الكثيفة في المقدّمة - 224×224×3224\times224\times3 مدخلاً إلى 1000 وحدة - فهي 150,528,000150{,}528{,}000 وزن. أي بمعامل نحو 87,000. وعلى الطبقة الكثيفة أيضاً أن تتعلّم كاشف حواف مستقلاً عند كل موضع؛ بينما تتعلّم الطبقة الالتفافية واحداً وتطبّقه في كل مكان.

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

edge at column 3:  [03203200]edge at column 4:  [00320320]\text{edge at column 3:}\; \begin{bmatrix}0 & 320 & 320 & 0\end{bmatrix} \qquad \text{edge at column 4:}\; \begin{bmatrix}0 & 0 & 320 & 320\end{bmatrix}

(الصفوف محذوفة؛ فكل الصفوف متطابقة). لا يعبأ الكاشف بـموضع الحافة، وهذا هو الصواب تماماً - فالحافة حافة أينما ظهرت.

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

و. حين كفّت النوى عن التصميم

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

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

وكان الحكم التجريبي حاسماً. يسجّل شولّيه أن الشبكات الالتفافية صارت منذ 2012 الخوارزمية المعتمدة في كل مهامّ الرؤية الحاسوبية تقريباً، وأن دقة الخمسة الأوائل (top-5) الفائزة في ImageNet بلغت عام 2015 نسبة 96.4٪ واعتُبرت المهمة محلولة، وأنه بعد 2015 صار من شبه المستحيل العثور على عرض في مؤتمر رؤية كبير لا يتضمّنها.

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

الخلاصات الأساسية

  • الالتفاف هو ∑u∑vf(u,v) g(x−u, y−v)\sum_u\sum_v f(u,v)\,g(x-u,\,y-v) - فكل بكسل خرج مجموع مرجّح لجوار صغير، بـالأوزان نفسها في كل مكان.
  • تحسب الأطر ارتباطاً متقاطعاً (بلا قلب للنواة) وتسمّيه التفافاً؛ ومع النوى المتعلَّمة لا فرق عملياً.
  • النواة التي تجمع أوزانها إلى صفر تقيس فرقاً لا سطوعاً: فمرشّح سوبل عندنا يعيد 00 على الرقع المستوية و320320 عبر الحافة (دون قلب؛ و−320-320 بالالتفاف الحقيقي).
  • التنعيم قبل الفرق يضبط الضجيج، و(f∗g)′=f∗(g′)(f*g)' = f*(g') يطوي المرورين في مرور واحد.
  • يتفوّق الالتفاف على الطبقة الكثيفة بنحو 87,000× في البارامترات على صورة 224×224224\times224، ويتشارك كاشفاً واحداً عبر كل المواضع.
  • الالتفاف متغايرٌ مكافئ للإزاحة لا ثابت - فالاستجابة تتحرّك مع السمة.
  • كان التغيّر الحاسم هو تعلّم النوى بدل تصميمها، فحلّ ذلك محلّ سمات مثبّتة يدوياً مثل «عدد الحلقات في الرقم».

ما التالي

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

المراجع والقراءات الإضافية

  • Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· مكتبة مراجع Kudos AI
  • François Chollet, Deep Learning with Python, Manning (2nd edition, MEAP), 2020· مكتبة مراجع Kudos AI

تُذكر الأعمال المحمية بحقوق النشر للمرجعية فقط ولا تُستضاف هنا؛ يرجى الرجوع إلى الناشر للوصول إليها.

قراءات ذات صلة

قراءة 8 دقيقةالشبكات العصبية

ما الذي يجعل التدريب يتقارب حقًا

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

التحسينالتعلّم العميقتعلّم الآلة
قراءة 7 دقيقةبناء نموذج لغة

معمارية المحوّل

تركيب GPT من الانتباه: إسقاطات متعدّدة الرؤوس، وتسوية الطبقة محلولةً يدوياً، ولماذا تنقذ وصلات الاختصار التدرّج، وتوسّع شبكة التغذية الأمامية أربع مرات، وعدّ بارامترات يعيد إنتاج GPT-2 الصغير عند 124 مليوناً بالضبط.

الذكاء الاصطناعي التوليديالتعلّم العميقمعالجة اللغات الطبيعية
قراءة 7 دقيقةالشبكات العصبية

الانتشار العكسي والنزول التدرّجي

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

التعلّم العميقالتحسينالرياضيات
← العودة إلى كل المقالات