الـ convolution للصور
الصور شبكات منظّمة من الأرقام. والـ convolution (الالتواء) بيستغل التنظيم ده — بيعدّي filter صغير على الصورة كلها عشان يكشف الـ patterns في أي حتة، بعدد parameters أقل بكتير من الـ fully connected layer.
tensors من الـ pixels
الصورة الرمادي matrix في بُعدين بقيم شدّة من 0 لـ 255. والصور الملوّنة بتزوّد بُعد للـ channel: صورة RGB مقاسها 224×224 هي tensor H×W×C فيه 224×224×3 = 150,528 رقم.
الـ convolution في بُعدين
filter مقاسه k×k بيتزحلق على الصورة. وفي كل مكان بيحسب الضرب عنصر بعنصر مع الحتة اللي تحته ويجمعه في قيمة output واحدة. ونفس الـ filter بيتعاد استخدامه في كل حتة — الـ weight sharing (مشاركة الأوزان).
الحواف والتنعيم والتوضيح
- Sobel — بيكشف الحواف الأفقية أو الرأسية بالفرق بين الأعمدة أو الصفوف اللي جنب بعض
- الـ Gaussian blur — بياخد متوسط الـ pixels بـ weights منحنى الجرس، فبينعّم الـ noise والتفاصيل
- التوضيح — بيكبّر الفرق بين كل pixel وجيرانه
- الـ convolutional networks بتتعلّم filters شبه جابور لوحدها — حواف في الـ layers الأولى، وملامس وأجزاء في الأعمق
التحكم في الخطوة
الـ stride (الخطوة) s بتخلّي الـ filter ينط s pixels بين الأماكن. الـ stride 2 بينصّ دقة الـ output في لفّة واحدة — downsampling بيتعلّم. والـ architectures الحديثة كتير بتستخدم الـ strided convolutions بدل layers الـ pooling.
الحفاظ على الحجم المكاني
من غير padding كل convolution بيقلّص الـ feature map بمقدار k−1. والـ same padding بيزوّد p = (k−1)/2 أصفار من كل ناحية عشان الـ output يطابق الـ input. والـ valid padding معناه مفيش أصفار خالص. ده الـ padding (الحشو).
التلخيص المكاني
- الـ max pooling — بيحتفظ بأعلى activation في كل شباك 2×2؛ يعني بأقوى المزايا
- الـ average pooling — بياخد المتوسط؛ بيحتفظ بالمعلومات المتفرّشة
- الـ global average pooling — بيضغط الـ feature map كلها لقيمة واحدة لكل channel، وبياخد مكان layer الـ flattening الكبيرة
الـ neuron بيشوف لحد فين؟
رص L layers من convolutions k×k بيدّي كل neuron في الـ output receptive field (مجال استقبالي) فعلي مقاسه [L(k−1)+1]². الـ layers الأولى بتشوف حواف محلية؛ والـ layers العميقة بتدمج الصورة كلها. والـ pooling بيسرّع النمو.
تلات inductive biases
- الـ local connectivity — الـ patterns اللي ليها معنى محلية؛ والـ pixels البعيدة مبتتشاركش معلومات
- الـ weight sharing — نفس كاشف الحواف بيشتغل في كل حتة في الصورة
- الـ translation equivariance — إزاحة الـ input بتزيح الـ feature map؛ والشبكة بتعيد استخدام الكاشفات في كل الأماكن
اتعلّمت إيه
الصور 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.