Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

تلاشي التدرج

تعرف على تأثير التدرجات المتفجرة على التعلم العميق واكتشف تقنيات التخفيف المثبتة فعاليتها مثل قص التدرج لضمان تدريب مستقر لـ Ultralytics .

تحدث التدرجات المتفجرة أثناء تدريب الشبكات العصبية الاصطناعية عندما تتراكم التدرجات — القيم المستخدمة لتحديث أوزان الشبكة — وتصبح كبيرة بشكل مفرط. تحدث هذه الظاهرة عادةً أثناء الانتشار الخلفي، وهي العملية التي تقوم فيها الشبكة بحساب الأخطاء وتعديل نفسها لتحسين الدقة. عندما تتضاعف إشارات الخطأ هذه بشكل متكرر عبر الطبقات العميقة، يمكن أن تنمو بشكل كبير، مما يؤدي إلى تحديثات ضخمة على لا يتم تعيين أوزان النموذج يدويًا ولكن يتم "تعلمها" من البيانات. تبدأ العملية بتهيئة الأوزان بأرقام عشوائية صغيرة. أثناء التدريب، يقوم النموذج بعمل تنبؤات على بيانات التدريب، وتقوم دالة الخسارة بحساب مدى خطأ هذه التنبؤات. ثم يتم استخدام إشارة الخطأ هذه في عملية تسمى الانتشار الخلفي لحساب تدرج الخسارة بالنسبة لكل وزن. تقوم خوارزمية التحسين، مثل تدرج تنازلي عشوائي (SGD)، بعد ذلك بضبط الأوزان في الاتجاه المعاكس للتدرج لتقليل الخطأ. تتكرر هذه الدورة لعدة حقبات حتى يتوقف أداء النموذج على مجموعة بيانات التحقق منفصلة عن التحسن، وهي علامة على أنه تعلم الأنماط في البيانات.. هذا عدم الاستقرار يمنع النموذج من التلاقي، مما يؤدي فعليًا إلى تعطيل عملية التعلم وغالبًا ما يتسبب في أن تؤدي دالة الخسارة إلى NaN (ليست رقماً) القيم.

آليات عدم الاستقرار

لفهم سبب انفجار التدرجات، من المفيد النظر إلى بنية معماريات التعلم العميق. في الشبكات العميقة، مثل الشبكات العصبية المتكررة (RNNs) أو الشبكات العصبية التلافيفية العميقة جدًا (CNNs)، فإن التدرج للطبقات المبكرة هو ناتج مصطلحات من جميع الطبقات اللاحقة. إذا كانت هذه المصطلحات أكبر من 1.0، فإن الضرب المتكرر يعمل مثل تأثير كرة الثلج.

يؤدي هذا إلى ظهور سيناريو حيث يتخذ المحسّن خطوات كبيرة للغاية ، متجاوزًا الحل الأمثل في بيئة الأخطاء. وهذا تحدٍ شائع عند التدريب على بيانات معقدة باستخدام خوارزميات قياسية مثل الانحدار العشوائي التدرجي (SGD).

تقنيات الوقاية والتخفيف

يستخدم تطوير الذكاء الاصطناعي الحديث عدة تقنيات قياسية لمنع التدرجات من الخروج عن السيطرة، مما يضمن تدريبًا موثوقًا للنموذج.

  • قص التدرج: هذا هو التدخل الأكثر مباشرة. يتضمن تحديد قيمة عتبة. إذا تجاوزت قيمة متجه التدرج هذه العتبة، يتم تقليصها (قصها) لتتناسب مع الحد. هذه التقنية قياسية في أطر معالجة اللغة الطبيعية وتسمح للنموذج بمواصلة التعلم بشكل مستقر.
  • تطبيع الدُفعات: من خلال تطبيع مدخلات كل طبقة بحيث يكون متوسطها صفرًا وتباينها واحدًا، يمنع تطبيع الدُفعات القيم من أن تصبح كبيرة جدًا أو صغيرة جدًا. يؤدي هذا التغيير الهيكلي إلى تسهيل عملية التحسين بشكل كبير.
  • تهيئة الوزن: تحدد استراتيجيات التهيئة المناسبة، مثل تهيئة Xavier (أو تهيئة Glorot)، الأوزان الأولية بحيث يظل تباين التنشيطات كما هو عبر الطبقات.
  • الوصلات المتبقية: تقدّم بنى مثل الشبكات المتبقية (ResNets) وصلات تخطي. تسمح هذه المسارات للتدرجات بالتدفق عبر الشبكة دون المرور عبر كل وظيفة تنشيط غير خطية، مما يخفف من التأثير التكاثري.
  • المحسّنات المتقدمة: تستخدم خوارزميات مثل Adam معدلات تعلم تكيفية للمعلمات الفردية، والتي يمكنها التعامل مع مقاييس التدرج المتغيرة بشكل أفضل من SGD الأساسي.

