Introduction_to_CNN__Lecture_6_-_Ahmed_Ali_(720p_h264)
بسم الله الرحمن الرحيم بإذن الله دي المحاضرة السادسة Data Science المحاضرة السادسة واللي بعدها بنتكلم عن CNN وبعد كده برضو هناخد الـ RNN أول حاجة CNN هو بيتكلم عنها introduction نظري بعد كده هنخش في المسائل فـ introduction سريع يعني بيقول لي عنيه CNN 
CNN هو عبارة عن إن أنا بستخدم الـcomputer vision عشان أ simulate الvision بتاع الإنسان
يعني إيه؟ يعني إن أنا أشوف حاجة بعيني، أبتدي أعرف ده إيه، أبتدي أعملها Detect، أعرف أشوف Object قدامي أعرف إن ده Object، مثلاً أشوف مثلاً طرابيزة قدامي أعرف إن دي طرابيزة، أشوف باب قدامي أعرف إن ده باب. فـأنا هنا بـ Simulate الوعي بتاع الإنسان والـ Vision بتاعه، سواء كان Video أو Audio، أي حاجة.
صورة كلب، صورة قطة، الكلام ده كله. وخصوصاً الـ CNN بيتعامل مع الصور بشكل كبير جداً يعني، بس طبعاً برضه في الـ Object Detection بستخدمه في الـ Segmentation، بستخدمه في الـ Classification، إن هو ببتدي أشوف كل صورة تبع إنهو Class وأبتدي أجمعهم في Clusters وكده أجمعهم مع بعض.  بس دي فايدة الـ CNN إن أي حاجة فيها صور أو Videos، فـالـ CNN هتنفعني جداً.
تمام. طيب هنا بيقول لي برضو الـ CNN هي برضو مختلفة عن الـ Data اللي إحنا كنا متعودين عليها بتاعت اللي هي الـ Tables والـ Rows والـ Columns. لا، هي بيقولي إن الـ CNN عبارة عن Matrix، 
Matrix بناخد فيها الـ Pixels بتوع الصور، وهنبتدي نخش في التفاصيل بتاعتها واحدة واحدة يعني. بس يعني هي بيقولي إن هي بيبقى فيها Weights  بنبتدي نتعلم برضو فيها.
بس. وبرضو زي ما قلنا إن هي معتمدة على الصور إن هي بتشتغل على الصور، وبتبتدي تعمل لي Detection وبتبتدي تعمل لي Classification والكلام ده كله يعني. ده نظري يعني في الأول، بعد كدة برضو بيقول لي هنا الصورة بتبقى جاية لي كـ Input كدة، تمام؟ ببتدي أعمل عليها حبة Layers أطبقها عليها.
وفي الآخر بطلع الـ Output بتاعي، يعني بص الـ Output هنا مثلاً طلعلك Car ولا مش عارف Plane ولا إيه، بيبتدي يطلعلك الـ Output بتاعك زي ما كنا بإيه.. بنعمل Classification. 
فالـ CNN بنستخدمه في الـ Classification أهو. المهم اللي بيحصل ده كله جوه هنبتدي ناخده واحدة واحدة بالتفصيل المحاضرة دي والمحاضرة الجاية، تمام؟ طيب، 
النهاردة هناخد الـ Convolution.
و الـ ReLU، و الـ ReLU بس. ومن أول المرة الجاية تقريباً هناخد الـ Pooling والـ Flatten 
والـ Fully Connected والاخيرة دي الـ Softmax. ماشي، بس المهم الـ Convolution دي عبارة عن إيه؟ دي الـ Step اللي أنا ببتدي أحدد فيها الـ Features المهمة في الصورة وأبتدي أركز عليها، أبتدي أركز مش عارف على الدوران ده بتاع العربية، أبتدي أركز على العجل بتاع العربية، عشان أبتدي أعرف هي- نوع العربية مثلاً.
فـالـ Convolution هي الـ Step اللي أنا ببتدي أحدد فيها الـ Features المهمة، تمام؟ تمام. طيب هو بيقولك ليه أصلاً إحنا بنستخدم الـ CNN مبنستخدمش الـ Neural Network العادية اللي هي كانت إحنا واخدينه هو مش عارف Neurons وأبتدي أوصلهم بـ Neurons جنبها؟
 اللي هي الـ Neural Network اللي هي الـ Forward العادية، أبتدي أوصلهم ببعض والكلام ده كله.
اللي هو بالشكل يعني اللي إحنا إيه عارفينه. بيقولي ليه بستخدمها بشكل Matrix؟ بستخدمها بشكل Matrix لسبب، بيقولك لو إنت جالك Matrix كدة مثلاً 3 في 3، 
ومع إن مفيش صورة 3 في 3 بس إحنا بنفترض، فإنت عشان تشتغل عليها بالشكل ده إنت لازم تحولها 1D Array، 
مش هينفع تشتغل معاها بالشكل ده. فعشان تحولها 1D هتخليها 9 في 1.
في واحد، 9 Rows وفي Column واحد،
 فإنت كدة حولتها إيه Vector 9 في 1 فإنت كدة عملت إيه.. كدة كبرت الإيه؟عدد الـ Rows. 
طب ده مفيش صورة 3 في 3، بيقولك طيب لو الصورة مثلاً 68 في 68 في 3 
 68 و 68 ده اللي هو الـ Width والـ Height و3 دول اللي هو إيه الـ 3 Channels بتوع الـ RGB، يعني صورة ليها ألوان.
Red و Color و Green 
Color إيه! Red و Green و Blue، تمام؟ دول التلاتة Channels بتاعتها،
 و 68 في 68 الـ Width والـ Height. فبيقولك إن إنت برضو عشان تشتغل عليها بالـ Neural Network العادية اللي هي الـ Feed Forward Neural، إنت هتحولها لـ 1D Array بس المرة دي مش حجمه 9، المرة دي حجمه 13,800.
طيب بيقولك طيب لو الصورة.. لو الصورة أكبر شوية؟ يعني 68 في 68 ده رقم صغير، طب لو مثلاً 720 في 720 في 3
هتلاقي إن إنت عندك الدنيا بقت أصعب والدنيا هتاخد وقت أكبر، تمام؟ ففايدة الـ CNN إن أنا بيبقى عندي Matrix ببتدي أشتغل عليها Parallel لو أنا عايز، أبتدي أشتغل عليها باستخدام
 الـ GPU.
الـ GPU قبلها كان بيحصل مشاكل إن أنا مش بعرف أشتغل غير على صور الـ Resolution بتاعتها قليلة جداً، فكانت الـ GPU هي اللي حلت لي المشكلة دي بشكل كبير جداً، إنها سريعة، فيها حاجات بتشتغل كتير مع بعض في نفس الوقت، فدي سرعت الدنيا جداً يعني. ماشي؟ طيب الـ أ أهمية الـ CNN بيقولي إن أهميتها إن أنا أبتدي..
الصورة بتاعتي بأبعادها كبيرة الـ Resolution بتاعتها أكبر وبرضه الـ Complexity لسه 
ما زادتش، ليه؟ لأن إحنا قلنا إحنا بنشتغل على إيه؟ بنشتغل على Matrix، الـ Matrix هنا أنا حطيتها في Matrix مثلاً إيه 50 في 50 مثلًا
ابتدي ممكن أشتغل عليهم Parallel مع بعض أبتدي أسرع العملية بتاعتي.
غير لما اكون مشغلهم اصلا الي هو  الـ Neural Network العادية تمام؟ وتخيل بقى في الـ Neural Network العادية مثلاً إنت عايز مش عارف تطبق مش عارف Activation Function والحسابات دي كلها تطبقها في كل Step، فإنت هتلاقي الدنيا بقت معقدة أكتر، ومثلاً عايز تعمل مثلاً عندك عندك مثلاً 13,000 مثلاً Neuron مثلاً.
وعايز توصلهم باللي بعدهم، فشوف إنت هيبقى عندك كام Connect وكام Weight وكام هتضرب عملية في بعضها، فإنت هتلاقي الحسابات ابتدت تتعقد جامد، تمام؟ فـالـ CNN حلت لي ده كله، ماشي؟ و دي Introduction نظري يعني. طيب هنا بقى الـ Applications بتاعتها، الـ Applications بتاعتها أي حاجة فيها صور أو Videos يعني عموماً، زي إيه؟ زي اللي هو
تبدي تتعرف على الوش بتاع الإنسان بيستخدموها في اللي هو-
فأي نظام فيه Attendance وكده، أبتدي أعرف مثلاً مين اللي جه ومين اللي ما جاش، أو لو في حد غريب من برا الـ System مثلاً، ببتدي أتعرف مثلاً على ملامح الإنسان، ببتدي أ Detect وأقول آه ده أعرفه مثلاً أو لأ ده ما أعرفهوش ده غريب مثلاً، فيبتدي ينبه الناس يعني. بستخدمه برضه في الـ Medical، أي حاجة فيها أمراض، و Detection سواء X-ray، أشعة...
يكتشف المرض، يعمل لهم Classification، أي مرض بقى عموماً بستخدم فيها الـ CNN. بستخدمه في الـ Document Analysis اللي هو مثلاً Handwriting Analysis اللي هو مثلاً حاجة مكتوبة بخط الإيد، الإمضاء مثلاً، عايز أعرف دي إمضاء مين مثلاً، الحروف مثلاً، عايز أعرف ده حرف إيه، الكلام ده كله. ففايدة الـ ...
الـ CNN ببتدي... ببتدي أعرف كل Document اللي جواه إيه وأبتدي أعمله برضه Detection. تمام، فدي برضه فايدة من فوائد الـ CNN. الـ Autonomous Driving اللي هو ببتدي أشوف مثلاً في العربيات مثلاً لو في مثلاً حاجة قدام مثلاً في... في حاجة قدام مثلاً ممكن...
تعوق الطريق مثلاً يعني، زي مثلاً كلب مثلاً معدي، ممكن أقف أو إيه.. إشارة مرور مثلاً، الكلام ده كله. فهي أي حاجة فيها صور أو Videos هي الـ CNN هتنفعنا جداً يعني، تمام؟
 في حوار الـ Detection يعني. هنا الـ Biometric Authentication، الـ Biometric Authentication دي حاجات فيك إنت، في الإنسان نفسه اللي هو مثلاً...
