Learning Rate
تعرف على كيفية تأثير معدل التعلم على تدريب النموذج. اكتشف كيفية تحسين حجم الخطوة لنموذج Ultralytics YOLO26 لتحقيق أفضل أداء ممكن (SOTA) في اكتشاف الكائنات والمزيد.
معدل التعلم هو ضبط حرج لـ hyperparameter tuning يحدد حجم الخطوة التي يتخذها النموذج أثناء عملية التحسين. في سياق تدريب شبكة عصبية، فإنه يتحكم في مقدار تحديث الأوزان الداخلية للنموذج استجابةً للخطأ المقدر في كل مرة يعالج فيها النموذج دفعة من البيانات. تخيل الأمر وكأن شخصاً يمشي على جبل نحو وادٍ (أقل نقطة خطأ)؛ يحدد معدل التعلم طول خطوته. إذا كانت الخطوة كبيرة جداً، فقد يتخطى الوادي تماماً ويفوت القاع. وإذا كانت الخطوة صغيرة جداً، فقد يستغرق الوصول إلى الوجهة وقتاً طويلاً بشكل غير عملي.
معضلة "Goldilocks" في التحسين#
غالباً ما يُوصف العثور على معدل التعلم الأمثل بأنه عملية توازن داخل مهام machine learning. الهدف هو تقليل loss function، الذي يقيس الفرق بين تنبؤات النموذج والحقيقة الأساسية الفعلية. تعتمد هذه العملية بشكل كبير على optimization algorithm مثل stochastic gradient descent (SGD) أو Adam optimizer للتنقل في مشهد الخسارة.
- معدل التعلم مرتفع جداً: إذا تم تعيين القيمة عالية جداً، ستكون تحديثات أوزان النموذج جذرية. قد يؤدي هذا إلى ظاهرة "تجاوز الحد" (overshooting)، حيث يفشل النموذج في التقارب نحو حل وبدلاً من ذلك يتذبذب بشكل جامح أو تتباعد قيمه. يمكن أن تؤدي عدم الاستقرار هذه أحيانًا إلى مشكلة exploding gradient، مما يجعل عملية التدريب عديمة الفائدة.
- معدل التعلم منخفض جداً: على العكس من ذلك، يضمن حجم الخطوة الصغير للغاية أن يتحرك النموذج بحذر نحو الحد الأدنى، ولكنه قد يؤدي إلى underfitting لأن عملية التدريب تصبح بطيئة بشكل مؤلم. قد عالقاً النموذج بفعالية في حد أدنى محلي أو يستغرق آلاف epochs الإضافية لتعلم أنماط بسيطة، مما يهدر الموارد الحاسوبية. غالباً ما يستشير الباحثون PyTorch documentation on optimization لفهم كيف تتفاعل الخوارزميات المختلفة مع هذه القيم.
تطبيقات العالم الحقيقي#
تأثير تعديلات معدل التعلم واضح عبر مختلف الصناعات عالية المخاطر حيث يتم نشر computer vision tasks.
-
أنظمة القيادة الذاتية: في تطوير autonomous vehicles، يستخدم المهندسون مجموعات بيانات ضخمة لتدريب النماذج لـ object detection لتحديد المشاة وإشارات المرور. عند تطبيق transfer learning على نموذج مُدرب مسبقاً مثل YOLO26، يطبق المطورون عادةً معدل تعلم أصغر بكثير مما قد يستخدمونه أثناء التدريب الأولي. تضمن هذه "الضبط الدقيق" أن يتعلم النموذج تفاصيل بيئات القيادة المحددة (مثل الطرق الثلجية مقابل طرق الصحراء) دون محو قدرات استخراج الميزات العامة التي يمتلكها بالفعل.
-
تصوير التشخيص الطبي: في medical image analysis، مثل اكتشاف الأورام في صور الرنين المغناطيسي، تعد الدقة أمراً بالغ الأهمية. يخلق معدل التعلم المرتفع هنا خطراً يتمثل في تخطي النموذج لفروق النسيج الدقيقة التي تميز الأنسجة الخبيثة عن الأنسجة الحميدة. غالباً ما يستخدم الممارسون تقنية تسمى "الإحماء لمعدل التعلم"، حيث يزودون المعدل تدريجياً من الصفر إلى قيمة مستهدفة لتحقيق الاستقرار في المراحل الأولى من التدريب، مما يضمن استقرار أوزان neural network في تكوين مستقر قبل بدء التعلم العدواني. يمكنك قراءة المزيد حول هذه الاستراتيجيات في Google Machine Learning Crash Course.
التمييز بين المصطلحات ذات الصلة#
من المهم التمييز بين معدل التعلم ومعلمات التدريب الأخرى، حيث غالباً ما يتم تكوينها في نفس ملفات الإعدادات ولكنها تخدم أغراضاً مختلفة:
- معدل التعلم مقابل حجم الدفعة: بينما يتحكم معدل التعلم في حجم التحديث، يحدد batch size عدد عينات التدريب التي تتم معالجتها قبل حدوث التحديث. هناك علاقة قوية بين الاثنين؛ غالباً، عند زيادة حجم الدفعة، يجب على المرء أيضاً توسيع نطاق معدل التعلم للحفاظ على كفاءة التدريب، وهو مفهوم تم استكشافه في الأوراق البحثية حول large-batch training.
- معدل التعلم مقابل التضاؤل: يشير التضاؤل إلى استراتيجية يتم فيها تقليل معدل التعلم بشكل منتظم بمرور الوقت. قد يقوم الجدول الزمني بإسقاط المعدل بمعامل 10 كل 30 دورة. يساعد هذا النموذج على إجراء قفزات مفاهيمية كبيرة في وقت مبكر ثم تحسين دقته بخطوات أصغر نحو نهاية التدريب. هذه ميزة قياسية في Ultralytics Python package.
ضبط معدل التعلم في Ultralytics YOLO#
عند استخدام الأطر الحديثة، يمكنك بسهولة ضبط معدل التعلم الأولي (lr0) وكسر معدل التعلم النهائي (lrf). أدناه مثال على كيفية تكوين ذلك باستخدام العميل المتوافق مع Ultralytics Platform لتشغيل تدريب مخصص.
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 (State-of-the-Art) في مشاريع الذكاء الاصطناعي الخاصة بك.






