Ultralytics YOLO27: انضم إلى قائمة الانتظار.
ترخيص YOLO
العودة إلى مسرد Ultralytics

Stochastic Gradient Descent (SGD)

يدرّب SGD النموذج عبر تحديثات كثيرة ومنخفضة التكلفة للأوزان، تُحسب على دفعات عشوائية صغيرة من البيانات. يتناول الشرح قاعدة التحديث والزخم وحجم الدفعة والشفرة البرمجية.

الانحدار المتدرّج العشوائي (SGD) هو خوارزمية تحسين تدرّب النموذج عبر تحديث أوزانه تكراريًا باستخدام تدرّج الخسارة على عينة عشوائية صغيرة من بيانات التدريب، بدلًا من استخدام مجموعة البيانات كلها. ويمثل تدرّج كل عينة تقديرًا غير متحيز لكنه مشوش لتدرّج مجموعة البيانات الكاملة، ولذلك ينفّذ SGD تحديثات رخيصة عديدة خلال الوقت الذي يستغرقه الانحدار المتدرّج على الدفعة الكاملة لتنفيذ تحديث مكلف واحد. وينحدر هذا الأسلوب من طريقة التقريب العشوائي التي وضعها روبنز ومونرو عام 1951، ولا يزال، مع الزخم، محسّنًا قياسيًا لـالشبكات العصبية الالتفافية (CNNs).

آلية عمل SGD#

تأخذ كل خطوة من SGD دفعة مصغّرة B، وتحسب تدرّج الخسارة عليها باستخدام الانتشار العكسي، ثم تحرّك كل وزن خطوة صغيرة بعكس اتجاه ذلك التدرّج: w ← w − η·∇L_B(w)، حيث تمثل η معدل التعلّم. وبدقة أكبر، يستخدم SGD مثالًا واحدًا في كل خطوة، لكن أطر عمل التعلّم العميق تطبقه على دفعات مصغّرة من عشرات الأمثلة إلى آلافها، لذا يُستخدم مصطلحا «SGD» و«الانحدار المتدرّج بالدفعات المصغّرة» مترادفين عمليًا. ويعطي حجم الدفعة الأكبر تدرّجًا أقل تشويشًا واستفادة أفضل من العتاد، على حساب عدد أقل من التحديثات في كل حقبة.

يخلط التدريب البيانات في بداية كل حقبة، ويمر عليها على دفعات مصغّرة، وينفّذ خطوة واحدة لكل دفعة. ويُظهر ملاءمة خط لـ1,000 نقطة مشوشة الإجراء كاملًا:

import torch

torch.manual_seed(0)

# 1,000 noisy samples of y = 3x + 2
x = torch.randn(1000, 1)
y = 3 * x + 2 + 0.1 * torch.randn(1000, 1)

model = torch.nn.Linear(1, 1)
optimizer = torch.optim.SGD(model.parameters(), lr=0.05, momentum=0.9)

for epoch in range(5):
    # Reshuffle every epoch, then update the weights once per 32-sample mini-batch
    for idx in torch.randperm(1000).split(32):
        loss = torch.nn.functional.mse_loss(model(x[idx]), y[idx])
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    print(f"epoch {epoch}: w = {model.weight.item():.3f}, b = {model.bias.item():.3f}, loss = {loss.item():.4f}")

يصل الوزن إلى 3.081 والانحياز إلى 2.012 بعد حقبتين، أي 64 تحديثًا إجمالًا. وخلال الحقب الثلاث التالية، يواصل الوزن التحرك بين 2.967 و3.003 بدلًا من الاستقرار، لأن تدرّج كل دفعة مصغّرة يتضمن ضجيج أخذ العينات، وتظل خسارة الدفعة الأخيرة قريبة من 0.01، وهو تباين الضجيج المضاف إلى y.

معدل التعلّم والضوضاء وحجم الدفعة#

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

يتفاعل حجم الدفعة مع معدل التعلّم. وقد أتاح رفع معدل التعلّم بما يتناسب مع حجم الدفعة، مع إحماء لمدة خمس حقب، لـ ResNet-50 أن يتدرب على ImageNet في ساعة واحدة باستخدام دفعات صغيرة من 8,192 صورة من دون فقدان الدقة.

الزخم وزخم نيستيروف#

في وادٍ طويل وضيق على سطح الخسارة، يشير التدرّج غالبًا إلى اتجاه عرضي عبر الوادي، لذا يتعرج SGD العادي بين الجانبين بينما يحرز تقدمًا بطيئًا على طول القاع. يحتفظ الزخم بسرعة تراكمية، v ← μ·v + g، ويتحرك وفقها، w ← w − η·v، فتتراكم السرعة في اتجاهات التدرّج المتسقة، بينما تلغي الاتجاهات المتذبذبة بعضها بعضًا. ويُعد المعامل μ = 0.9 القيمة الافتراضية المعتادة. يحسب زخم نيستيروف التدرّج بعد خطوة استشرافية على طول السرعة، ما يخفف التجاوز أكثر. تنفذ آلية SGD في PyTorch كلا النوعين، وتطبق weight_decay بإضافة λ·w إلى التدرّج، وهو ما يعادل في SGD عقوبة L2 على الأوزان.