العين، ال- بصمة الوش، بصمة الإيد، الكلام ده كله. فببتدي أتعرف على الإنسان باستخدام الحاجات اللي هي فيه.. يعني.. يعني بصمة العين مثلاً مش هتتكرر، بصمة الصباع مثلاً مش هتتكرر، الوش بتاع الإنسان برضو نفس الكلام. فبرضو ممكن نستخدمها في حاجة زي كدة لو عوزنا مثلاً Application محدش يخش مثلاً غير ببصمة مثلاً إيد.
فممكن نطبق برضه فيها الـ CNN وهكذا. طيب، الـ Image بقى عموماً.. إحنا عمالين نقول
 الـ CNN هيشتغل على Image، طب الـ Image دي بتكون عبارة عن إيه؟ الـ Image زي ما إحنا عارفين هي بتبقى عبارة عن تلاتة Channels، Channel للـ Red، و Channel للـ Green، و Channel للـ Blue، وببتدي أجمعهم مع بعض يطلعلي الصورة بتاعتي. ده فعلاً اللي بيحصل، هو عندي هنا RGB.
ببتدي أجمع الـ Channel بتاعتي الـ Channels بتاعتي وأبتدي أجيب الصورة، تمام؟ 
ماشي، طيب الصورة قلنا بتبقى عبارة عن إيه؟ عن Matrix. فـأنا عندي مثلاً الصورة مثلاً 50 في 50 أو مثلاً الصورة دي هنا مثلاً عندي 4 في 4، تمام؟ هنا الـ Pixels 4 في الـ Height
 و4 في الـ Width، تمام؟
في 4.. 4 في 4 في الـ Red و4 في 4 في الـ Green و4 في 4 في الـ Blue. تمام؟ فإحنا عندنا.. لو مثلاً عندنا الصورة دي، يبقى دي الصورة بتاعتي أبعادها كام؟ 4 في 4 في . ليه في 3؟ عشان واحدة للـ Red وواحدة للـ Green وواحدة للـ Blue. وهكذا بقى لو الصورة كبرت. عايزين نشوف بقى الـ Operations بتاعة الـ CNN اللي إحنا قلنا النهاردة هناخد منها Convolution عشان هي أكتر حاجة...
فيها حسابات وهناخد فيها الـ Activation Map. والـ Activation Map دي حاجة بتحصل بعد الـ Convolution على طول، تمام؟ اللي هو بطبق الـ Activation Function يعني. بس أهم حاجة الـ Convolution هنبتدي ناخدها واحدة واحدة بالتفصيل النهاردة في محاضرة النهاردة، تمام؟ الباقيين بقى الـ Pooling والـ Flatten والـ Fully Connected Layer هنقولهم المرة الجاية في المحاضرة الجاية، بس عموماً هي عبارة عن إن أنا ببتدي آخد...
اللي أنت خلصته، اللي أنت خلصته من عملية الـ Extract وعملية إن أنت عرفت الـ Features المهمة، هبتدي آخده، أجهزه عشان يخش للـ Neural Network العادية، وأبتدي إيه.. أعمل Classification. ده فايدة إيه.. اللي هو الحاجات اللي جاية. ماشي، اللي هي الـ Flatten
 والـ Fully Connected Layer. وبرضو الـ Pooling هنقول أهميتها برضو ايه المرة الجاية، بس إيه.. نمشي واحدة واحدة عشان إيه.. الدنيا تبقى...
لذيذة، تمام. طيب الـ Convolution Neural Network أو الـ Convolution Layer، وهو دول كلهم Layers يعني كل حاجة من الحاجات دي Layer. تمام، فالـ Convolution Layer هي الـ Layer المسؤولة عن إن هي تـ Extract الـ Information المهمة وتطبق Filters على الصور بحيث إنها إيه تـ Detect الـ Feature المهمة اللي في الصورة.
فهي الـ Step بتاعتها إن هي بتـ Detect الـ Features. طب الـ Features دي ممكن تكون عبارة عن إيه؟ ممكن تكون Image، ممكن تكون Edge، مثلاً مثلاً صورة مثلاً سودا وفيها حاجة بيضا مثلاً ظهرت في نفس الوقت. مثلاً أسود أسود وفي Pattern مثلاً أبيض مثلاً. صورة معينة، وهنشوف مثلاً أمثلة برضو. فهي ممكن Edge مثلاً ممكن يـ Detect حاجة زي كدة، الـ Border...
الـ Shape، شكل الصورة نفسها، النسيج برضو بتاع الصورة، الـ Objects، الـ Circle، أي حاجة متعلقة بالصور يعني.. هي عبارة عن إنها بتفصل.. بتفصص الصورة واحدة واحدة. وهنأخد برضه أمثلة بالتفصيل للصورة.. للصور يعني، بس عموماً بيقولي إيه؟ بيقولي إن الـ Convolution Layers...
هي زي أي حاجة، إنت أول أي حاجة في الأول مش بتبقى أحسن حاجة، بعد كدة كل ما بتزود فيها بتبتدي تاخد تفاصيل أكتر، زي الـ Train العادي، يعني الـ Train العادي إنت مثلاً هل أول Epoch مثلاً زي آخر Epoch؟ أو أول أي Train عادي، إنت هل إنت في أي حاجة بتبقى زي الأول زي الآخر؟ لأ. فالـ CNN...
في الأول، أول كم Layer في الـ Convolution Layer هي بتركز على الـ Low-level features، اللي هي الحاجات الـ Low أوي، اللي هي حاجات مثلاً تعرفلك مثلاً لون الصورة دي إيه، لون الأبعاد، الـ- عموماً شكل الصورة عامل إزاي. لكن لما بتخش تتعمق، تطبق Layers أكتر بتبتدي بقى تـ Detect بقى، تـ Detect الحاجات بقى بشكل أحسن
 وتـ Extract الـ Feature بشكل أحسن.
زي إيه مثلاً؟ زي مثلاً تـ Detect مثلاً صورة العين مثلاً جاية كدة، الـ مش عارف المناخير مش عارف مالها مثلاً لو.. مثلاً بتتعامل مع صور قطط وكلاب، الكلام ده كله فإنت بتبتدي تـ Detect 
الـ Object بشكل إيه Specific وبشكل أحسن يعني. تمام؟ لكن الحاجات اللي في الأول هي مجرد بس بتعرفلك اللون والمش عارف الـ Borders الكلام ده كله، لكن اللي بعد كدة تبتدي تتعمق اكتر.
طيب نخش في الـ Operations اللي ممكن نعملها. أول Operation عندنا إن أنا بطبق
 الـ Filters عشان أجيب الـ Feature Map. طب حاجة زي كدة بتطبق إزاي؟ هناخدها بمثال بعد كدة نرجع للـ Slides دي. أول حاجة لو أنا عندي صورة 5 في 5، تمام؟ نتفق إن هي Grayscale، هناخدها إنها Grayscale دلوقتي، لو هي RGB كان هيبقى في Layers ورايا، فـناخدها إنها Grayscale دلوقتي.
تمام فعندي صورة كام؟ 5 في 5، ماشي؟ وعندي Filter، الـ Filter ده هو المسؤول
 إن هو.. بعرف منه الـ Features المهمة. يعني هتقولي إزاي تضرب أرقام في بعض تعرف
 الـ Features المهمة، هوريك برضه مثال تحت. بس المهم الـ Filter ده بيعمل إيه؟ 
الـ Filter دلوقتي بيمشي على الصورة واحدة واحدة.
وببتدي إيه أضربهم في بعض وأطلع إيه أرقام جديدة، يعني إزاي؟ 
بوقف الـ Filter اللي هو 3 في 3 ده على أول 3 في 3 في الصورة. 
تمام؟ على أول 3 في 3 إيه في الصورة، تمام؟ وأبتدي أضرب الـ 1 في الـ 7، الـ 0 في الـ 2،
 الـ -1 في الـ 3، الـ 1 في الـ 4، الـ 0 في الـ 5 وهكذا أخلص ضربهم وأجمعهم مع بعض أجيب
 الـ Summation وأجيب الـ 6، كدة بجيب أول حاجة في الـ Feature Map، يعني حاجة بعرف منها الـ Features اسمها الـ Feature Map أبتدي أجمع فيها إيه ناتج..
ضرب الـ Filter في الـ.. في الصورة بتاعتي. أنا كدة خلصت أول Step، والناتج اللي هيطلع هحطه في أول Cell. طيب باقي الحاجات ممكن أعمل إيه؟ همسك نفس الـ Filter زي ما هو مش هغير فيه، وأقوم عامل إيه؟ وأقوم محرك الـ Filter Step
 وهنعرف اسم الـ Step برضو ايه قدام شوية اسمها إيه.
