#cnn-filters — الشبكات العصبية
الصورة شبكة من الأرقام. مرشّح 3×3 ينزلق فوقها، يضرب، يجمع: هذا هو الالتفاف.
ما ستُجرّبه
- مرحبًا في قناة #cnn-filters. إلى اليسار، صورة
10×10: كل مكعّب بكسل، وارتفاعه هو قيمته (0 = مظلم ومنبسط، 1 = ساطع وطويل). بالنسبة للحاسوب، الصورة ليست سوى شبكة من الأرقام. فوقها يطفو مرشّح 3×3: تسعة أرقام لا أكثر. سنُمرّره فوق الصورة، نضرب البكسل بالمعامل، ثم نجمع الكلّ: هذا هو الالتفاف (convolution). - ضع المرشّح على النافذة الأولى: اكتب
/slide. يشرح المُعلّم الحسابات التسعة بكسل × معامل وجَمْعها. هذا الرقم الوحيد يصبح المكعّب الأوّل في خريطة المخرج، إلى اليمين. - مرّة أخرى،
/slide. تحرّكت النافذة بكسلًا واحدًا إلى اليمين (خطوة 1)… لكن المرشّح لم يتغيّر: نفس الأرقام التسعة تخدم كلّ موضع. هذه هي مشاركة الأوزان، الوفرة الكبرى لشبكات الالتفاف. - اكتب
/allلحساب باقي النوافذ دفعةً واحدة. مع مرشّحvertical-edgeعلى صورةedge، «تُضاء» الخريطة بالضبط على الحدود يسار/يمين وتبقى صفرًا في كلّ مكان آخر: هذا المرشّح لا يرى إلا الانتقالات العمودية. - غيّر الصورة:
/image cross، ثم أعِد/all. الخطّ العمودي وحده يستجيب — عبر حافّتيه، إحداهما موجبة والأخرى سالبة — بينما يبقى الخطّ الأفقي غيرَ مرئيّ لهذا المرشّح. مرشّح الحواف الأفقية سيرى العكس تمامًا: ستجرّبه في النهاية. - انتقل إلى التمويه:
/filter blur، ثم/all. يصبح كلّ مخرج معدّل جيرانه التسعة: تنتشر الخطوط وتلين. مرشّح sharpen يفعل العكس: يُضخَّم المركز (×5)، ويُطرح جيرانه، فتبرز الحدود. كتبنا هذه الأرقام التسعة يدويًا. أمّا CNN فـيتعلّمها عن طريق الانتشار الخلفي، ليكتشف ما يُساعده في مهمّته. - الإعداد الأخير:
/stride 2، ثم/all. تقفز النافذة بكسلَيْن في كل خطوة، ويتقلّص المخرج من8×8إلى4×4. هكذا يُقلّص CNN (أو باستخدام pooling) خرائطه تدريجيًا لتلخيص الصورة. - دورك:
/filter horizontal-edgeعلى cross (النقيض التامّ للمرشّح العمودي)،/filter sharpen،/image circle،/filter sobel-x،/relu،/slideخطوة خطوة،/reset. CNN يُكدِّس هذه الطبقات: الأولى ترصد الحواف، والتالية تجمع الحواف إلى زوايا، ثم إلى أشكال، ثم إلى أجسام. المتّجهات التي تنتجها، ستراها تطفو في #embeddings-3d.
أوامر القناة
/slide— يُقدّم المرشّح بمقدار نافذة ويُفصّل حساب الضرب والجمع./all— يحسب خريطة المخرج بأكملها دفعة واحدة ويُفسّرها./filter <vertical-edge|horizontal-edge|sobel-x|sobel-y|blur|sharpen|identity>— يغيّر المرشّح 3×3 ويمسح الخريطة./image <cross|diagonal|circle|checkerboard|edge>— يغيّر صورة المُدخَل ويمسح الخريطة./stride <1|2>— حجم خطوة النافذة: 1 ← مخرج 8×8، 2 ← مخرج 4×4./relu— يُبدّل حالة ReLU على المخرج (يُقصّ السالب إلى 0)./reset— العودة إلى الحالة الابتدائية: صورة edge، مرشّح vertical-edge، خطوة 1، بلا ReLU.
المسرد
- التلافيف
- عملية تمرّر نواة صغيرة على الصورة وتحسب، عند كل موضع، المجموع الموزون للبكسلات المُغطّاة. النتيجة صورة جديدة: خريطة السمات.
- النواة
- الشبكة الصغيرة من الأوزان (3×3، 5×5…) المنزلقة عبر الصورة. في CNN تُتعلَّم هذه الأوزان؛ هنا نضبطها يدويًا لبناء الحدس.
- خريطة السمات
- خرج التلافيف: صورة يُشير فيها كل بكسل إلى «مدى حضور نمط النواة هنا». تُنتِج CNN عشرات منها لكل طبقة.
- كشف الحواف
- نواة بمعاملات موجبة على جانب وسالبة على الآخر تستجيب بقوّة كلّما تغيّرت الشدّة تغيّرًا حادًا: «ترى» الحواف.
- مرشِّح Sobel
- نواة كشف حواف تجمع مشتقّة في اتجاه مع تنعيم في الآخر. Sobel-x يجد الحواف العمودية، وSobel-y الأفقية.
- الخطوة
- عدد البكسلات التي تتحرّكها النواة في كل خطوة. خطوة 2 تُصغِّر الخرج إلى النصف.
- الحشو
- إطار من الأصفار يُضاف حول الصورة كي يحتفظ الخرج بالحجم نفسه وتُعالَج الحواف كالوسط.
- الحقل الاستقبالي
- المنطقة من صورة المُدخَل التي تؤثّر في بكسل معيّن من خريطة. يكبر مع العمق: الطبقات العليا ترى أجسامًا كاملة.
- تشارك الأوزان
- تُطبَّق النواة نفسها في كل مكان من الصورة: قلّة وسائط وتباين انتقالي — الحافة حافة، أينما كانت.
قنوات أخرى في الشبكات العصبية
- #neuron — لنفكّك عصبونًا: مداخل، أوزان، مجموع، دالة تفعيل.
- #dropout — تنظيم dropout: الصديق الأفضل للشبكات العميقة.
- #activation — لماذا نحتاج دالة تفعيل؟ ReLU وsigmoid وtanh وLeaky ReLU وGELU وتلاشي التدرج.
- #gradient-descent — الخسارة تضاريس. يخبرنا التدرج بأي اتجاه هو الأعلى، فنخطو في الاتجاه المعاكس.
- #backpropagation — مخطّط الحسابات يُعاد تشغيله معكوسًا: كل عقدة تستقبل ∂L/∂(نفسها) وقاعدة السلسلة تتكفّل بالباقي.
- #overfitting — نموذج كبير على قليل من النقاط: يلتوي حدّ القرار حتى يحفظ الضجيج عن ظهر قلب.
- #cnn-filters — الصورة شبكة من الأرقام. مرشّح 3×3 ينزلق فوقها، يضرب، يجمع: هذا هو الالتفاف.
- #is-it-einstein — هل هذا أينشتاين؟ وجهان يمرّان بماسح شبكة لم تتعلّم سوى أينشتاين: هيثم → لا، أينشتاين → نعم. المشاهدة مجانية؛ التعديل بريميوم.
- #embeddings-3d — الكلمة تصبح متّجهًا: القُرب في الفضاء = القُرب في المعنى، ويمكنك إجراء عمليات حسابية عليها.