ML 101
M06 · L04
الوحدة السادسة

تدريب الـ neural networks

الـ backpropagation بيدّيك الـ gradients. ودلوقتي ييجي الشغل الصنعة: إنك تختار الـ loss الصح، والـ optimizer الصح، والـ learning rate الصح، والـ regularization الصح عشان الـ gradients دي تعمل فرق.

1 / 13
ML 101
M06 · L04
الـ loss functions

بنقلّل إيه؟

الـ loss function (دالة الخسارة) هي الرقم الوحيد اللي التدريب بيحاول يقلّله. واختيارها لازم يمشي مع المهمة: MSE للـ regression، والـ cross-entropy للـ classification. واستخدام loss غلط بيوصّل لمشاكل gradient مستخبية بتعطّل التعلّم.

الـ regression
MSE / MAE
الـ classification
cross-entropy
2 / 13
ML 101
M06 · L04
loss الـ regression

متوسط مربع الخطأ

الـ MSE بيعاقب الأخطاء الكبيرة تربيعيًا. وفي مهام الـ classification بيعمل مشكلة التشبّع — والـ cross-entropy (الإنتروبيا المتقاطعة) بتتجنّب ده لأنها بتطلّع gradient متناسب دايمًا مع غلط الـ prediction.

الـ MSE والـ cross-entropy
\mathcal{L}_{\text{MSE}}=\tfrac{1}{n}\sum(\hat{y}_i-y_i)^2 \qquad \mathcal{L}_{\text{CE}}=-\log\hat{p}_{\text{true}}
3 / 13
ML 101
M06 · L04
الـ optimizers

الـ stochastic gradient descent

أبسط optimizer: اطرح جزء η من الـ gradient من كل weight. ده الـ SGD (النزول التدرجي العشوائي): فعّال بس بطيء على أسطح الـ loss اللي حالتها وحشة — بيتهز من ناحية لناحية على المنحدرات الحادة بدل ما يمشي على طولها.

تحديث الـ SGD
w \leftarrow w - \eta\,\nabla_w L(w)
4 / 13
ML 101
M06 · L04
الـ optimizers الحديثة

Adam وAdamW

الـ Adam بيتابع المتوسطات المتحرّكة للـ gradients (الـ momentum) ومربعاتها (الـ variance). خطوة كل weight بتتظبط بحجم الـ gradient بتاعه هو: الـ gradient الثابت بيخطو حوالي α مهما كان حجمه، واللي فيه noise بيخطو أقل. والـ AdamW بيفصل الـ weight decay عشان الـ regularization يشتغل زي ما المفروض.

الإعدادات الافتراضية
β1=0.9, β2=0.999, ε=10−8
5 / 13
ML 101
M06 · L04
الـ learning rate

الـ schedules والـ warmup

الـ learning rate الثابت نادرًا ما يبقى مثالي. ابدأ كبير عشان تتقارب بسرعة، وخلّص صغير عشان الظبط الدقيق. الـ cosine annealing ماشي على منحنى نص cosine. والـ warmup بيعلّي المعدل خطيًا على أول كام مية خطوة — وده حاسم مع الـ Adam.

الـ cosine annealing
\eta_t = \eta_{\min}+\tfrac{1}{2}(\eta_{\max}-\eta_{\min})\!\left(1+\cos\!\frac{t\pi}{T}\right)
6 / 13
ML 101
M06 · L04
حجم الـ batch

كبير ولا صغير؟

  • batches كبيرة — استخدام كفء للـ GPU وgradients دقيقة، بس بتخاطر بـ minima حادة بتعمّم ضعيف
  • batches صغيرة — gradients فيها noise أكتر بتهرب من الـ minima الحادة وبتلاقي minima مسطّحة بتعمّم
  • قاعدة الـ linear scaling — اضرب الـ learning rate في k لما تضرب حجم الـ batch في k
7 / 13
ML 101
M06 · L04
الـ regularization

الـ dropout: الـ noise كدفاع

أوركسترا بتعمل بروفة على المسرح، وبين العازفين كام كرسي فاضي.
في كل بروفة كراسي مختلفة بتفضى عشوائي، فمفيش عازف يتّكل على اللي جنبه. وفي الحفلة الكل بيعزف: الـ dropout للـ training بس.

صفّر كل neuron باحتمال p أثناء التدريب. وكبّر في 1/(1−p) عشان تحافظ على متوسط الـ activation. ده الـ dropout (التسرب)، وبيمنع التعاون الضار. ووقت الاختبار كل الـ neurons شغّالة — والشبكة بتتصرّف زي متوسط عدد كبير من الـ sub-networks.

معدل معتاد
p = 0.1–0.5
الـ inference
مقفول
8 / 13
ML 101
M06 · L04
الاستقرار

الـ batch normalization

اعمل normalization للـ pre-activations في كل layer على الـ mini-batch عشان تبقى بمتوسط صفر وvariance واحد. وبعدين طبّق scale بيتعلّم γ وshift β. ده الـ batch normalization (تطبيع الدفعة): بيشيل الـ internal covariate shift، ويسمح بـ learning rates أعلى، ويشتغل كـ regularization خفيف.

الـ batch normalization
\hat{x}=\frac{x-\mu_B}{\sqrt{\sigma_B^2+\epsilon}}\quad y=\gamma\hat{x}+\beta
9 / 13
ML 101
M06 · L04
نجمّع الحتت

الوصفة الافتراضية

  • الـ loss: cross-entropy (classification) أو MSE (regression)
  • الـ optimizer: AdamW، β1=0.9، β2=0.999، weight decay 0.01–0.1
  • الـ learning rate: cosine annealing مع linear warmup (5–10% من الخطوات)
  • الـ batch: 32–256؛ وscaling للـ learning rate بالتناسب
  • الـ regularization: dropout + batch normalization + weight decay
10 / 13
ML 101
اختبار سريع

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

أربع أسئلة عن صنعة التدريب — اختيار الـ loss، وخطوة الـ SGD، وحجم الـ batch، والـ dropout.

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

11 / 13
ML 101
M06 · L04
ممارسة الظبط

الـ ablation المنهجي

الوصفة نقطة بداية، مش معادلة جاهزة. غيّر مكوّن واحد كل مرة وثبّت الباقي. الـ datasets الكبيرة بتستحمل regularization أقل؛ والـ models الكبيرة غالبًا محتاجة أكتر. ده الـ ablation (الاستئصال): المنهج العلمي متطبّق على الـ hyperparameters.

قاعدة تقريبية
غيّر حاجة واحدة كل مرة وقيس أثرها على الـ validation loss
12 / 13
ML 101
الخلاصة
مراجعة

اتعلّمت إيه

الـ loss لازم تمشي مع المهمة. الـ SGD هو الأساس؛ والـ Adam بيكيّف المعدلات لكل parameter؛ والـ AdamW بيصلّح الـ weight decay. والـ cosine annealing مع الـ warmup بيحسّن الأداء النهائي. والـ batches الصغيرة بتعمّم أحسن. والـ dropout والـ batch normalization بيعملوا regularization وبيثبّتوا. واعمل ablation بمنهجية عشان تفهم كل حتة.

الوحدة خلصت
الوحدة السابعة: الـ regularization ←
13 / 13