وأمسك الـ Filter برضو نفس الكلام، أضرب 1 في 2، 0 في 3، -1 في 3، السالب 1 في 5، 03 في 5، وأجيب الـ Summation برضو بتاعهم، وليكن مثلاً الـ Summation مثلاً طلع واحد، فأقوم كاتب الـ 1 هنا. وهكذا، أقوم محرك الـ Filter Step كمان. يخلص، أقوم منزله مثلاً Step كدة، وأمشيه برضه وهكذا. تمام؟ فده فكرة الـ Filters عموماً.
اللي هبتدي أضربها في إيه.. في الصورة بتاعتي، وأبتدي أطلع الأرقام بتاعة الـ Feature Map. والـ Feature Map دي قلنا إيه؟ ده الـ Results بتاع ضرب الـ Images في الـ Filters. تمام؟ تعالوا نرجع تاني، هنا بيقولك إن هو بيبتدي يمشي الـ Filter.. يمشي الـ Filter اللي هو.. هو هنا عنده الصورة باللون الأزرق، والـ Filter مثلاً ملونه باللون الأخضر فهو يعتبر واقف الـ...
الـ Filter على الصورة، تمام؟ بس الأزرق اللي ورا مش باين، تمام؟ فبضرب الأزرق.. كل قيمة Filter في القيمة اللي قصادها في الصورة، وهكذا، كل قيمة Filter في القيمة اللي قصادها في الصورة، وبيجمعهم ويجيب الناتج الـ Summation يحطها في الـ Feature Map. عشان كدة شرحتها بس إيه.. على الصورة اللي تحت عشان بأرقام أسهل يعني، هنا مش موضحة أوي، تمام؟ بعد كدة المهم بخلص، بقوم محركها Step.
يمين، من يمين للشمال، تمام؟ من يمين للشمال وهكذا وهكذا، وخلصت الـ Step أقوم رايح 
للـ Step اللي بعدي أملى ده بعد كدة أملى ده بعد كدة أنزل تحت أعمل Step كمان، ماشي؟ و اقوم مالي ده وهكذا وأحركه Step وهكذا لحد ما أملى الـ Feature Map كلها، تمام؟ ماشي. بيقولي الـ Feature Map هي Matrix...
الـ Result بتاعت الـ.. بتاعت الـ.. بتاعت الـ ضرب الـ Input في الـ Filter، دي حاجة برضو مهمة في الـ MCQ ونظري وكدة. الـ Feature Map هي ناتج الـ Result بتاعت ضرب الصورة في
 الـ Filter، تمام؟ ماشي. إيه تاني؟ بس هنا مفيش حاجة تاني، هو بيوضحلك برضو لما بيجي يمسك الـ Filter...
يضربه في الصورة، ماشي؟ وبيطلع إيه.. الـ Feature Map، تمام؟ بيقولك الـ Filter ده هو ده الوسيلة الوحيدة اللي هبتدي أعرف بيها الـ Features المهمة اللي في الصورة وأبتدي أعملها Extract. طيب، بيقولك طب في أنواع Filters ممكن تحددلي حاجات معينة في الصورة؟ 
أه في حاجات ممكن تحددلي حاجات معينة في الصورة، إزاي؟ هناخد شكل الـ Output بس دلوقتي.
بعد كدة نشوف الـ Filters أنواعها إيه، تمام؟ طيب، إيه شكل الـ Output اللي أنت بتقول عليه؟ شكل الـ Output اللي هو بتاع الـ Feature Map، بتاع إيه.. الـ Feature Map، تمام؟ أنا دلوقتي عرفت منين إن هو 3 في 3؟ إنت عرفت إن هو 3 في 3 عشان مكتوب 3 في 3، بس أنا مثلاً لو مش جايبلك ده مثلاً، وجايبلك مثلاً.. جالك مثلاً مسألة في الامتحان
 قالك طبق الـ Filter وإداك Matrix بتاعة صورة وقال لك طبق الـ Filter ده.
هتعرف منين إنه هو 3 في 3؟ هتعرف منين؟ أكيد لازم يكون فيه Equation بتعرف منها شكل
 الـ Output وتبتدي تملاها واحدة واحدة، تمام؟ فعشان تعرف شكل الـ Output بتاع
 الـ Feature Map بتعرفه منين؟ بيقولك n ناقص f +1. إيه الـ n وإيه الـ f ؟ الـ n اللي هو شكل الـ Input Shape والـ f ده اللي هو حجم الـ Filter برضه. فإنت بتطرح 5 ناقص 3 ؟ بـ 2 + 1؟...
+1 كدة 3 فإنت عرفت إنه 3 في 3 زي ما هو معمول هنا. 
جالك مثلاً حاجة 7 في 7 والـ Filter مثلاً 5 في 5، فتقول 7 ناقص 5 + 1 يبقى تطلع 3 في 3 وهكذا. كل مرة تشوف الرقم بتاع الـ Input تطرحه من الـ Filter وتزود عليه واحد، ويطلعلك شكل الـ...
شكل الـ Feature Map، تمام؟ طيب هل دي الـ Equation اللي هتفضل مكمله معانا لحد الآخر؟ لأ، يعني الـ Equation دي بيحصل فيها Updates وإحنا هنمشي واحدة واحدة. بس لحد دلوقتي إن أنا ببتدي أطرح الـ Input ناقص الـ Feature map وأزود عليهم واحد، تمام؟ ماشي. تاني.. تاني.. تاني.. هيعمل إيه؟
هيمسك الصورة بتاعتي اللي هي كام المرة دي؟ 5 في 5، وهيبتدي يطبق عليها الـ Filter، هيضرب الـ 1 في 1، والـ 1 في 0، والـ 1 في 1، وهيبتدي يجمعهم ويجيب الـ Result بتاعتهم وجابلي الـ Result اللي هي بـ 4، تمام؟ وهكذا يبتدي يحرك الـ Filter من يمين للشمال.
sorry، من الشمال لليمين، بعد كدة إيه.. يمشي الـ Filter الـ Step اللي بعدها يضربه برضو في الصورة ويجمعهم ويحط الـ Result فين؟ في المكان بتاعها. تمام؟ ماشي. طيب، بيقولك بقى إنت قولتلي أنواع الـ Filter ممكن توضح حاجات معينة، طب إزاي؟ بيقولك صورة زي كدة...
في عندنا مثلاً أنواع Filter مثلاً Filter اسمه Horizontal أو Filter اسمه Vertical. 
Filter اسمه Horizontal ده بيوضحلي الحاجات اللي هي بتبقى إيه بشكل Horizontal. 
مش عارف تبقى واضحة أوي ولا لأ.. بيوضحلي الحاجات اللي هي بشكل Horizontal تمام؟ اللي في الصورة نفسها. طيب والـ Vertical؟ Filter معين ليه أرقام معينة بضربه بالصورة بيوضحلي الحاجات الـ Vertical في الصورة.
ببتدي يوضحها لي، زي إيه؟ زي الصورة هنا زي ما أنت شايف الخطوط دي هو محددها لي هنا عملها Detect بشكل إيه واضح جداً.
 طيب عايزين مثال أحسن.. فيه أمثلة كتير، زي الـ Edge Detection.. الـ Edge Detection اللي هو بيـ Detect الحواف بتاعة الصورة، تمام؟ بيـ Detect الحاجات الحواف ويخليها مثلاً باللون الأبيض والباقي بالأسود، وهكذا يعني.
طيب مثال برضو للـ Filters تعالوا بقى هنشوف أنواع الـ Filter والـ Edge Detection اللي هي بـ Detect الحواف بتاعتك. لو عندنا مثلاً صورة 6 في 6، 6 في 6 أه، تمام طبقت عليها Filter في 3 في 3، طيب قبل ما نقول لو أنا طبقت 6 في 6 على 3 في 3 شكل الـ Output shape بتاع الـ Filter.. بتاع الـ Feature Map هيبقى عامل إزاي؟
هتقول 6 ناقص 3 + 1 هيطلعلك كام؟ 6 ناقص 3 .. 3 + 1 هيبقوا 4، يبقى شكل الـ Output هيطلعلك كام؟ 4 في 4، هو طلع هنا 4 في 4 فعلاً فإحنا عرفناها من غير إيه؟ من غير ما يعملها. تمام؟ طيب هيبتدي يضرب برضه كل قيمة في اللي قصادها، كل قيمة في اللي قصادها، كل قيمة في اللي قصادها ويجمعهم تمام؟
بيقولك إن الـ Filter ده، Filter معين بستخدمه عشان أبتدي أ Detect الـ Edges يعني، تمام؟ الأرقام اللي في الـ Filters مش حفظ أكيد هو بس إنت بتبقى عارف إن في أنواع من
 الـ Filters بتعمل Operations معينة يعني. تمام؟ ماشي؟ ببتدي أضرب كل قيمة في اللي قصادها وأجمعهم...
وأحط القيمة إيه.. أجيب الـ Summation بتاعتهم وأحط هنا الـ Summation. تمام؟ ماشي. طيب طيب طيب.. هنا عمال برضه يرغي بيقولك بعد ما خلصنا أول Step، 
ببتدي أعمل Shift للـ Filter على الصورة، Shift يمين، وأضربهم في بعض وأجيب الـ Result برضو أحطها في القيمة اللي بعدها، القيمة اللي بعدها مثلاً هحسبها 4 وهكذا أعمل Shift للـ Filter.
Step، وأقوم ضاربهم في بعض وأيه.. وأجيب الـ Result وأحطها أيه.. هنا. تمام؟ ماشي. طيب.. بيقولك هنا بقى عندنا أيه؟ عندنا Vertical.. Vertical Edge
، Vertical Edge ده بيوضح أيه؟ الـ Edges اللي أيه.. اللي شكلها Vertical في الصورة نفسها. فلو عندي صورة مثلاً...
هنا دي كام في كام؟ 3.. 5.. 8، 8 في 8. 8 في 8 نضربها في 3 في 3، يبقى 8 - 3 = 5، و 5 + 1 = 6، فالـ Output shape بتاع الـ Feature Map 
6 في 6. تمام، طب إزاي الـ Vertical ده Edge هيوضحلي الحاجات الـ Vertical؟ قولك جرب، إنت لو مسكت ضربت كل قيمة في اللي قصادها في الـ Filter ومشيت.. حركت الـ Filter.
وخلصت مليت الـ Feature Map بيقولك بص شكل.. شكل الـ Map بتاعك بقى عامل إزاي؟ كلها أصفار مثلاً ما عدا دي 30. طب إيه الأرقام دي بتعبر عن إيه؟ الأرقام دي بتعبر عن اللي هو الدرجة بتاعة اللون نفسها، الأسود والأبيض، فإنت عندك من 0 لـ 255 صح؟ فإنت لما بتلاقي مثلاً كلهم بلون معين وفي لون معين بـ 0 مثلاً...
وتبدي تلاقي مثلاً هنا اللون متغير فإنت تعرف إن ده Edge، أو تعرف إن ده ليه Color معين ليه Color مختلفة، فليه Color مختلفة فإنت تعرف إنه هو إيه؟ يعتبر Edge، يعتبر حاجات مهمة في الصورة فتدي تعمل لها Detect زي اللي هو الصورة كان بتاعت إيه.. 
بتاعت الوردة دي وبتاعت البيت ده تبتدي تـ Detect الـ Edges الـ Vertical وبرضو تبتدي
 تـ Detect الـ Edges الـ Horizontal فدي الحاجات دي ممكن تساعدك في الصورة.
