ML 101
M7 · تجربة
تجربة عملية
مرِّر نواةً، ثم راقب خريطة سمات تتكوّن

احسُب حجم التفافٍ، وأطلِق كاشف حواف، ثم قوِّم وجمِّع في المِنصّة، وتوقَّع — قبل أن تقرأ من لوحات خريطة السمات — حجمَي خريطة conv والخريطة المُجمَّعة، واستجابة Sobel-x عند حافةٍ رأسية مقابل منطقةٍ مسطّحة، وكم خلية يُصفِّرها ReLU، وماذا يُرجِع max-pool من كتلة.

الالتفاف، وحجم المُخرَج
y[i,j] = \sum_{m,n} x[i+m,\, j+n]\, K[m,n] \qquad H_{out} = \left\lfloor \tfrac{H-k+2p}{s} \right\rfloor + 1

تُمرِّر الطبقة الالتفافية kernel صغيرةً ثابتة على الصورة، وعند كل موضع تجمع حواصل الضرب عنصرًا بعنصر مع البكسلات تحتها — أي ارتباطًا متبادلًا ثنائي الأبعاد. ينتج عن ذلك خريطة سمات أصغر حجمها H_out = floor((H - k + 2p)/s) + 1. ثم يُصفِّر ReLU كل استجابة سالبة، ويُقلِّص max-pool الخريطة بإبقاء أكبر قيمة في كل كتلة صغيرة. النوى هنا عوامل قياسية ثابتة، غير مُتعلَّمة — بل تُرجِع نواة الهوية الصورة دون تغيير — فكلّ رقمٍ دقيق.

1 / 10
ML 101
M7 · تجربة
جهّز التجربة
أنبوبٌ واحد

افتح المِنصّة. اترك المُدخَل على نمط vertical edge بحجم 16×16 والضوضاء مُطفأة، والنواة على Sobel-x، والحشو valid والخطوة 1. شغِّل التجميع. تستبدل الخطوتان الأخيرتان خرائط صغيرة مبنيّة يدويًا تتحقّق منها في لوحتَي ReLU وmax-pool.

اضبط هذه القيم
Pattern -> vertical edge Size -> 16 Noise -> 0 Kernel -> Sobel-x Padding -> valid Stride -> 1 Pooling -> on

تُظهر لوحة الأنبوب المُدخَل، ثم conv (H_out = floor((H - k + 2p)/s) + 1)، ثم ReLU، ثم max-pool — كلٌّ مصفوفةُ أرقامٍ حقيقية، وعرضها وارتفاعها مطبوعان فوقها.

2 / 10
ML 101
M7 · تجربة
الخطوة 1 من 6
حجم خريطة conv

التفافٌ valid بحجم 3×3 (بلا حشو، خطوة 1) على صورة 16×16 يفقد بكسلًا من كل حافةٍ من حوافه الأربع. باستخدام H_out = floor((16 - 3 + 0)/1) + 1، توقَّع عرض خريطة conv، ثم اقرأه فوق اللوحة.

المتوقّع

H_out = floor(13/1) + 1 = 14. الخريطة 14×14 — أصغر باثنين من المُدخَل في كل بُعد، وهو تمامًا الإطار الذي لا تبلغه نافذة valid بحجم 3×3.

3 / 10
ML 101
M7 · تجربة
الخطوة 2 من 6
الحجم بعد max-pool

الآن تجميعٌ أقصى 2×2 بخطوة 2 يُبلِّط خريطة 14×14 إلى كتلٍ 2 في 2 غير متداخلة ويُبقي قيمةً واحدة لكل كتلة. توقَّع العرض المُجمَّع من floor((14 - 2)/2) + 1، ثم اقرأه.

المتوقّع

floor(12/2) + 1 = 7. يُنصِّف التجميع كل بُعد، فتصبح خريطة 14×14 بحجم 7×7 — رُبع عدد الخلايا، وهو التقليص الذي يُتيح للطبقات الأعمق أن ترى قدرًا أكبر من الصورة دفعةً واحدة.

4 / 10
ML 101
M7 · تجربة
الخطوة 3 من 6
Sobel-x يُطلِق عند الحافة

تقيس نواة Sobel-x التدرّج الأفقي. على صورة الحافة الرأسية (مظلمٌ يسارًا، ساطعٌ يمينًا، والقفزة عند العمود 8)، خليةُ conv تعبُر القفزة تساوي 4×(bright - dark) = 4×(1 - 0). توقَّع الاستجابة عند خلية الحافة (الصف 5، العمود 6)، ثم اقرأها من لوحة conv.

المتوقّع

الاستجابة 4 — قفزةٌ قوية موجبة عند الحافة تمامًا. تتجمّع أوزان النواة إلى 0، فلا تستجيب إلّا لـتغيُّرٍ في السطوع، لا للسطوع نفسه. وهذا ما يجعلها كاشف حواف.

5 / 10
ML 101
M7 · تجربة
الخطوة 4 من 6
…ويصمُت حيث تكون مسطّحة

الآن اقرأ خليةً بعيدةً عن الحافة، في المنطقة المظلمة المسطّحة (الصف 5، العمود 2)، حيث كل بكسلٍ تحت النواة متساوٍ. توقَّع استجابة Sobel-x هناك قبل أن تقرأها.

المتوقّع

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

6 / 10
ML 101
M7 · تجربة
الخطوة 5 من 6
ReLU يُصفِّر السوالب

لخريطة Sobel خلايا سالبة أيضًا (حافةٌ من ساطعٍ إلى مظلم). ReLU(x) = max(0, x) يقصُّ كل سالبٍ إلى 0 ويترك الباقي. خذ الخريطة الصغيرة [-3, 0, 2.5, -0.1] وتوقَّع كم خلية منها يجعلها ReLU صفرًا.

المتوقّع

ReLU([-3, 0, 2.5, -0.1]) = [0, 0, 2.5, 0]: الخليتان السالبتان (-3 و-0.1) تصبحان 0، فتُصفَّر 2 خليتان، بينما تبقى القيمة الموجبة 2.5 دون مساس. هذه اللاخطّية هي ما يُتيح لكومة طبقات أن تتعلّم أكثر من خريطةٍ خطّيةٍ واحدة كبيرة.

7 / 10
ML 101
M7 · تجربة
الخطوة 6 من 6
max-pool يأخذ الأقصى لا المتوسّط

أخيرًا، جمِّع الكتلة 2×2 [[1, 7], [3, 2]] بنافذة 2×2. توقَّع القيمة الواحدة التي يُرجِعها max-pool — ولاحِظ أنّها ليست المتوسّط، 3.25.

المتوقّع

يُرجِع max-pool القيمة 7، أكبر قيمة في الكتلة — لا المتوسّط 3.25. إبقاء الأقصى يجعل خريطة السمات تُبلِّغ عمّا إذا ظهرت سمةٌ في أيّ موضعٍ من كل كتلة، ويمنح تسامحًا بسيطًا مع موضعها بالضبط.

8 / 10
ML 101
M7 · تجربة
دورك الآن
افتح المِنصّة

كل ما سبق ينتظرك في المِنصّة. بدِّل النوى لترى Sobel-y يُطلِق عند الحواف الأفقية وLaplacian عند أيّ حافة، وغيِّر النمط والحشو لتراقب أحجام الخرائط تتبع الصيغة، وكدِّس طبقة conv ثانية لترى الخريطة تتقلّص من جديد.

9 / 10
ML 101
M7 · تجربة
خلاصة
ما أنجزتَه
  • حسبتَ حجم التفافٍ valid بحجم 3×3: 16 → 14
  • نصَّفتَه بـmax-pool 2×2: 14 → 7
  • قرأتَ Sobel-x = 4 عند حافةٍ رأسية و0 حيث تكون مسطّحة — كاشف حوافٍ حقيقي
  • راقبتَ ReLU يُصفِّر الخليتين السالبتين من [-3, 0, 2.5, -0.1]
  • رأيتَ max-pool يُرجِع 7، أقصى الكتلة — لا المتوسّط 3.25
  • كل قيمة توقّعتها هي حساب الالتفاف وReLU والتجميع الخاص بالعرض نفسه على نوًى ثابتة، لا صورة تقريبية
10 / 10