أسئلة أساسيات ML

التحسين والتدريب

5 دقيقة للقراءة

متغيرات Gradient Descent

سؤال المقابلة: "اشرح خوارزميات gradient descent المختلفة والمقايضات."

1. Batch Gradient Descent (BGD)

  • الإيجابيات: تقارب مستقر، تدرج دقيق
  • السلبيات: بطيء للبيانات الكبيرة، كثيف الذاكرة
  • الاستخدام: مجموعات بيانات صغيرة

2. Stochastic Gradient Descent (SGD)

  • الإيجابيات: تحديثات سريعة، يمكن الهروب من الحد الأدنى المحلي
  • السلبيات: تحديثات صاخبة، لا يتقارب بدقة
  • الاستخدام: التعلم عبر الإنترنت، مجموعات بيانات كبيرة

3. Mini-Batch SGD

  • الإيجابيات: أفضل ما في العالمين، صديق لـ GPU
  • السلبيات: يتطلب ضبط حجم الدفعة
  • الاستخدام: الأكثر شيوعاً في الممارسة

4. Momentum

  • الفائدة: يتسارع في الاتجاه ذي الصلة، يخمد التذبذبات
  • Hyperparameter: β عادة 0.9

5. Adam

  • الإيجابيات: معدلات تعلم تكيفية، يعمل جيداً خارج الصندوق
  • الافتراضيات: β1=0.9, β2=0.999, ε=1e-8
  • الاستخدام: الاختيار الافتراضي لمعظم التعلم العميق

استراتيجيات معدل التعلم

سؤال المقابلة: "كيف تختار وتضبط معدل التعلم؟"

1. معدل تعلم ثابت

  • بسيط لكن دون المستوى الأمثل

2. Step Decay

lr = initial_lr * (decay_rate ** (epoch // drop_every))

3. Exponential Decay

lr = initial_lr * exp(-decay_rate * epoch)

4. Cosine Annealing

  • تسوس سلس يتبع منحنى جيب التمام
  • يُستخدم في النماذج الحديثة

5. Learning Rate Warmup

  • ابدأ صغيراً، زد خطياً للهدف
  • يمنع عدم الاستقرار المبكر
  • شائع في تدريب transformer

دوال الخسارة

سؤال المقابلة: "ما دالة الخسارة التي يجب استخدامها للمهمة X؟"

التصنيف

Binary Cross-Entropy:

  • الاستخدام: تصنيف ثنائي مع إخراج sigmoid

Categorical Cross-Entropy:

  • الاستخدام: تصنيف متعدد الفئات مع إخراج softmax

Focal Loss:

  • يقلل وزن الأمثلة السهلة
  • الاستخدام: عدم توازن فئة شديد

الانحدار

Mean Squared Error (MSE):

  • حساس للقيم الشاذة
  • يعاقب الأخطاء الكبيرة أكثر

Mean Absolute Error (MAE):

  • قوي للقيم الشاذة
  • وزن متساوٍ لجميع الأخطاء

Huber Loss:

  • يجمع MSE وMAE
  • L2 للأخطاء الصغيرة، L1 للكبيرة

أفضل ممارسات التدريب

1. معالجة البيانات المسبقة

  • التطبيع (mean=0، std=1)
  • تحجيم Min-max

2. تهيئة الأوزان

  • Xavier/Glorot لـ tanh/sigmoid
  • He Initialization لـ ReLU

3. Batch Normalization

  • يطبع مدخلات الطبقة
  • يسمح بمعدلات تعلم أعلى

4. Gradient Clipping

  • يمنع تدرجات منفجرة

5. Early Stopping

  • يراقب خسارة التحقق
  • يوقف عند توقف التحسن

سيناريوهات التصحيح في المقابلة

س: "خسارة التدريب تستقر عند قيمة عالية. ما الخطأ؟" ج:

  • معدل تعلم منخفض جداً → زد
  • تهيئة سيئة → جرّب He/Xavier
  • تدرج متلاشٍ → تحقق من التنشيطات، أضف batch norm
  • نموذج بسيط جداً → زد السعة

س: "خسارة التدريب تنخفض لكن خسارة التحقق تزداد؟" ج:

  • Overfitting
  • الحلول: Dropout، L2 regularization، بيانات أكثر، early stopping

س: "الخسارة NaN أو تنفجر؟" ج:

  • معدل تعلم مرتفع جداً → قلل
  • تدرجات منفجرة → Gradient clipping
  • قسمة على صفر → أضف epsilon
  • إدخال غير مطبّع → طبّع الميزات

النقاط الرئيسية

  1. Adam افتراضي - يعمل جيداً لمعظم المشاكل
  2. LR أهم hyperparameter - استخدم LR finder أو ابدأ بـ 3e-4
  3. طبّع المدخلات - حاسم للتقارب
  4. He init لـ ReLU - يمنع تدرجات متلاشية
  5. راقب خسارتي التدريب والتحقق - Early stopping يمنع overfitting

:::