في الـ Detection إنت دي الحاجات اللي بتركز عليها. نفس الكلام برضو في الصورة دي فإنت هنا عملت Detect للـ Edges. ماشي. طيب نرجع نفس الكلام.. دي قلناها، هو هنا بقى بيشرحها بيقولك إن هنا الـ Change بتاع الرقم بتاع الـ Pixel هو ده اللي بيحددلك الـ Color اتغير إزاي. وبيقولك إن كل قيمة برضو جت إزاي هناك، نبتدي نضرب كل قيمة في اللي قصادها.
وهكذا، نبتدي نمشي الـ Filter عليهم، نضرب الـ Matrices في بعض، نمشي الـ Filter عليهم وهكذا الكلام اللي إحنا عاملين نعيد فيه، تبتدي تضربهم وتجمعهم وتجيب الـ Result هنا تمام؟ . طيب، لو ده كان الـ Vertical، لو عندك بقى Horizontal، الـ Horizontal Edge بأرقام معينة؛ الـ Zeros هنا مثلاً و -1، -1، -1، و 1، 1، 1. لكن الـ Vertical بص كان شكله عامل إزاي؟ 1، 1، 1...
0، 0، 0، -1، -1، -1. هو اتعكس بس فده Horizontal Edge. تمام؟ لو جيت برضو ضربته في
 الـ Matrix دي اللي هي كانت كام في كام؟ 8 في 8، ماشي؟ 
وجيت ضربته هنا في الـ Horizontal فـ 8 في 8، 8 ناقص 3 بـ 5، 5 + 1 بـ 6
 فشكل الـ Output shape بتاعي 6 في 6 تمام؟
ماشي، بتبتدي تضرب كل قيمة في اللي قصادها وجمعتهم وجبت الـ Matrix زي ما إحنا عارفين نجيبها إزاي. بيقولك إنه برضو عندك فيه تغيير من الـ Dark مثلاً للـ Bright، تمام؟ فإنت عندك بيقولك إن فيه تغيير في الصورة، بتبتدي تـ Detect الألوان، بيقول لك لما مثلاً تلاقي حاجات بألوان معينة، تلاقي اللون مثلاً اتغير فتعرف إن فيه Edge هنا، فيه حاجة لون مختلف هنا، فإنت بتـ Detect الـ Edges دي عشان أنت الصورة هنا...
إنت هنا بتسهل على نفسك في الصورة، الصورة جايلك Grayscale فتبتدي تـ Detect الـ Edges اللي فيها. الـ Edges اللي فيها دي اللي هتساعدك في عملية الـ Classification بعد كدة. يعني إحنا ليه بنجيبها؟ عشان الحاجة دي مثلاً هنا في صورة الوردة دي اللي هتعرفك مثلاً نوع الورد. إنت عرفت هنا نوع الوردة منين؟ من الـ Edge Detection. نفس الكلام في
 الـ.. في البيوت مثلاً، تبتدي تـ Detect البيت مثلاً لو إحنا مثلاً شغالين على حاجة تبع البيوت مثلاً بيت معيّن، فإنت عرفت شكله من خلال الـ Edge Detection، فالـ Edge Detection دي حاجة بتساعدك في الـ Classification والـ Detection عموماً.
تمام، ماشي، كدة خلصنا بتاعت الـ Horizontal. فيه أمثلة كمان بيبتدي برضه يطبق.. filter.. filter تاني على صورة تانية، ويبتدي يضربهم في بعض ويديني الـ Result، مثال كمان يعني، تمام. بيقولك بقى إن فيه حاجات بقى، مثال هنا أوضح شوية لو إنت عندك مثلاً...
Vertical.. ده الـ Vertical اللي هو 1، 1، 1 و 0، 0، 0 و -1، -1، -1 اللي هو معدول كدة.
 الـ Horizontal بيبقى مقلوب يعني.. بالعرض تمام؟ بيقولك لو طبقته على صورة 6 في 6، 
إنت 6 في 6 عرفت منين إنها 6 في 6؟ من الأرقام.. يعني دي Zeros كلها، وهنا دي
255 255 أرقام درجة التغير نفسها فدي تحددلك إن فيه لون هنا، فيه لون مختلف عن 
الـ Background.
في لون مختلف عن الـ Background، صح؟ فتبدي تضربه، الـ Filter تمشيه عليها كلها، 
فناتج الـ Feature Map بعد ما تخلص دي كلها هيطلعلك بالشكل ده، فإنت عرفت من الشكل ده إن فيه حاجة هنا متغيرة وحاجة هنا متغيرة. طيب، الـ Vertical Edge ممكن ما يساعدكش أوي، فيه ممكن تاني يساعدك.. الـ Horizontal Edge.. فالـ Horizontal Edge هي أوضح.
أوضح شوية، يعني بص لما قلبتها، -1، -1، -1 و 0، 0، 0 و 1، 1، 1، جيت ضربته في نفس
 الـ Matrix، في نفس الصورة، طلعلك بالشكل ده، فإنت عرفت إنه هو ده هنا رقم 6.
 بالشكل ده إنه هو أقرب.. أقرب للرقم 6، وده اللي بيستخدموه فعلاً في التعرف على الأرقام والتعرف على الكلمات، إن إنت مثلاً بتبقى الصورة جيلك في أبعادها كدة، تيجي تضرب فيها
 الـ Filters عشان تـ Detect الـ Edges، فإنت بتشوفها بقى بعد ما تخلصها، هي هل دي مثلاً لو إنت عندك مثلاً من 1 لـ 9...
إنت عايز تـ Detect مثلاً هي أنهو صورة فيهم.. أنهو رقم فيهم قصدي من 1 لـ 9، فإنت عرفت إنه أقرب شكل للـ 6 فإنت بتبتدي تـ Classify إن ده رقم 6 وهكذا بقى. 
طيب خلصنا الـ.. هنبتدي ناخد الـ Convolution خلاص خلصنا حتة الـ Filters، هنبتدي ناخد بقى الحاجات اللي بتأثر في الـ Convolution برضو.
يعني إحنا خدنا الـ Convolution شغال إزاي، إن إنا ببتدي آخد الـ Filter أضربه في الصورة.
 فعايزين نشوف ايه بقى الـ Parameters .. الـ Hyperparameters
 يعني الـ Parameters أنا ببتدي أغيرها بإيدي لحد ما ألاقي أحسن قيمة ليها. تمام؟ فأول Parameter معانا اللي هو الـ Filter Size. الـ Filter Size اللي هو ممكن أضرب مثلاً\
 Filter مثلاً يكون 3 في 3، وممكن أخليه 5 في 5...
ممكن أخليه 7 في 7 وهكذا، تمام؟ ماشي. فأنا ببتدي آخد الـ Filter أضربه في الـ.. في الصورة، تمام؟ ماشي. تمام؟ وحجم الـ Filter قولنا ممكن يأثر إيه.. في الصورة نفسها، في و quality الصورة، تبتدي أجرب برضه إيه.. حجم Filter مختلف.
تمام، ماشي، Number تاني.. حاجة تانية عدد الـ Filters. يعني إنت ممكن الصورة نفسها بدل ما تطبق عليها Filter واحد تطبق مثلاً عليها إيه.. تطبق مثلاً عليها
 أكتر من Filter حوالي 5 أو 6 Filters في نفس الـ Step، ممكن تطبق عليها إيه أكتر من Filter في نفس الوقت، فعدد الـ Filters اللي إنت هتطبقها على الصورة برضو بيفرق. نفس الكلام الحاجتين بقى بدأت هنا عندنا الـ Padding والـ Stride. يعني إحنا قولنا الـ Filter Size اللي هو حجم الـ Filter نفسه، حجم الـ Filter نفسه ممكن يأثر لو مثلاً 3 في 3...
