Learning Rate
تعلّم كيف يؤثر معدل التعلّم في تدريب النماذج. اكتشف كيفية تحسين حجم الخطوة لتحقيق أداء SOTA في الكشف عن الأجسام وغير ذلك باستخدام Ultralytics YOLO26.
معدل التعلّم هو إعداد بالغ الأهمية في ضبط المعلمات الفائقة، إذ يحدد حجم الخطوة التي يخطوها النموذج أثناء عملية التحسين. وفي سياق تدريب شبكة عصبية، يتحكم معدل التعلّم في مقدار تحديث الأوزان الداخلية للنموذج استجابةً للخطأ المقدَّر في كل مرة يعالج فيها النموذج دفعةً من البيانات. ويمكن تشبيهه بشخص يسير على جبل باتجاه وادٍ (أدنى نقطة للخطأ)؛ إذ يحدد معدل التعلّم طول خطوته. فإذا كانت الخطوة كبيرة جدًا، فقد يتجاوز الوادي بالكامل ويفوّت القاع. أما إذا كانت صغيرة جدًا، فقد يستغرق الوصول إلى الوجهة وقتًا طويلًا بصورة غير عملية.
معضلة «المعتدل» في التحسين#
غالبًا ما يوصف العثور على معدل التعلّم الأمثل بأنه عملية موازنة ضمن سير عمل تعلّم الآلة. والهدف هو تقليل دالة الخسارة، التي تقيس الفرق بين تنبؤات النموذج والقيم الحقيقية الفعلية. وتعتمد هذه العملية بدرجة كبيرة على خوارزمية تحسين مثل الانحدار المتدرج العشوائي (SGD) أو مُحسِّن Adam لاستكشاف مشهد الخسارة.
- معدل التعلّم مرتفع جدًا: إذا ضُبطت القيمة على مستوى مرتفع جدًا، فستكون تحديثات أوزان النموذج جذرية. وقد يؤدي ذلك إلى ظاهرة «تجاوز الهدف»، حيث يفشل النموذج في التقارب نحو حل، ويتذبذب بدلًا من ذلك بعنف أو يتباعد. وقد يؤدي عدم الاستقرار هذا أحيانًا إلى حدوث مشكلة تلاشي التدرجات المتفاقمة، مما يجعل عملية التدريب عديمة الجدوى.
- معدل التعلّم منخفض جدًا: على العكس، يضمن صِغر حجم الخطوة للغاية تحرك النموذج بحذر نحو الحد الأدنى، لكنه قد يؤدي إلى نقص التلاؤم لأن عملية التدريب تصبح بطيئة بصورة مؤلمة. وقد يعلق النموذج فعليًا عند حد أدنى محلي أو يستغرق آلاف العصور الإضافية لتعلّم أنماط بسيطة، مما يهدر الموارد حسابيًا. وغالبًا ما يرجع الباحثون إلى توثيق PyTorch حول التحسين لفهم كيفية تفاعل الخوارزميات المختلفة مع هذه القيم.
التطبيقات الواقعية#
يتضح تأثير تعديلات معدل التعلّم في مختلف الصناعات عالية المخاطر التي تُطبَّق فيها مهام الرؤية الحاسوبية.
-
أنظمة القيادة الذاتية: في تطوير المركبات ذاتية القيادة، يستخدم المهندسون مجموعات بيانات ضخمة لتدريب النماذج على اكتشاف الأجسام بهدف تحديد المشاة وإشارات المرور. وعند تطبيق التعلّم بالنقل على نموذج مُدرَّب مسبقًا مثل YOLO26، يستخدم المطورون عادةً معدل تعلّم أصغر بكثير من المعدل المستخدم أثناء التدريب الأولي. ويضمن هذا «الضبط الدقيق» أن يتعلم النموذج خصائص بيئات القيادة المحددة (مثل الطرق الثلجية مقارنةً بالطرق السريعة الصحراوية) من دون محو قدرات استخراج السمات العامة التي يمتلكها بالفعل.
-
التصوير التشخيصي الطبي: في تحليل الصور الطبية، مثل اكتشاف الأورام في صور الرنين المغناطيسي، تكون الدقة أمرًا بالغ الأهمية. إذ ينطوي معدل التعلّم المرتفع هنا على خطر تجاوز الفروق الدقيقة في النسيج التي تميز الأنسجة الخبيثة عن الأنسجة الحميدة. وغالبًا ما يستخدم الممارسون تقنية تُسمى «الإحماء التدريجي لمعدل التعلّم»، حيث يُزاد المعدل تدريجيًا من الصفر إلى قيمة مستهدفة لتحقيق الاستقرار في المراحل الأولى من التدريب، وضمان استقرار أوزان الشبكة العصبية في تكوين مستقر قبل بدء التعلّم المكثف. ويمكنك قراءة المزيد عن هذه الاستراتيجيات في الدورة التدريبية المكثفة في تعلّم الآلة من Google.
تمييز المصطلحات ذات الصلة#
من المهم التمييز بين معدل التعلّم ومعلمات التدريب الأخرى، إذ غالبًا ما تُضبط جميعها في ملفات الإعداد نفسها، لكنها تؤدي أغراضًا مختلفة:
- معدل التعلّم مقارنةً بحجم الدفعة: بينما يتحكم معدل التعلّم في مقدار التحديث، يحدد حجم الدفعة عدد عينات التدريب التي تُعالج قبل حدوث التحديث. وتوجد علاقة قوية بينهما؛ فعند زيادة حجم الدفعة، يجب غالبًا زيادة معدل التعلّم بما يتناسب معه للحفاظ على كفاءة التدريب، وهو مفهوم تتناوله الأبحاث حول التدريب باستخدام الدفعات الكبيرة.
- معدل التعلّم مقارنةً بالتضاؤل: يشير التضاؤل إلى استراتيجية يُخفَّض فيها معدل التعلّم بصورة منهجية بمرور الوقت. وقد يخفض مجدولٌ ما المعدلَ بعامل قدره 10 كل 30 عصرًا. ويساعد ذلك النموذج على إجراء قفزات مفاهيمية كبيرة في البداية، ثم تحسين دقته بخطوات أصغر قرب نهاية التدريب. وهذه ميزة قياسية في حزمة 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 (الأحدث) في مشروعات الذكاء الاصطناعي الخاصة بك.