التدرجات المتفجرة مقابل التدرجات المتلاشية

غالبًا ما تتم مناقشة مشكلة التدرج المتفجر جنبًا إلى جنب مع نظيرتها، وهي التدرج المتلاشي. وكلاهما ينبع من قاعدة التفاضل والتكامل المستخدمة في الانتشار العكسي، ولكنهما يظهران بطرق متعاكسة.

  • انفجار التدرج: يصبح التدرج كبيرًا جدًا (أكبر من 1.0). يؤدي هذا إلى عدم استقرار تحديثات الوزن والتدفق العددي والتباعد. غالبًا ما يتم إصلاحه بقص التدرج.
  • تلاشي التدرج: يصبح التدرج صغيرًا جدًا (أقل من 1.0) ويقترب من الصفر. يؤدي هذا إلى توقف الطبقات السابقة من الشبكة عن التعلم تمامًا. غالبًا ما يتم إصلاح هذا باستخدام وظائف التنشيط مثل ReLU أو المتغيرات المتسربة.

تطبيقات واقعية

يعد التعامل مع حجم التدرج أمرًا بالغ الأهمية لنشر حلول الذكاء الاصطناعي القوية في مختلف الصناعات.

  1. الذكاء الاصطناعي التوليدي ونمذجة اللغة: التدريب تتطلب نماذج اللغة الكبيرة (LLMs) أو النماذج مثل GPT-4 معالجة تسلسلات طويلة للغاية من النص. بدون آليات مثل قص التدرج وتطبيع الطبقة، فإن التدرجات المتراكمة على مدى مئات الخطوات الزمنية ستؤدي إلى فشل التدريب على الفور. تضمن التدرجات المستقرة أن يتعلم النموذج البنى النحوية المعقدة والسياق.
  2. الرؤية الحاسوبية المتقدمة: في مهام مثل الكشف عن الأشياء، تستخدم النماذج الحديثة مثل YOLO26 بنى عميقة تتكون من مئات الطبقات. تدمج Ultralytics التوحيد المتقدم والكتل المتبقية بشكل أصلي، مما يضمن للمستخدمين إمكانية التدريب على مجموعات بيانات ضخمة مثل COCO دون الحاجة إلى ضبط عتبات التدرج يدويًا. هذه الاستقرار ضروري عند استخدام Ultralytics لسير عمل التدريب الآلي.

مثال على كود Python

في حين أن المكتبات عالية المستوى غالبًا ما تتعامل مع هذا الأمر تلقائيًا، يمكنك تطبيق قص التدرج بشكل صريح في PyTorch أثناء حلقة تدريب مخصصة. يوضح هذا المقتطف كيفية قص التدرجات قبل أن يقوم المحسن بتحديث الأوزان.

import torch
import torch.nn as nn

# Define a simple model and optimizer
model = nn.Linear(10, 1)
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)

# Simulate a training step
loss = torch.tensor(100.0, requires_grad=True)  # Simulated high loss
loss.backward()

# Clip gradients in place to a maximum norm of 1.0
# This prevents the weight update from being too drastic
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

# Update weights using the safe, clipped gradients
optimizer.step()

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن