Exploding Gradient
تتزايد التدرجات المتفجرة أسيًا أثناء الانتشار العكسي، ما يؤدي إلى تحديثات ضخمة للأوزان وقفزات في الخسارة وقيم NaN. يتناول هذا الموضوع أسبابها وعلاماتها وطرق معالجتها.
انفجار التدرج إخفاق تدريبي تنمو فيه التدرجات المحسوبة بواسطة الانتشار العكسي أُسيًا أثناء مرورها إلى الخلف عبر شبكة عصبية عميقة أو متكررة. عندئذ يطبّق الانحدار المتدرج تحديثات هائلة على أوزان النموذج، وتقفز دالة الخسارة أو تتحول إلى NaN أو inf، ويتباعد التدريب. وهذه هي الصورة المعاكسة لمشكلة تلاشي التدرج. حلّل Pascanu وMikolov وBengio المشكلتين في الشبكات العصبية المتكررة، واقترحوا قص معيار التدرج للتعامل مع انفجار التدرج، وهو إجراء وقائي لا يزال معيارًا في تدريب التعلم العميق اليوم.
أسباب انفجار التدرجات#
بحسب قاعدة السلسلة، يكون التدرج الذي يصل إلى طبقة مبكرة حاصل ضرب عامل لكل طبقة لاحقة، أو لكل خطوة زمنية في شبكة متكررة. وعندما تكون تلك العوامل أكبر من 1 باستمرار، ينمو حاصل الضرب أُسيًا مع العمق: فعامل مقداره 1.5 مكررًا عبر 30 طبقة يضاعف الإشارة بنحو 190,000 مرة. تشمل الأسباب الشائعة تهيئة الأوزان السيئة، ومعدل تعلم مرتفعًا جدًا، ومدخلات غير مطبّعة، وتسلسلات طويلة في النماذج المتكررة، وتجاوز السعة في التدريب بـالدقة المختلطة، حيث تتحول قيم FP16 التي تتجاوز 65,504 إلى inf. وتشمل العلامات منحنى خسارة يقفز فجأة أو يتحول إلى NaN، وسجلات معيار التدرج التي ترتفع بمقادير رتبية بين الخطوات، وأوزانًا تصبح NaN.
الوقاية والتخفيف#
تجمع معظم مسارات التدريب الحديثة بين عدة وسائل دفاعية من هذه الوسائل.
- قص التدرج: عندما يتجاوز معيار L2 العام لجميع التدرجات عتبة محددة، يُقلّص كل تدرج بالعامل نفسه. ويحافظ التحديث على اتجاهه، ولا يُحد إلا طوله.
- تطبيع الدفعات: يعيد تطبيع الدفعات وتطبيع الطبقات تحجيم التنشيطات في كل طبقة، ما يحافظ على استقرار مقياس الإشارات من طبقة إلى أخرى ويجعل سطح الخسارة أكثر سلاسة.
- التهيئة المتأنية: يضبط كل من تهيئة Xavier (Glorot) وتهيئة He أوزان البداية كي يظل تباين التنشيط ثابتًا تقريبًا من طبقة إلى أخرى.
- الوصلات المتبقية: توفر الوصلات التخطيّة مسارًا هوياتيًا للتدرجات حول كل كتلة، لذا تصبح إشارة الانتشار العكسي مجموع مسارات بدلًا من حاصل ضرب طويل واحد.
- إحماء معدل التعلم: يبدأ التدريب بمعدل تعلم صغير ثم يرفعه تدريجيًا خلال الخطوات الأولى، ما يتجنب التحديثات المبكرة الهائلة بينما لا تزال الأوزان وإحصاءات المُحسِّن غير مستقرة.
ينشئ المقتطف أدناه بنية من 30 طبقة، تضخّم كل منها المدخل بمقدار 1.5 ضعف، ثم يقص التدرج الناتج باستخدام PyTorch:
import torch
from torch import nn
torch.manual_seed(0)
# 30 stacked linear layers, each initialized to amplify its input by 1.5x
layers = [nn.Linear(64, 64, bias=False) for _ in range(30)]
for layer in layers:
nn.init.orthogonal_(layer.weight, gain=1.5)
model = nn.Sequential(*layers)
loss = model(torch.randn(8, 64)).pow(2).mean()
loss.backward()
# clip_grad_norm_ rescales all gradients in place and returns their norm before clipping
norm_before = nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
norm_after = nn.utils.get_total_norm([p.grad for p in model.parameters()])
print(f"Gradient norm before clipping: {norm_before:.2e}, after: {norm_after:.2f}")يبلغ معيار التدرج الخام 9.90e+10، ثم يصبح 1.00 بعد القص، لذا تظل خطوة المُحسِّن التالية محدودة مهما بلغ حجم التدرج الخام.
يشغّل تدريب Ultralytics YOLO26 هذا الإجراء الوقائي في كل خطوة: إذ يعيد المدرّب تحجيم تدرجات الدقة المختلطة إلى قيمها الأصلية، ويقص معيارها العام عند 10.0، ويتيح لـمُحجِّم التدرج تخطي أي تحديث لا يزال يتضمن قيم inf أو NaN. ويمكن لـمدرّب مخصص تغيير الحد، مثل خفضه إلى 0.1 في RT-DETR.
انفجار التدرجات وتلاشيها#
تنشأ المشكلتان كلتاهما عن حاصل ضرب عوامل كل طبقة في الانتشار العكسي. تؤدي العوامل الأكبر من 1 إلى انفجار التدرجات، ما ينتج عنه تحديثات غير مستقرة وتجاوز عددي للسعة وتباعد، والحل المعتاد هو القص. أما العوامل الأصغر من 1 فتقلّص التدرجات نحو الصفر، فتتوقف الطبقات المبكرة عن التعلم، وتشمل الحلول المعتادة دوال تنشيط غير مشبعة مثل ReLU والوصلات المتبقية والوحدات المتكررة ذات البوابات مثل LSTMs. ويساعد التطبيع والتهيئة المتأنية في التصدي للمشكلتين.
تطبيقات عملية#
تتدرب النماذج اللغوية الكبيرة لمئات الآلاف من الخطوات على تسلسلات نصية طويلة، حيث تُعد قفزات الخسارة المفاجئة خطرًا معروفًا، وتقص وصفات تدريبها التدرجات: فقد دُرّب GPT-3 باستخدام Adam، مع قص معيار التدرج العام عند 1.0.
في الرؤية الحاسوبية، تتدرب شبكات كشف الكائنات العميقة على مجموعات بيانات بحجم COCO وبمعدلات تعلم مرتفعة ودقة مختلطة، لذا يحول القص وتحجيم الخسارة دون إفساد الأوزان بسبب دفعة نادرة ذات قيم متطرفة. وتكون الكواشف المعتمدة على Transformer أكثر حساسية، إذ قد تقفز التدرجات عبر انتباه التصالب في مفككها، لذا تقص نماذج عائلة DETR مثل RT-DETR وDINO عادةً عند معيار أقصى يبلغ 0.1.










