معدل التعلم
تعرف على كيفية تأثير معدل التعلم على تدريب النموذج. اكتشف كيفية تحسين حجم الخطوة لـ Ultralytics لتحقيق أداء SOTA في اكتشاف الكائنات والمزيد.
معدل التعلم هو
تكوين ضبط معلمات فرعية حرجة
يحدد حجم الخطوة التي يتخذها النموذج أثناء عملية التحسين. في سياق تدريب الشبكة العصبية،
يتحكم في مقدار تحديث الأوزان الداخلية للنموذج استجابة للخطأ المقدر في كل مرة
يعالج فيها النموذج مجموعة من البيانات. فكر في الأمر على أنه شخص يسير من أعلى جبل نحو وادي (أدنى نقطة
للخطأ)؛ معدل التعلم يحدد طول خطوته. إذا كانت الخطوة كبيرة جدًا، فقد يتخطى الوادي تمامًا
ويفوت القاع. إذا كانت الخطوة صغيرة جدًا، فقد يستغرق الوصول إلى الوجهة وقتًا طويلاً
لدرجة غير عملية.
معضلة "غولديلوكس" في التحسين
غالبًا ما يوصف العثور على معدل التعلم الأمثل بأنه عملية موازنة ضمن
سير عمل التعلم الآلي. والهدف من ذلك هو
تقليل دالة الخسارة، التي تقيس
الفرق بين تنبؤات النموذج والحقيقة الفعلية. تعتمد هذه العملية بشكل كبير على
خوارزمية تحسين مثل
الانحدار العشوائي التدرجي (SGD)
أو Adam للتنقل في
مشهد الخسارة.
-
معدل التعلم مرتفع للغاية: إذا تم تعيين القيمة على مستوى مرتفع للغاية، فستكون تحديثات وزن النموذج جذرية.
ويمكن أن يؤدي ذلك إلى ظاهرة "التجاوز"، حيث يفشل النموذج في التوصل إلى حل
وبدلاً من ذلك يتأرجح بشكل كبير أو يتباعد. يمكن أن يؤدي هذا عدم الاستقرار في بعض الأحيان إلى
مشكلة انفجار التدرج، مما يجعل
عملية التدريب عديمة الفائدة.
-
معدل التعلم منخفض للغاية: على العكس من ذلك، يضمن حجم الخطوة الصغير للغاية أن يتحرك النموذج
بحذر نحو الحد الأدنى، ولكنه قد يؤدي إلى
عدم الملاءمة لأن عملية التدريب تصبح
بطيئة للغاية. قد يعلق النموذج فعليًا في الحد الأدنى المحلي أو يستغرق آلاف
الفترات الزمنية الإضافية لتعلم أنماط بسيطة، مما يؤدي إلى إهدار
الموارد الحاسوبية. غالبًا ما يرجع الباحثون إلى
PyTorch حول التحسين لفهم
كيفية تفاعل الخوارزميات المختلفة مع هذه القيم.
تطبيقات واقعية
يظهر تأثير تعديلات معدل التعلم بوضوح في مختلف الصناعات ذات المخاطر العالية التي
تستخدم فيها مهام الرؤية الحاسوبية.
-
أنظمة القيادة الذاتية: في تطوير
المركبات الذاتية، يستخدم المهندسون مجموعات بيانات ضخمة
لتدريب النماذج على اكتشاف الأجسام لتحديد
المشاة وإشارات المرور. عند تطبيق
التعلم النقلي على نموذج مدرب مسبقًا مثل
YOLO26، يستخدم المطورون عادةً معدل تعلم أقل بكثير
مما يستخدمونه أثناء التدريب الأولي. يضمن هذا "الضبط الدقيق" أن النموذج يتعلم الفروق الدقيقة
لبيئات القيادة المحددة (مثل الطرق الثلجية مقابل الطرق السريعة الصحراوية) دون محو قدرات استخراج الميزات العامة
التي يمتلكها بالفعل.
-
التصوير التشخيصي الطبي: في
تحليل الصور الطبية، مثل الكشف عن
الأورام في فحوصات التصوير بالرنين المغناطيسي، الدقة أمر بالغ الأهمية. يؤدي معدل التعلم المرتفع هنا إلى خطر تخطي النموذج
الاختلافات الدقيقة في النسيج التي تميز الأنسجة الخبيثة عن الأنسجة الحميدة. غالبًا ما يستخدم الممارسون
تقنية تسمى "تسخين معدل التعلم"، حيث يتم زيادة المعدل تدريجيًا من صفر إلى القيمة المستهدفة
لتثبيت المراحل المبكرة من التدريب، مما يضمن
استقرار أوزان الشبكة العصبية في تكوين ثابت
قبل بدء التعلم المكثف. يمكنك قراءة المزيد عن هذه الاستراتيجيات في
دورةGoogle Learning Crash Course.
التفريق بين المصطلحات ذات الصلة
من المهم التمييز بين معدل التعلم ومعايير التدريب الأخرى، حيث يتم تكوينها غالبًا في
نفس ملفات التكوين ولكنها تخدم أغراضًا مختلفة:
-
معدل التعلم مقابل حجم الدفعة: بينما يتحكم معدل التعلم في حجم
التحديث، فإن حجم الدفعة يحدد عدد
عينات التدريب التي تتم معالجتها قبل حدوث التحديث. هناك علاقة قوية بين الاثنين؛ ففي كثير من الأحيان، عند
زيادة حجم الدفعة، يجب أيضًا زيادة معدل التعلم للحفاظ على كفاءة التدريب، وهو مفهوم
تم استكشافه في الأوراق البحثية حول التدريب على دفعات كبيرة.
-
معدل التعلم مقابل التضاؤل: يشير التضاؤل إلى استراتيجية يتم فيها تقليل معدل التعلم بشكل منهجي
بمرور الوقت. قد يقوم المجدول بتخفيض المعدل بمعامل 10 كل 30 حقبة. يساعد ذلك النموذج على تحقيق
قفزات مفاهيمية كبيرة في وقت مبكر ثم تحسين دقته بخطوات أصغر قرب نهاية التدريب. هذه
ميزة قياسية في Python Ultralytics Python .
تعيين معدل التعلم في Ultralytics YOLO
عند استخدام الأطر الحديثة، يمكنك بسهولة ضبط معدل التعلم الأولي (lr0) ونسبة معدل التعلم النهائية
(lrf). فيما يلي مثال على كيفية تكوين هذا باستخدام
منصة Ultralytics عميل متوافق لتشغيل تدريب مخصص.
from ultralytics import YOLO
# Load the YOLO26 model (latest state-of-the-art architecture)
model = YOLO("yolo26n.pt")
# Train the model with a custom initial learning rate
# lr0=0.01 sets the initial rate
# lrf=0.01 sets the final learning rate to (lr0 * lrf)
results = model.train(data="coco8.yaml", epochs=10, lr0=0.01, lrf=0.01)
بالنسبة للمستخدمين المتقدمين، يمكن لتقنيات مثل
LR Finder (التي شاع استخدامها بواسطة fast.ai) أن
تقوم بشكل أساسي بأتمتة اكتشاف أفضل قيمة ابتدائية من خلال تشغيل فترة تجريبية قصيرة حيث يتم زيادة المعدل بشكل أسي
حتى يتباعد الخسارة. غالبًا ما يكون إتقان هذا المعامل الفائق هو المفتاح لفتح
أداء SOTA (أحدث ما توصلت إليه التكنولوجيا) في مشاريع الذكاء الاصطناعي الخاصة بك.