اكتشف كيف يعمل نزول التدرج العشوائي على تحسين نماذج التعلم الآلي، مما يتيح التدريب الفعال لمجموعات البيانات الكبيرة ومهام التعلم العميق.
تُعد خوارزمية نزول التدرج العشوائيSGD) حجر الزاوية خوارزمية التحسين المستخدمة بكثرة في التعلم الآلي (ML) و والتعلم العميق (DL). تعمل كقوة دافعة وراء تدريب النموذج، حيث تعدل بشكل متكرر الأوزان الداخلية أوزان النموذج الداخلي والتحيزات لتقليل الخطأ المحسوب بواسطة دالة خسارة. على عكس التقليدية، والتي تعالج مجموعة البيانات بأكملها لحساب تحديث واحد، يعدل SGD معلمات النموذج باستخدام مثال تدريبي واحد فقط يتم اختياره عشوائيًا في كل مرة. هذا النهج "العشوائي" أو العشوائي يجعل الخوارزمية فعالة من الناحية الحسابية وقابلة للتطوير بشكل كبير، مما يخلق مسارًا عمليًا للتدريب على البيانات الضخمة حيث تكون معالجة مجموعة البيانات الكاملة مرة واحدة تكون مثبطة للذاكرة.
الهدف الأساسي من تدريب شبكة عصبية هو التنقل في مشهد خطأ معقد للعثور على أدنى نقطة تمثل أعلى دقة. تحقق SGD ذلك من خلال دورة متكررة. أولاً، يقوم بحساب التدرج - أي اتجاه الزيادة الحادة في الخطأ - لعينة محددة باستخدام عينة محددة باستخدام الترحيل العكسي. ثم، يقوم تقوم بتحديث الأوزان في الاتجاه المعاكس لتقليل الخطأ.
يتم التحكم في حجم هذه الخطوة من خلال معدل التعلم، وهي قيمة حرجة يتم تكوينها أثناء ضبط البارامتر الفائق. لأن SGD يستخدم عينات مفردة، فإن المسار إلى الحد الأدنى يكون صاخبًا ومتعرجًا وليس خطًا مستقيمًا. هذه الضوضاء غالباً ما تكون مفيد، حيث يساعد النموذج على الهروب من الحلول الصغرى المحلية - حلول دون المستوى الأمثل حيث قد تتعثر الخوارزميات غير العشوائية مما يسمح لها بإيجاد حل عالمي أفضل. تتكرر هذه العملية للعديد من من الحقب الزمنية، أو تمريرات كاملة من خلال مجموعة البيانات، حتى يتقارب النموذج يتقارب النموذج. يمكن للقراء أن يستكشفوا الحدس الرياضي في ملاحظات ستانفورد CS231n للتحسين.
يعد فهم كيفية اختلاف مفهوم SGD عن المفاهيم ذات الصلة أمرًا حيويًا لاختيار الاستراتيجية المناسبة لـ بيانات التدريب الخاصة بك.
تُعد SGD ومتغيراتها هي المعيار لتدريب أنظمة الذكاء الاصطناعي الحديثة في مختلف الصناعات.
إن 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
لمختلف مهام التعلم الآلي.