Gradient Descent
يدرّب الانحدار المتدرج النماذج عبر تحديث أوزانها مرارًا بخطوات معاكسة لتدرج دالة الخسارة. ويتناول معدلات التعلم وSGD والزخم وAdam.
الانحدار المتدرج هو خوارزمية التحسين التكرارية التي تدرّب معظم نماذج التعلّم الآلي، من الانحدار الخطي إلى الشبكات العصبية الكبيرة. يحسب في كل خطوة تدرج دالة الخسارة بالنسبة إلى كل وزن في النموذج، ثم يحرّك كل وزن خطوة صغيرة في الاتجاه المعاكس، أي الاتجاه الذي تنخفض فيه الخسارة بأسرع معدل. قاعدة التحديث هي w ← w − η∇L(w)، حيث η هو معدل التعلّم. ومن الصور الشائعة لذلك متسلّق ينزل جبلًا وسط ضباب كثيف: إذ لا يستطيع رؤية الوادي، فيتحسس المنحدر تحت قدميه ويتحرك إلى الأسفل مرة بعد مرة حتى تستوي الأرض.
آلية عمل الانحدار المتدرج#
يتألف كل تكرار من ثلاثة أجزاء. تحسب المرور الأمامي التنبؤات والخسارة، وتحسب الانتشار العكسي تدرج الخسارة بالنسبة إلى كل وزن، ويحدّث المحسّن الأوزان. يشير التدرج إلى أعلى سطح الخسارة، وفق التعريف التفاضلي متعدد المتغيرات للتدرج، لذا يؤدي طرحه إلى تحريك الأوزان نزولًا.
تختلف الأنواع في مقدار البيانات التي تستخدمها كل خطوة. يحسب الانحدار المتدرج بالدفعات التدرج الدقيق على مجموعة بيانات التدريب كاملة، وهو دقيق لكنه بطيء مع مجموعات البيانات الكبيرة. ويقدّره الانحدار المتدرج العشوائي (SGD) انطلاقًا من مثال واحد، بينما يحسب الانحدار المتدرج بالدفعات الصغيرة، وهو المعيار في التعلّم العميق، المتوسط على حجم دفعة يتراوح من عشرات الأمثلة إلى آلافها لإبقاء وحدات GPU مشغولة. كما تساعد الضوضاء في تدرجات الدفعات الصغيرة الأوزان على تجاوز نقاط السرج والحدود الدنيا الحادة. ويُسمى المرور الكامل مرة واحدة عبر مجموعة التدريب حقبة.
اختيار معدل التعلّم#
يحدد معدل التعلم حجم الخطوة، ويكون عادةً أول معامل فائق يُضبط في الانحدار المتدرج. يهدر المعدل المنخفض جدًا موارد الحوسبة بالتقدم البطيء نحو الحد الأدنى، بينما يتجاوزه المعدل المرتفع جدًا؛ وفي دالة خسارة تربيعية، يجعل أي معدل يتجاوز 2 مقسومًا على انحناء دالة الخسارة كل خطوة أبعد عن الحد الأدنى من الخطوة السابقة. ويقلّل المقتطف أدناه (w − 2)²، التي يبلغ انحناؤها 2، باستخدام ثلاثة معدلات تعلم في PyTorch:
import torch
# Minimize loss(w) = (w - 2)^2, whose minimum is at w = 2, with three learning rates
for lr in [0.1, 0.5, 1.1]:
w = torch.tensor(5.0, requires_grad=True)
for step in range(20):
loss = (w - 2) ** 2
loss.backward() # w.grad now holds the slope 2 * (w - 2)
with torch.no_grad():
w -= lr * w.grad # step against the gradient
w.grad.zero_()
print(f"Learning rate {lr}: w = {w.item():.4f} after 20 steps")عند معدل 0.1، يظل الوزن عند 2.0346 بعد 20 خطوة؛ أما المعدل 0.5 فيصل إلى 2.0000 تمامًا لأنه يساوي مقلوب التقوس؛ بينما يتجاوز المعدل 1.1 القيمة بفارق متزايد في كل خطوة حتى يصل w إلى 117.0129. تبدأ جداول التدريب الحقيقية بفترة إحماء قصيرة، ثم تخفض المعدل، غالبًا بمنحنى جيب تمام، كي تظل الخطوات الأولى مستقرة وتستقر الخطوات الأخيرة بدقة.
الزخم وAdam والمحسّنات الحديثة#
يتعرج الانحدار المتدرج العادي عبر الوديان الضيقة لسطح الخسارة، لذا يستخدم معظم التدريب قواعد تحديث محسّنة. يجمع الزخم متوسطًا متحركًا للتدرجات السابقة ويتحرك في اتجاهه، ما يخفف التذبذب ويسرّع التقدم في الاتجاهات المتسقة. ويتتبع محسّن Adam أيضًا مربعات تدرجات كل معلمة ليمنح كل وزن حجم خطوة تكيفيًا خاصًا به، بينما يفصل AdamW اضمحلال الوزن عن ذلك التحديث. ويجعل Muon تحديث الزخم لكل مصفوفة أوزان ثنائية الأبعاد متعامدًا باستخدام تكرارات Newton-Schulz، كيلا يهيمن اتجاه واحد على الخطوة. ويختار تدريب Ultralytics YOLO26 باستخدام optimizer="auto" محسن AdamW بمعدل تعلّم ملائم لعدد الفئات، للتشغيلات التي تصل إلى 10,000 تكرار، كما يختار MuSGD، الذي يضيف إلى SGD تحديثات متعامدة على نمط Muon لأوزان الالتفاف والطبقات الخطية، للتشغيلات الأطول.
تطبيقات عملية#
يشكل الانحدار المتدرج محرك التدريب وراء كل أنظمة التعلّم العميق تقريبًا. ففي المركبات ذاتية القيادة، يضبط شبكات كشف الكائنات لتقليص الفجوة بين الصناديق المتوقعة والموسومة للمشاة والإشارات والمركبات عبر ملايين الإطارات. وفي تحليل الصور الطبية، يدرّب الشبكات العصبية الالتفافية التي تفصل الأورام عن الأنسجة السليمة في صور الرنين المغناطيسي والتصوير المقطعي المحوسب. وتُدرّب نماذج اللغة الكبيرة بالطريقة نفسها، باستخدام AdamW عادةً على تريليونات الرموز.
الانحدار المتدرج والمفاهيم ذات الصلة#
- الانتشار العكسي: يحسب الانتشار العكسي التدرجات باستخدام قاعدة السلسلة، ويستخدمها الانحدار المتدرج لتحديث الأوزان. وتُنفذ العمليتان تباعًا في كل خطوة تدريب، وغالبًا ما يُشار إليهما معًا.
- دالة الخسارة: تقيس دالة الخسارة مدى خطأ تنبؤات النموذج، ويعمل الانحدار المتدرج على خفض تلك القيمة.
- انفجار التدرج: عندما تنمو التدرجات بلا ضابط في الشبكات العميقة، يتخذ الانحدار المتدرج خطوات مدمرة؛ ويمنع قصّ التدرج ذلك بتحديد معيار التدرج قبل كل تحديث.
- الخوارزميات التطورية: تبحث هذه الأساليب الخالية من التدرجات عن المرشحين عبر أخذ عينات منهم واختيارهم دون حساب التدرجات، ما يجعلها مناسبة للأهداف غير القابلة للاشتقاق، مثل خيارات المعلمات الفائقة.










