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

نزول التدرج العشوائيSGD

اكتشف كيف يعمل نزول التدرج العشوائي على تحسين نماذج التعلم الآلي، مما يتيح التدريب الفعال لمجموعات البيانات الكبيرة ومهام التعلم العميق.

تُعد خوارزمية نزول التدرج العشوائيSGD) حجر الزاوية خوارزمية التحسين المستخدمة بكثرة في التعلم الآلي (ML) و والتعلم العميق (DL). تعمل كقوة دافعة وراء تدريب النموذج، حيث تعدل بشكل متكرر الأوزان الداخلية أوزان النموذج الداخلي والتحيزات لتقليل الخطأ المحسوب بواسطة دالة خسارة. على عكس التقليدية، والتي تعالج مجموعة البيانات بأكملها لحساب تحديث واحد، يعدل SGD معلمات النموذج باستخدام مثال تدريبي واحد فقط يتم اختياره عشوائيًا في كل مرة. هذا النهج "العشوائي" أو العشوائي يجعل الخوارزمية فعالة من الناحية الحسابية وقابلة للتطوير بشكل كبير، مما يخلق مسارًا عمليًا للتدريب على البيانات الضخمة حيث تكون معالجة مجموعة البيانات الكاملة مرة واحدة تكون مثبطة للذاكرة.

آلية عمل نزول التدرج الاحتمالي

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

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

خوارزميات التحسين SGD مقابل خوارزميات التحسين الأخرى

يعد فهم كيفية اختلاف مفهوم SGD عن المفاهيم ذات الصلة أمرًا حيويًا لاختيار الاستراتيجية المناسبة لـ بيانات التدريب الخاصة بك.

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

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

تُعد SGD ومتغيراتها هي المعيار لتدريب أنظمة الذكاء الاصطناعي الحديثة في مختلف الصناعات.

  1. الكشف عن الكائنات في الوقت الحقيقي: عند تدريب نماذج عالية الأداء مثل Ultralytics YOLO11 من أجل للكشف عن الأجسام، يجب على المُحسِّن معالجة آلاف الصور من مجموعات البيانات مثل COCO. SGD للنموذج أن يتعلم بسرعة ميزات مثل الحواف وأشكال الأجسام. تساعد الطبيعة العشوائية النموذج على على التعميم بشكل جيد، وهو أمر بالغ الأهمية لتطبيقات السلامة الحرجة مثل المركبات ذاتية القيادة التي تكتشف المشاة في الظروف الجوية المتنوعة.
  2. معالجة اللغات الطبيعية (NLP): التدريب النماذج اللغوية الكبيرة (LLMs) يتضمن مجموعات بيانات تحتوي على مليارات الكلمات. من المستحيل تحميل كل هذه البيانات في الذاكرة مرة واحدة. يُمكّن SGD النموذج من تعلم قواعد اللغة والسياق و وتحليل المشاعر بشكل تدريجي. هذه تدعم هذه الكفاءة تطوير المساعدة الافتراضية المتطورة وأدوات الترجمة.

تطبيق SGD مع Ultralytics

إن ultralytics تتيح المكتبة للمستخدمين التبديل بسهولة بين المُحسِّنات. بينما قد يكون AdamW هو الافتراضي لبعض المهام، غالبًا ما يُستخدم SGD للضبط الدقيق أو لمتطلبات بحثية محددة. يوضح المقتطف أدناه أدناه يوضح كيفية تحديد SGD صراحةً لتدريب نموذج.

from ultralytics import YOLO

# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)

يقوم هذا الرمز بتهيئة YOLO11 النموذج ويبدأ التدريب مع optimizer="SGD". لمزيد من التخصيص، ارجع إلى تكوين التدريب على النموذج التوثيق. أطر عمل مثل TensorFlow و سايكيت-ليرن توفر أيضًا تطبيقات قوية SGD لمختلف مهام التعلم الآلي.

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

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

انضم الآن