ML 101
M07 · L01
الوحدة 7

الـ convolution للصور

الصور شبكات منظّمة من الأرقام. والـ convolution (الالتواء) بيستغل التنظيم ده — بيعدّي filter صغير على الصورة كلها عشان يكشف الـ patterns في أي حتة، بعدد parameters أقل بكتير من الـ fully connected layer.

01 / 11
ML 101
M07 · L01
تمثيل الصورة

tensors من الـ pixels

الصورة الرمادي matrix في بُعدين بقيم شدّة من 0 لـ 255. والصور الملوّنة بتزوّد بُعد للـ channel: صورة RGB مقاسها 224×224 هي tensor H×W×C فيه 224×224×3 = 150,528 رقم.

رمادي
H×W×1
ألوان RGB
H×W×3
02 / 11
ML 101
M07 · L01
العملية الأساسية

الـ convolution في بُعدين

filter مقاسه k×k بيتزحلق على الصورة. وفي كل مكان بيحسب الضرب عنصر بعنصر مع الحتة اللي تحته ويجمعه في قيمة output واحدة. ونفس الـ filter بيتعاد استخدامه في كل حتة — الـ weight sharing (مشاركة الأوزان).

الـ cross-correlation
(I * K)(i,j) = \sum_{m=0}^{k-1}\sum_{n=0}^{k-1} K(m,n)\cdot I(i+m,j+n)
03 / 11
ML 101
M07 · L01
إحساس الـ filter

الحواف والتنعيم والتوضيح

  • Sobel — بيكشف الحواف الأفقية أو الرأسية بالفرق بين الأعمدة أو الصفوف اللي جنب بعض
  • الـ Gaussian blur — بياخد متوسط الـ pixels بـ weights منحنى الجرس، فبينعّم الـ noise والتفاصيل
  • التوضيح — بيكبّر الفرق بين كل pixel وجيرانه
  • الـ convolutional networks بتتعلّم filters شبه جابور لوحدها — حواف في الـ layers الأولى، وملامس وأجزاء في الأعمق
04 / 11
ML 101
M07 · L01
الـ stride

التحكم في الخطوة

الـ stride (الخطوة) s بتخلّي الـ filter ينط s pixels بين الأماكن. الـ stride 2 بينصّ دقة الـ output في لفّة واحدة — downsampling بيتعلّم. والـ architectures الحديثة كتير بتستخدم الـ strided convolutions بدل layers الـ pooling.

حجم الـ output (من غير padding)
(H − k) / s + 1
05 / 11
ML 101
M07 · L01
الـ padding

الحفاظ على الحجم المكاني

من غير padding كل convolution بيقلّص الـ feature map بمقدار k−1. والـ same padding بيزوّد p = (k−1)/2 أصفار من كل ناحية عشان الـ output يطابق الـ input. والـ valid padding معناه مفيش أصفار خالص. ده الـ padding (الحشو).

معادلة حجم الـ output
H_{\text{out}} = \left\lfloor \frac{H - k + 2p}{s} \right\rfloor + 1
06 / 11
ML 101
M07 · L01
الـ pooling

التلخيص المكاني

  • الـ max pooling — بيحتفظ بأعلى activation في كل شباك 2×2؛ يعني بأقوى المزايا
  • الـ average pooling — بياخد المتوسط؛ بيحتفظ بالمعلومات المتفرّشة
  • الـ global average pooling — بيضغط الـ feature map كلها لقيمة واحدة لكل channel، وبياخد مكان layer الـ flattening الكبيرة
07 / 11
ML 101
M07 · L01
الـ receptive field

الـ neuron بيشوف لحد فين؟

رص L layers من convolutions k×k بيدّي كل neuron في الـ output receptive field (مجال استقبالي) فعلي مقاسه [L(k−1)+1]². الـ layers الأولى بتشوف حواف محلية؛ والـ layers العميقة بتدمج الصورة كلها. والـ pooling بيسرّع النمو.

الـ receptive field الفعلي
\text{RF} = L(k-1)+1
08 / 11
ML 101
M07 · L01
ليه بيشتغل؟

تلات inductive biases

  • الـ local connectivity — الـ patterns اللي ليها معنى محلية؛ والـ pixels البعيدة مبتتشاركش معلومات
  • الـ weight sharing — نفس كاشف الحواف بيشتغل في كل حتة في الصورة
  • الـ translation equivariance — إزاحة الـ input بتزيح الـ feature map؛ والشبكة بتعيد استخدام الكاشفات في كل الأماكن
09 / 11
ML 101
اختبار سريع

شوف إيه اللي ثبت

أربع أسئلة من الدرس ده. جاوب عشان تشوف السبب — الشرح بيظهر سواء جاوبت صح أو غلط. ونتيجتك مش بتتحفظ.

السؤال 1 من 0
النتيجة 0/0

10 / 11
ML 101
الخلاصة
مراجعة

اتعلّمت إيه

الصور tensors شكلها H×W×C. الـ convolution بيعدّي filter k×k مع weight sharing عشان يكشف الـ patterns المحلية. الـ stride بيتحكم في حجم القفزة؛ والـ padding بيحافظ على الأبعاد المكانية. والـ max pooling بيلخّص كل منطقة. ورص الـ layers بيكبّر الـ receptive field. وتلات biases — المحلية، والـ weight sharing، والـ equivariance — بيخلّوا الـ convolutional networks فعّالة بشكل فريد في الـ computer vision.

الدرس الجاي
11 / 11