5 في 5 أو 7 في 7، وقلنا عدد الـ Filters مثلاً ممكن تطبق أكتر من Filter في نفس الوقت. طيب إيه تاني ممكن يتأثر؟ حاجة اسمها الـ Padding وحاجة اسمها الـ Stride، هناخدهم واحدة واحدة عشان نبقى خلصنا حتة الـ Convolution. طيب الـ Padding أول حاجة، أنا ليه بعمل Padding؟ أو إيه فايدة الـ Padding؟ الـ Padding إن هو عبارة عن إن إنت بتضيف Zeros حوالين الصورة بتاعتك.
طب ليه بتضيفها؟ لسببين.. السبب الأول اللي إحنا.. اللي إحنا ممكن مانكونش خدنا بالنا منه هنا، لو إنت مثلاً عندك صورة مثلاً.. صورة مثلاً، الصورة دي جايلك كام؟ 8 في 8. تمام؟ طبقت عليها Convolution layer واحدة بـ Filter واحد 3 في 3، الصورة قلت أبعادها بقت 6 في 6. فكون إن الصورة أبعادها عمالة تقل ده كدة.. ده مش حاجة حلوة، يعني إنت مثلاً جايلك صورة 255 في 255 عايز مثلاً تطبق عليها كام...
10 Layers
 مثلاً Convolution مثلاً، فإنت هتلاقي مثلاً الصورة بقت مثلاً 200، بعد كدة مثلاً بقت 150، بعد كدة بقت 100، الصورة عمالة تقل أبعادها.. عمالة تقل أبعادها.. فكون أبعادها عمالة تقل ده،
 إنت هنا إيه؟ الصورة الـ Quality بتاعتها قلت، فالصورة هنا ما بقيتش أحسن حاجة، إنت الصورة عمالة.. عمالة تفقد منها جزء كل شوية، كل Layer عمال تطبقها إنت عمال تفقد منها جزء في الشكل بتاعها.
يعني هي بدل.. بدل ما كانت 8 في 8 هي بقت 6 في 6. طب إنت مثلاً ده في Layer واحدة، 
لو هطبق أكتر من Layer هتلاقيها إيه.. قلت خالص، فإنت كدة إيه.. بوظت الدنيا. تمام؟ فأول فايدة من فايدة الـ Padding، اللي هو أنا ببتدي أحافظ إن الـ Input اللي داخلي هو هو 
الـ Output اللي داخلي، فأنا كدة إيه.. حافظت على شكل ايه؟ الصورة.
مابوظتهاش، لان هي بتظبطلي الـ Dimension بتاع الصورة نفسها اللي هيخرج، 
اللي هو بتاع الـ Dimension بتاع إيه.. بتاع الـ Feature Map. الـ Feature Map دي اللي قولنا ايه؟ ناتج الـ Result ضرب الـ Input في الـ.. في الـ Filter. طيب، ليها فايدة تاني؟ أه ليها فايدة تاني. بيقولك برضو مثال عندنا.. لو إنت مثلاً مثلاً.. عايزين برضو مثال أسهل شوية، ماشي..
ماشي، لو إنت هتطبق الـ Filter ده على الصورة دي، أول Step هتعمل إيه؟
 ركز بس مع رقم 5 ده.. ماشي؟ ركز مع الرقم 5 ده.. ماشي؟ لو جيت مثلاً ضربت الـ Filter
 3 في 3 جيت ضربته هنا في الصورة، ماشي؟ ضربته تمام وخلصت وجبت الـ Summation وحطيت الـ Result هنا. ماشي؟ جيت الـ Step اللي بعدها.
أو باقي الـ Steps.. تمام؟ باقي الايه الـ Steps. ماشي؟ ونرجع زي ما كنا معلمين على رقم إيه؟ على رقم 5 اللي كنا معلمين عليه. تمام؟ إنت عايز تحرك الـ Filter بقى، فتقوم محرك الـ Filter. أنا هسألك سؤال بس: هل رقم 5 ده إنت هترجعله تاني؟ هترجعله تاني في عملية اللي هو ضرب الـ Matrix في بعضها؟
لا. ليه؟ لأنه هو في الـ Corner. الـ Corner إنت ماتوصلهاش غير مرة واحدة، ما بتشتغلش عليها غير مرة واحدة. لكن مثلاً لو بصيت على حاجة في النص مثلاً زي دي، دي إنت بتبتدي تشتغل عليها وإنت واقف هنا، وإنت واقف هنا، وإنت واقف مثلاً لما تنزل تحت وإنت واقف هنا، فإنت عمال تعدي عليها كذا مرة. لكن الـ Corner يعني برضه الـ Corner ده مش هتوصله مثلاً غير وإنت واقف هنا.
ماشي، لكن في أي حتة تانية مش هتقدر توصله. طب ده هيأثر في إيه؟ بيقولك لو دي مثلاً فيها Information مهمة، الـ Corners دي، سواء دي أو دي أو دي، لو فيها Information مهمة، إنت مش هتعرف تعمل لها Detect صح، مش هتعرف تفهمها صح، يعني هو مش هيعدي عليها غير مرة واحدة، فهي لو Feature مهمة ماينفعش.
غير الحاجات اللي في النص، الحاجات اللي في النص بيعدي عليها كتير جداً فيبتدي إيه.. 
يعرفها واحدة واحدة، لكن الحاجات اللي في الـ Corner ممكن يحصلها إيه؟ Loss.
 ففايدة الـ Padding برضه ممكن تحل لي الحوار ده. فبيقولك برضه إن هي الحاجات اللي في
 الـ Corner إنت بتعدي عليها مرة واحدة فإنت هنا مش بتركز عليها.. مش بتركز عليها فممكن إيه.. تـ Loss Information زي ما قولت بالظبط تمام؟ ف الـ Corner...
فالـ فالـ عموما في الـ Convolution ممكن تسببلي مشكلة، والـ Convolution برضو فيها ايه ؟ فيهامعلومات مهمة. طب بيقولك فايدة الـ Padding، الـ Padding هتعملك إيه؟ 
الـ Padding هنضيفلك Zeros مثلاً فوق وتحت ويمين وشمال، فهي ما أثرتش في حاجة، إن هي ضافت Zeros فمش هتأثر في حاجة في الصورة، عملت Zero Padding. ومع ذلك، يعني مثلاً حاجة زي الـ Corner اللي هو كان 5 في 5 ده، إنت بدل ما كنت بتعدي عليه مرة واحدة، إنت هتعدي عليه أكتر من مرة، مرة وإنت كدة مثلاً...
كدة مثلاً، كدة ومرة مش عارف وإنت كدة، وهتيجي تمشي عليه كتير أكتر.. أكتر من ما كنت هنا، أكتر من كان هو الـ Corner، هتيجي تعدي عليه كتير جداً، هتيجي تعدي عليه كتير جداً، تمام؟ فإنت كونك إن إنت تعدي عليه كتير جداً فإنت ممكن هتعمل له إيه؟ هتعمل له Detect بشكل أحسن مش زي الأول، تمام؟
ماشي، وبرضو قلنا عشان إيه؟ عشان أبعاد الصورة. عايزين برضه ناخد مثال على أبعاد الصورة ده مثلاً.. نبتدي نشوف الصورة مثلاً اللي هي كانت كام في كام؟ عايزين مثال مثلا.. لو الصورة مثلاً دي، نشوف في المثال ده، مثلاً عندنا 1، 2، 3، 4، 5.. فأبعاد الصورة 5 في 5، ماشي؟ هي دي الصورة اللي هنطبق عليها...
لو بنطبقها على 4 في 4 ماشي، ناخد بتاعت 4 في 4 خلاص عشان إيه جاب رقم الـ Filter برضو. عندي صورة مثلاً 4 في 4 اللي هي من جوا، تمام؟ وجيه عملها Padding بـ Zeros، فادي Zeros، Zeros، Zeros، Zeros، يمين وفوق وشمال وتحت، تمام؟ طيب، عملها Padding بـ Zeros، والصورة اللي هي إيه بالأحمر دي هي4 في 4 وجيه طبق عليها إيه 3 في 3.
ماشي، تعالوا نشوف الـ Output shape شكله عامل إزاي بالـ Equation. حجم الصورة دلوقتي بقى كام؟ حجم الصورة دلوقتي بقى.. بقى 6، تيجوا نشوف،
 3  6، في كام؟ في 6.
 6 في 6، حجم الصورة بقى 6 في 6 بعد الـ Padding. فـ 6 ناقص 3 اللي هو حجم الـ Filter بـ + 1 بـ 4، فـ كدة عندك حجم الـ Output shape.
الشكل بتاعها بقى 4 في 4. 
4 في 4 ده حجم كان إيه؟ كان حجم الصورة الأصلي. فإنت عندك هنا إيه؟ ماخسرتش أي.. أي حاجة في الـ Shape بتاع الصورة، دي زي ما دخلت زي ما خرجت بنفس الشكل. فده ممكن يساعدك في إيه؟ وهيساعدك فعلاً في عملية الـ Detection عموماً، إنت الصورة مش هتبتدي تفضل تقل تقل منك لحد ما تلاقي مثلاً الصورة بقت مثلاً...
12 في 12، فيه صورة 12 في 12؟ لا دي الصورة مثلاً بتبقى 100 في 100 أو 250 في 250 وبتبقى مـ pixel ـه ، فما بالك الصورة عمالة تقل جامد. تمام؟ فهنا الـ Padding حلتلي المشكلة دي، 
إن هو ضفت Zeros في اليمين والشمال وفوق وتحت، فحلتلي حتة الـ Pixels اللي عمالة تقل والأبعاد اللي عمالة تقل في الصورة، تمام؟
ماشي، نفس الكلام هنا، لو عندي صورة اللي باللبني دي اللي هي كانت كام في كام؟ 5 في 5. جيت أطبق عليها برضه 3 في 3 ماشي، بعد ما عملها Padding.. 
Zeros و Zeros. تمام؟ فبعد الـ Padding بقت كام في كام؟ بقت 1، 2، 3، 5، 7.. بقت 7 في 7، بقت 7 في 7 بعد الـ Padding.
7 ناقص 3، اللي هو حجم الفلتر.. 7 ناقص 3 .. 4 ، +1 5. بقت 5 في 5، تمام؟ 5 في 5 ده اللي هو كان حجم إيه أصلاً؟ كان حجم الصورة الأصلي. تمام؟ بقت حجم الصورة الأصلي،
 فهي زي ما.. زي ما دخلت زي ما خرجت. بيقول لك اللي هي الحاجات اللي إيه بعد ما طبقت عليها الـ filter.. بعد ما طبقت عليها الـ filter اللي هو 3 في 3 والصورة بقت 7 في 7، اللي هو بعد...