مقارنة SGD بالمحسّنات الأخرى#

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

ينشئ Ultralytics YOLO في التدريب خوارزمية SGD في PyTorch مع زخم Nesterov عند تعيين optimizer="SGD"، باستخدام lr0=0.01 وmomentum=0.937 افتراضيًا. ويتجاهل optimizer="auto" الافتراضي lr0، ويختار MuSGD، وهي خوارزمية هجينة تمزج تحديثات SGD وMuon، للتشغيلات التي تتجاوز 10,000 تكرار، ويختار AdamW للتشغيلات الأقصر.

مواضع استخدام SGD#

درّب SGD مع الزخم معظم شبكات CNN الرائدة على ImageNet. واستخدمت نماذج ResNet الأصلية زخمًا قدره 0.9، وتناقصًا للأوزان قدره 0.0001، ودفعات صغيرة من 256 صورة، مع معدل تعلّم بدأ عند 0.1 وكان يُقسم على 10 كلما استقر الخطأ. وخارج مجال التعلم العميق، تلائم فئتَا SGDClassifier وSGDRegressor في scikit-learn نماذج خطية مثل الانحدار اللوجستي وآلات متجهات الدعم الخطية باستخدام SGD، كما تدرّب طريقة partial_fit فيهما على مجموعات بيانات أكبر من أن تتسع لها الذاكرة، جزءًا بعد جزء.

استكشف الحلول

الرؤية الحاسوبية في الرياضة

الرؤية الحاسوبية في الرياضة

اكتشف كيف يعزّز Ultralytics YOLO الرؤية الحاسوبية الرياضية عبر تتبّع اللاعبين والكرة، وتحليلات الأداء، ورؤى التدريب، وإعادة تأهيل الرياضيين.
معرفة المزيد
الرؤية الحاسوبية للصور الجوية

الرؤية الحاسوبية للصور الجوية

حوّل صور الطائرات المسيّرة والصور الجوية إلى رؤى آنية للزراعة وتربية الأحياء المائية والحفاظ على البيئة والتحليل الجغرافي المكاني باستخدام Ultralytics YOLO.
معرفة المزيد
الرؤية الحاسوبية في قطاع الطيران والفضاء

الرؤية الحاسوبية في قطاع الطيران والفضاء

طبّق الرؤية الحاسوبية في مجال الطيران والفضاء باستخدام Ultralytics YOLO لفحص الطائرات، واكتشاف الأجسام الغريبة على المدارج (FOD)، والعمليات الأرضية في المطارات، واكتشاف عيوب المواد المركّبة.
معرفة المزيد
الرؤية الحاسوبية في مجال الأمن

الرؤية الحاسوبية في مجال الأمن

احمِ كل موقع باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري مراقبة المحيط، واكتشاف التهديدات، والتعرف على لوحات المركبات، والسلامة في مكان العمل.
معرفة المزيد
الرؤية الحاسوبية في الروبوتات

الرؤية الحاسوبية في الروبوتات

عزّز أداء الآلات الذكية باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري في الروبوتات الملاحة الذاتية والإدراك وتعقب الأجسام والتحكم الآني.
معرفة المزيد
الرؤية الحاسوبية في الخدمات اللوجستية

الرؤية الحاسوبية في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري فحص الطرود وفرزها وتتبع المركبات ومراقبة سلامة المستودعات في الوقت الفعلي.
معرفة المزيد
الرؤية الحاسوبية في تجارة التجزئة

الرؤية الحاسوبية في تجارة التجزئة

أعِد تصور تجارة التجزئة باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري تتبع المخزون ومراقبة الرفوف وإدارة الطوابير واستخلاص رؤى أذكى عن العملاء.
معرفة المزيد
الرؤية الحاسوبية في الرعاية الصحية

الرؤية الحاسوبية في الرعاية الصحية

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

الرؤية الحاسوبية في التصنيع

حسّن التصنيع باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية مراقبة الجودة واكتشاف العيوب والالتزام بمعدات الوقاية الشخصية وأتمتة خطوط التجميع.
معرفة المزيد
الرؤية الحاسوبية في قطاع السيارات

الرؤية الحاسوبية في قطاع السيارات

طبّق الرؤية الحاسوبية في قطاع السيارات باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية سلامة الطرق ومساعدة السائق وأتمتة المركبات لإنشاء طرق أكثر ذكاءً.
معرفة المزيد
الرؤية الحاسوبية في الزراعة

الرؤية الحاسوبية في الزراعة

أدخل الذكاء الاصطناعي البصري إلى الزراعة الذكية باستخدام نماذج Ultralytics YOLO. عزّز مراقبة المحاصيل وتتبع الماشية والزراعة الدقيقة لزيادة الإنتاجية وتحسينها.
معرفة المزيد

لنبنِ مستقبل الذكاء الاصطناعي معًا!

ابدأ رحلتك نحو مستقبل تعلّم الآلة