الـ Padding خرجت 5 في 5 زي ما كانت في الأصل، فدي فايدة الـ Padding برضه. فده هنا برضه شكل زي 3D كدة بيوضحلك الدنيا أكتر، لما يبتدي يضرب الـ Filter، يتبدي تضربه برضو في الـ Input بتاعه ويبتدي يطلع الأرقام اللي هي بتاعت الـ Feature Map، بيمشي عليه إيه واحدة واحدة. تمام؟
تمام، بيقولك طيب.. لو أنا عايز أعرف هو هنا.. هو هنا ليه مثلاً عمل Padding بـ Row واحد وهنا Row واحد وهنا Column واحد وهنا.. يعني ليه عمل Padding بـ Layer واحدة اللي هي سطر واحد مثلاً هنا وسطر واحد هنا وهنا Column واحد وهنا Column واحد، طب ليه مش اتنين؟ ليه مش تلاتة؟ ليه مش أربعة؟ أكيد فيه طريقة بيعرف منها، طب إيه الطريقة اللي بيعرف منها؟
بيقولك الـ Filter size.. الـ Equation بتاعتك هتشتغل، فتعمل Padding بقد إيه عشان تخرج إيه؟ نفس الـ Size بتاع الـ Input shape، فإنت برضو الـ Equations برضه خلي بالك منها. فعندنا هنا الـ Filter لو مثلاً 3 في 3، بقى 3 في 3 ناقص 1.. 3 ناقص 1 ؟ 2 
2 على الـ 2؟ 1 فإنت كدة بتعمل إيه؟
تعمل Padding بـ row واحدة زي ما هو كان عامل هنا عشان الـ filter كان 3 في 3 فعمل إيه؟ Padding بـ row  واحدة. طيب عايزين مثال تاني، لو هي مثلاً 7 في 7 أو 5 في 5 هيعمل Padding أكتر، تعالوا نشوف الـ 5 في 5.. نشوف الـ 5 في 5. طيب، الـ 5 في 5 لو عندي 5.. 5 الفلتر بتاعي 5 في 5، فـ 5 ناقص 1 بـ 4، 4 على الـ 2..
بـ 2. فأنا كدة لازم أعمل Padding بـ 2 هنا، و 2 هنا، و 2 هنا، و 2 هنا، تمام؟ وده فعلاً اللي عامله هنا. يعني أنا هنا الصورة عندي هيبتدي يعملها Padding بـ 2 Layers هنا.
 هو بيسميها Layer، يعني دي بيسميها Layer of zero اللي هو السطر ده مثلاً من الـ Zeros بيسميه Layer of zero.
تمام، فكدة هنضطر نعمل Two layer عند كل.. عند كل Border عندنا اللي هو سواء 
فوق وتحت ويمين وشمال، تمام؟ فده برضه عشان إيه؟ عشان أخرج نفس الـ.. الـ Input زي
 الـ Output في نفس الـ Shape، فانتو اعرفوا برضو لو قال لك عايز الـ Input زي الـ Output في الـ Shape بتاعه، وأداك مثلاً مسألة مثلاً مش عارف حجم الـ filter والكلام ده كله وحجم الصورة والكلام ده كله، فإنت هتعرف الـ Equation اللي هتطبق.. تعمل بيها Padding للصورة بتاعتك قبل ما إيه؟ ما تطبق الـ filter.
قبل ما تجيب الـ Feature Map، قبل ما تطبق الـ filter على الصورة، فإنت تبتدي تعرف الشكل اللي هيبقى خارج عامل إزاي. ده برضو لازم، لازم، لازم تبقى عارف شكل الـ Feature Map عامل إزاي عشان تبتدي ترصها صح. فإنت تعرف شكلها صح إزاي؟ عن طريق إن إنت تحسب
 الـ Padding كويس، هتعمل Padding بقد إيه، وعن طريق إن إنت تشوف الـ Input shape برضو شكله عامل إزاي والـ filter والحاجات دي كلها.
تمام، ماشي. طيب دي الـ Padding. قلنا Padding فايدتها.. فايدتين،
 تبقى عارفهم برضو كويس عشان النظري وكدة، لو قولتلك الـ Input shape زي الـ Output shape 
والـ.. وبرضو الـ Corner إن هي برضو لو فيه معلومات مهمة مش بيعمل لها Loss. طيب، كدة خلصنا الـ Padding. تاني حاجة اللي هي الـ Stride. فايدة الـ Stride إيه؟ الـ Stride أو إيه هي الـ Stride عموماً؟ الـ Stride دي هي الـ Step اللي أنا بمشي بيها...
على الصورة نفسها بالـ filter. يعني أنا كنت بقول إن مثلاً أول Step هنمشي كدة 3 في 3كدة، ماشي؟ تاني Step قلنا هنحرك الـ filter واحدة واحدة، دي اسمها Stride، فأنا كدة عملت 
Stride 1. تمام؟ رابع حاجة مثلاً.. تالت مثلاً Step ممكن أعمل مثلاً إيه..
filter كدة مثلاً، أطبق filter كدة.. أنا كدة الـ Stride بتاعتي برضه لسه بـ 1. طب هل بيقولك ده دايماً بيطبق؟ اه دايماً بيطبق حديثاً.. ليه؟ هقولك ليه يعني، بس ماشي. المهم دلوقتي مش شرط دايماً تعمل إيه الـ filter بتاعك تمشيه بـ Stride 1.
الـ Stride بيقولك هي الـ Step.. الـ Step اللي بتمشي بيها الـ filter على الصورة، تمام؟
 فلو هو الـ Stride عندي بـ 1 زي ما مشيتها. طب لو الـ Stride بتاعك مثلاً بـ 2، فأول Step مثلاً مثلاً أول حاجة هيبقى كدة، ماشي. طب الـ Step هييجي يتحرك، بدل ما يتحرك يقف هنا، لأ، أدي كدة ساب واحدة وهيوقف هنا. فهو كدة...
عمل لك التلاتة stride عملهم في اتنين. طب هل ده أحسن؟ هو أسرع، بس مش أحسن. يعني هو أسرع بس مش أحسن. فإنت لو عندك الصورة الـ features بتاعتها قليلة، مش كتيرة أوي، فإنت بيقلك طبق الـ stride برقم كبير عادي يعني مش هتأثر، لكن لو feature عايز تركز على
 الـ details، حاجة تكون accurate، يعني الـ stride 1 دي accurate لأنها بتمشي step step step step فهي بتبقى accurate جداً.
غير الـ stride اللي هي إيه بتكون عالية، بتكون less accurate يعني الـ accuracy بتاعتها مش أحسن حاجة، تمام؟ فبيقولك إن بعض الإمكانيات اللي اتحدثت بقا كله يستخدم 
stride 1 عشان يبتدي يحدث يعني إيه.. الإمكانيات بقيت أعلى والـ GPU بقا أعلى وكل حاجة بقيت أعلى فبيقولك نستخدم عادي الـ stride 1 مفيش مشكلة. بس عموماً يعني بيقولك ممكن لو طبقنا stride 2...
زي ما قولتلك مثلاً هو كان واقف هنا، كان واقف هنا بالأحمر هنا، بدل ما يقف هنا.. لأ، وقف عند اللي بالأخضر، إنه اتحرك اتنين Stride. 
وده الـ Stride 1 اللي إحنا عمالين نشرح فيه من الصبح، اللي هو إيه الشكل الـ Default بتاعنا. طيب بيقولك الـ Equation اللي هي بتاعة الـ Output shape، قولتلك الـ Output shape الـ Equation بتاعتنا مش ثابتة، يعني اللي إحنا قولناه في الأول اللي هي كانت كام؟... n+f
+ 1، n-f +1
 دي مش ثابتة. ليه؟ لأنها كنا بنتحكم.. بنتحكم إن عندنا n و f بس. طيب دلوقتي زاد عندنا إن عندنا stride وعندنا padding، بس نشوف دلوقتي الـ stride. الـ stride هيأثر إزاي بقى؟ الـ stride هيأثر.. إحنا هنشوف الـ n+ f على الـ s..
+  1، على الـ S + 1، تمام؟ عشان نعرف الـ Output shape، عشان نعرف إيه..
 الـ Output shape. فإنت بيقولك مثلاً لو هتعمل Stride بـ 1، لو هتعمل Stride بـ 1 فكدة كأنك معملتش حاجة، هتقسم على 1 فهو كأنه n - f + 1 اللي هي الـ Equation اللي إحنا كنا قايلينها في الأول خالص خالص فوق يعني.
"في أول المحاضرة، اللي هي كانت n - f + 1 فإنت كأنك قسمت على واحد فكأنك معملتش حاجة، فهي لو stride 1 مش بتأثر، اللي هو الشكل الـ default بتاعنا. طب لو الـ stride زادت؟ 
لو الـ stride زادت لأ كدة ممكن تأثر، شكل الـ output shape هيختلف، لأن إنت عندك بقيت العملية بقت أسرع فبتطلع أرقام أقل، فإنت طبيعي شكل الـ output shape هيكون عندك مختلف.
تمام، طيب.. هنا بيقولك تاني.. لو عندك stride 1، هتيجي تشتغل إزاي بالـ filter ده؟ هو بس مثال بيوضحلك يعني إيه stride. فبيقولك إن دي الـ filter بتاعك، وتبتدي تطبقه على الـ input، طبقه على الـ input، وضربت كل قيمة في اللي قصادها.. ضربت كل قيمة في اللي قصادها وجمعت.. وجبت الـ result بتاعتي. تمام؟ وأبتدي أحرك الـ filter...
أحركه بـ Stride 1، هو هنا قايل إن Stride 1 ومعندهوش Padding فمش هيعمل Padding، فيبتدي يحركه 1، يبتدي يحركه Stride 1 يعني، وضرب الـ filter في الـ Input وطلع الـ Result بتاعته.. وهكذا يعني، محاضرة لذيذة يعني مفيش فيها أي حاجة. نفس الكلام، بيقولك بقى هو لو كان.. لو كان واقف هنا...
عند أول Step، جيه خلى بدل الـ Stride 1 خلاها بـ 2، فالمفروض هيقف فين؟ المفروض هيقف كدة.. المفروض هيقف إيه كدة. تمام؟ فده اللي هيحصل فعلاً لو الـ Stride بتاعته بـ 2 هيتبدي يحركها إيه.. 2 Step.
 وبيقولك برضه شكل الـ Input Shape بدل ما كان 4 في 4، شايف شكل الـ Input shape بقى كام؟ بقى 2 في 2. تمام؟ عرفت منين شكل الـ Input shape...
من هو الـ Equation بتاعتك أهي، 6 ناقص 3 على حجم الـstride
 + 1. إيه الـ 6 والـ 3 والـ 2 والـ 1 دي؟ الـ 6 ده اللي هو شكل الـ input shape، الـ 3 ده اللي هو حجم الـ filter، الـ 2 دي الـ stride اللي بتقسم عليها، الـ 1 ده اللي هو الـ 1 اللي بنزوده في الآخر، اللي هي الـ Equation دي يعني، عوضنا في الـ Equation بالحاجات بتاعتها. تمام؟
فالـ stride وطبعاً لما يبقى فيه كسر بنشيل يعني. طيب؟ ماشي.. هنا بيوضحلك برضو الـ stride مفيش أي حاجة تاني. بيقولك طيب.. الـ stride إمتى بنزودها وإمتى بننقصها والكلام ده كله؟ بيقول لك إن إحنا بنزود حجم الـ stride لو معندكش features كتير.
لو معندكش features كتيرة وعندك مثلاً GPU قليل.. الحاجات دي كلها، بس الحاجات دي مابقيتش يعني.. مابقيتش تحصل دلوقتي لأن الإمكانيات بقت أحسن فبقينا نطبق الـ stride 1 على طول يعني. فعموماً الـ stride 1 هو أكتر حاجة بتطبق عشان إيه.. بتطبق حاجة accurate أكتر، بيمشي على الـ feature واحدة واحدة.. على الـ filter واحدة واحدة.
بيمشي بالـ filter على الصورة واحدة واحدة، فيبتدي detect الـ features بشكل أدق يعني. بس، فبيقولك إن الـ stride 1 هي أحسن، وتطبقها لما يكون عندك power أحسن، ولما يكون عندك feature معقدة أكتر يعني. لكن إن إنت تزود حجم الـ stride ده،
 هيأثر تأثير عكسي على الـ quality بتاعة الصورة، إن هو هيوقع الدنيا خالص، إنه ماشي بسرعة، مثلاً تخيل إنت بتعمل stride 3 في 3، فهو أول مرة كان هنا...
تالت مرة جري كدة، فإنت فيه حاجات عمال تجري عليها معديتش عليها غير مرة واحدة. فالحاجات اللي إنت بتجري عليها دي، إنت كدة عملت Loss للـ Information بتاعتها، إنت معملتلهاش Detect بشكل صح صحيح، تمام؟ فيه بس حاجة عايز أقول عليها بس في الـ Equation، اللي هو هنا ليه مزودش مثلاً + 2P اللي إحنا متعودين عليها؟ لأن هو...
تخيل إنه عمل إيه.. الـ n دي قبل ما يطبق الـ Padding، هو متخيل يعني إنه زود الـ Padding، يعني مثلاً بدل ما كانت 5 في 5 مثلاً هو تلقائي خلاها 7 في 7 مثلاً قبل ما يدخلها في 
الـ Equation.. يعني المعادلة اللي إحنا متعودين عليها في اللابات، اللي هو مثلاً n - f على s وهنا مثلاً كان 2p، اللي هو بتعمل Padding بقد إيه، Padding بـ 1، Padding بـ 2، Padding بـ 3...
فإحنا كنا متعودين على كدة، اللي هو الـ Input الأصلي ناقص الـ f زائد 2P على الـ s زائد واحد، تمام؟ طب ليه مزودش الـ 2P هنا؟ عشان هو تلقائي الـ Input shape قبل ما يدخله على
 الـ Equation عمل عليه الـ Padding الأول، يعني مثلاً.. مثلاً بدل ما كانت 5 في 5 هو خلاها 7 في 7، وبعد كدة طبق الـ Equation، فمش محتاج يزود الـ Padding، إنه زوده أصلاً تلقائي في الـ Input shape.
زودها تلقائي في الـInput Shape ماشي؟ فسواء زادت هنا أو هنا مش فارقة هي مجرد Equation، فإنت شوف هتحلها إزاي يعني بطريقتك، أو حسب هي جاية لك إزاي. فبيقولك إن
 الـ Stride والـ Padding.. إحنا قولنا الـ Padding فايدتها ميزتين: هي بتسرع.. 
بتكون More Efficient إن إنت عندك قولنا الـ Input shape بيخرج زي الـ Output shape، والـ Corners بتعدي عليها بشكل أكتر عشان فيها معلومات مهمة. والـ Stride قلنا لما بتكون قليلة برضه بتساعدني يكون الموديل بتاعي برضه More Efficient، مش ببتدي...
الـ Loss بتاع أي Information، الـ Step بتاعتي تبقى صغيرة يعني. تمام؟ بس يعني. فبيقولك برضه.. برضه تكون محتاجة Power عالية يعني عشان تشتغل عليها، ماشي؟ طيب.. إحنا برضو كنا عمالين نتكلم على الصورة اللي هي 2D اللي هي كانت Gray Scale. طب لو عندي.. لو عندي مثلاً صورة 3D، هبتدي أتعامل معاها إزاي؟ يعني إحنا الصورة اللي كنا بنتعامل معاها كانت صورة مثلاً زي الشكل بتاع الأحمر ده، اللي هو كان Gray Scale، اللي هو..
مثلاً إنت عندك الـ filter مثلاً أو الصورة بتاعتك مثلاً كانت مثلاً هتبقي كام؟ 6 في 6. 
دلوقتي هل هي 6 في 6 بس؟ لأ هي 6 في 6 في 3، لأن إحنا خليناها RGB فـ 3 دي عدد 
الـ channels لو الصورة عندي بالألوان، فـ 6 في 6 في 3 نبتدي نضربها في filter. فهل هنضربها في filter واحد بس؟ هيتضرب فيهم كلهم؟ لأ، نبتدي نعمل 3 filter
، filter يتضرب في الـ Red و filter يتضرب في الـ Green...
و Filter يتضرب في الـ Blue وأبتدي أجمعهم وأحط الـ Results بتاعتي في الـ Feature Map مفيش مشكلة. فالـ Filters بتمشي إزاي؟ بقا فيه فلتر للـ Red وفلتر للـ Green وفلتر للـ Blue وأبتدي أضربهم في بعض وأجمعهم، أجمع الـ Result بتاعتهم وأحطهم في الـ Feature Map عادي مفيش أي مشكلة زي ما كنا بنعمل. طب ناخدها بمثال.
عايزين مثال.. هنا برضه هيبتدي يشرحلك يقولك برضو نبتدي ناخد كل filter زي ما أنا قولتها، كل filter نضربه في الـ channel بتاعته ونجمعهم ونجيب الـ result بتاعتهم يعني. بس عايزين ناخدها مثال.. هنا عندنا مثال عندنا تلاتة filters واحد للـ Red.. filter للـ Red وfilter للـ Green وfilter للـ Blue. وبرضه الصورة بتاعتنا برضه متقسمة Red و Green و Blue. فأبتدي آخد كل filter أضربه في اللي قصاده.. كل filter أضربه في اللي قصاده وأجمعهم.
تمام؟ فأنتت بدل ما كنت بتجمع 9 قيم في بعض، اللي هو بتوع الـ Red، دي الحتة اللي كان بيقولك هنا. بدل ما كنت مثلاً.. بتجمع 9 قيم تضربهم في بعض اللي هو كان بتضرب الـ filter 3 في 3، تضربهم مثلاً في أول 3 في 3. فأنت عندك إيه بتطلع 9 قيم وكنت بتجمعهم وتجيب
 الـ result تحطها هنا. فإنت هنا مش هتجمع 9 قيم بس، إنت هتجمع 27 قيمة، يعني ده هيطلعلك 9 قيم في بعض مضروبين في بعض وتجمعهم وتجيب الـ Result.
"وده برضو نفس الكلام هيجمعلك تسع قيم يضربهم في بعض تجيب الـ result بتاعتهم.. 
وده نفس الكلام جابلك برضو تسع قيم مضروبين في بعض تجيب الـ result بتاعتهم. 
فإنت بتجمع 27 قيمة مع بعض تحطهم في قيمة واحدة، تمام؟ وهناخدها مثال أحسن أهو، 
أهو بيقولك مثلاً لو جيه طبق الـ Filter اللي هو الأحمر ده تمام جيه طبقه هنا على الـ image.
على الـ Red مثلاً.. على أول channel اللي هي بتاعت الـ Red. جيه ضربهم في بعض وجاب
 الـ result بتاعتهم، تمام؟ وطلع مثلاً 308. نفس الكلام، طبق الفلتر بتاع الـ Green على صورة
 الـ channel بتاعت الـ Green، وضربهم في بعض.. ولو تلاحظوا برضه هتلاقوا الـ pixels مختلفة عشان دي channel مختلفة عن دي، تمام؟ فضربهم في بعض وجاب الـ result طلع
 بـ -498، تمام؟
نفس الكلام في الـ Blue، ضرب الفلتر بتاع الـ Blue.. فلتر بتاع الـ Blue ضربه في الصورة بتاعتي، تمام؟ وجاب الـ result بتاعتي، تمام؟ ده في أول step، كل ده في أول step، 
فجابلي الـ result وأبتديت تجمعهم كلهم.. أبتديت تجمعهم كلهم طلعلي الـ result بكام؟ بـ 25-، فأبتدي أكتب 25-.
أنا كدة خلصت؟ لأ، ده كدة خلصت أول Step. فأقوم محرك الـ filter ده Step، وده Step، وده Step، وهكذا أبتدي أعمل الـ Filters والـ Convolution بتاعتي اللي كنت بعملها بشكل طبيعي يعني. أحركه مثلاً بـ Stride 1 وأبتدي أضربهم في بعض. ماشي، فبيقولك إنت هل أنت ممكن تطبق برضه filter واحد يعني؟ إحنا هنا برضه كنا بنطبق...
نوع filter نوع واحد بس، فبيقولك إنت ممكن مثلاً بدل ما تضرب زي ما قولنا في الـ step اللي فاتت 3 في 3 في 3، اللي هو 3 filters، 3 width و 3 height و 3 اللي هما عدد الـ filters، تضربهم في الـ channels دول.. ده ممكن تطبق filter تاني، يعني تطبق 2 filters في نفس الوقت. طب هل كدة هتختلف في حاجة؟ لأ، مش هتختلف في حاجة.
يعني مثلاً لو عندك ده Filter بـ detect الحاجات الـ vertical مثلاً، وfilter ده مثلاً بـ detect الحاجات الـ horizontal، فالاتنين مع بعض هيجيبولك الحاجة دقيقة جداً. فبيقولك طب ما ده حلو طبقهم في نفس الـ step على طول. فأبتدي تمسك الـ horizontal تضربهم في بعض.. كل Filter في اللي قصاده.. كل Filter في اللي قصاده واحد في الـ Red وواحد في الـ Green وواحد في الـ Blue. ونفس الكلام ده، واحد في الـ Red وواحد في الـ Green وواحد في
 الـ Blue. وده طلعلك result مثلاً 4 ومثلاً ده طلعلك مثلاً result 5.. تيجي تجمعهم.
أنا بقول أرقام من عندي، فالمهم ده طلعلك Result بعد ما ضرب ده في بعض وده ضرب دول في بعض، فيبتدي يجمعلك الـ Result، فتجمعهم برضو وتحطهم في الـ Feature Map بتاعتهم، وفي الآخر برضو تجمع الـ Feature Maps مع بعض. تمام؟
 ناخدها هنا بمثال عشان دي تبقى أوضح.. لو مثلاً عندك الـ Filters
3 في 3 في 3 وده نفس الكلام، ده مثلاً واحد للـ Horizontal وواحد للـ..
واحد بيوضح الحاجات الـ Horizontal وواحد بيوضح الحاجات الـ Vertical في الصورة، تمام؟ فضربت ده في ده وده في ده وده في ده، تمام؟ وخلصتهم ومليت الـ Feature Map بتاعتي، اللي هي مثلاً إيه.. ملاهم هنا على مرتين، إنت كنت ممكن تملاها على مرة واحدة بس هو هنا ملاها على مرتين، تمام؟ نفس الكلام.. جاب الـ Filter التاني ضربه في الصورة، كل قيمة في اللي قصادها، كل قيمة في اللي قصادها.
في الـ filter.. في كل filter في الـ channel بتاعت كل filter في الـ channel بتاعت كل filter في الـ channel بتاعته وجمعهم مع بعض وجاب الـ Feature Map ملاها، تمام؟ بعد ما خلص الـ Feature Map خلصها، إنت ممكن هنا برضو إيه.. تجمعهم مع بعض عادي مفيش مشكلة. فبيقولك إن هنا الفايدة إيه أو الميزة إيه أو إيه الحاجات اللي أنا استفدت بيها هنا؟ بيقولك إن إنت ممكن تطبق أكتر من filter في نفس الـ step على الصورة، ممكن مثلاً تطبق 4 filters، 12 filter، 16 filter في نفس الـ step اللي إنت واقف فيها في نفس الـ layer.
فكل filter هيبقى ليه.. بيوضح حاجات معينة، فالفلاتر دي كلها مع بعض هتبتدي detect الصورة بشكل أحسن، وتبتدي تجمعهم مع بعض يعني. تمام؟ هو هنا مش طبعاً مفيش مسألة هتيجي بالشكل ده يعني، هو مجرد يعني شرح نظري للفكرة يعني، إن الحاجات دي يعني بتتم بالـcode وكدة مش...
طيب.. كدة خلصنا إن هو بيبتدي يجمع الفلاتر 3 في 3 في 3 يضربهم في كل filter في
 الـ channel بتاعته، لو ده أول filter. نفس الكلام هيعمل زي ما عمل في الـ filter الأولاني، كل filter في اللي قصاده، ويبتدي يجمعهم يجيب Feature Map بتاع ده وبتاع ده، ويبتدي يجمعهم عادي، ده وبقى هو الـ Output بتاعي. تمام؟ ماشي.
كدة خلصنا الـ Convolution. آخر حاجة بس معانا على طول.. المرة الجاية هناخد الـ Pooling والـ Flatten والـ Full Connected. هنقولهم يعني بالتفصيل، ما رضيتش أقولهم النهاردة عشان إيه.. ميبقاش معلومات جديدة يعني كتير، بس إحنا يعتبر عارفينهم يعني من اللابات وكدة بس هنشرحهم يعني كأني.. كأن حد ما يعرفهمش.
بس يعني هقولهم واحدة واحدة، تمام؟ آخر حاجة معانا الـ Activation map اللي هي ReLU، تمام؟ الـ ReLU بيقولك إن هي فايدتها إيه؟ فايدتها بتاخد القيمة اللي في الـ Feature Map.. الـ ReLU كانت بتشتغل إزاي؟ كانت بتقولك الـ Maximum ما بين الـ Maximum..
 الـ Maximum  الـ Maximum ما بين الـ 0 والـ X اللي جايلها أو الـ Z اللي جايلها.
أو الـ Z اللي جايلها أو الـ Z اللي جايلها ، تمام؟ طيب وبعدين؟ ماشي.. وبعدين بيعمل إيه؟ بتشوف لو الرقم ده.. الـ Z ده موجب بتخرجه زي ما هو في الـ Feature Map، طب ولو Negative بتستبدله بـ 0. ده اللي هو.. ده اللي هو الـ ReLU كان شغال كدة، أي بيجيلها أي رقم..
لو موجب بنخرجه زي ما هو، ولو Negative بتحط مكانه 0، تمام؟ ماشي.. طيب هتعمل إيه بقى في الـ Feature Map؟ الـ Feature Map قولنا مثلاً خلصناها كانت كدة مثلاً بالشكل ده، دي بتاخد القيم اللي جواها.. أهي دي الـ Feature Map
 sorry، يعني الـ Feature Map اللي هي بالألوان دي، خرجتلي كدة.. تمام دي الـ Feature Map.. تقوم عامل Matrix جديدة، تبتدي تشوف مثلاً...
الـ 77 دي positive ولا negative؟ positive فتقوم مخرجها زي ما هي، وكاتباها زي ما هي في الـ Matrix الجديدة. تبتدي تمشي عليهم واحدة واحدة بقى، اللي بعد كدة الـ -11 من مية دي positive ولا negative؟ negative. 
الـ Maximum من الـ negative والـ 0 بكام؟ 0، فتقوم مطلعاها 0، وهكذا.
بتبدي تطبق الـ activation function.. نفس الكلام في اللي بعد كدة،11 من مية فدي موجب فتخرج زي ما هي، 33 من مية تخرج زي ما هي عشان موجب، 55 من مية موجب تخرج زي ما هي.. طب سالب مية تاني فدي تطلعها 0. فهو هنا طبق الـ activation function هي ReLU بتاعتنا عادي يعني اللي هي بتشوف تطبق يعني...
activation function.. 
non-linear يعني. وأبتدي أشوف لو هو negative بتطلعلي إيه؟ بتطلعلي 0، ولو positive بتطلعه زي ما هو مابتغيرش فيه أي حاجة، تمام؟ طيب.. هنا برضو نفس الكلام بيقولك لو هو negative بتخرج يعني ايه؟
0 ولو Positive بتخرجه زي ما هو، وبرضو بعد ما نخلص كدة خلصنا الـ Feature Map، 
فالـ Feature Map دي.. دي الـ Output بتاعة الـ Layer Convolution، دي الـ Output كدة خلاص بعد ما خلصنا الـ Feature Map اللي هي الـ Output بتاع الـ Convolution طبقنا
 الـ Activation.. الناتج ده بقى ببتدي أعمل بيه إيه؟ ده الـ Input اللي داخلي على الـ Layer اللي بعديه اللي إحنا قولنا إن هي.
بشكل.. شكل linear هي بتيجي تكملها مش layer واحدة بس طبقنا إحنا كل ده بنتكلم في layer واحدة. طب الـ layer دي بعد ما خلصت؟ بتبتدي تسلم الـ layer اللي بعدها، سواء كانت convolution أو نوع من الأنواع اللي هنقولها التانية، بس لنتخيل إنها convolution دلوقتي، إن ساعات بيحصل أكتر من convolution ورا بعض في نفس الوقت. فلو هي convolution، هتبتدي تدخل الناتج بتاع الـ Feature Map بعد ما طبقت عليه الـ Activation.
يبتدي يدخله كـ input للي بعدي، واللي بعدي يخرجه للي بعدي، وهكذا لحد ما يخلص يعني
 الـ detection بتاعي. بس يعني ودي كانت حكاية النهاردة، والمرة الجاية هناخد الـ Pooling 
والـ Flatten والـ Full Connected Layer. بس يعني وبعتذر على الإطالة يعني.