Adam Optimizer
استكشف مُحسّن Adam للتعلم العميق. تعلم كيف يجمع بين الزخم وRMSProp لتقارب أسرع في نماذج مثل Ultralytics YOLO26.
مُحسِّن Adam، المختصر لـ Adaptive Moment Estimation، هو خوارزمية تحسين متطورة تُستخدم على نطاق واسع لتدريب نماذج التعلم العميق. لقد أحدث ثورة في هذا المجال من خلال الجمع بين مزايا نوعين آخرين من الامتدادات الشائعة لـ الانحدار العشوائي المتدرج (SGD): خوارزمية التدرج التكيفي (AdaGrad) والانتشار الجذري متوسط المربع (RMSProp). من خلال حساب معدلات تعلم تكيفية فردية لمعلمات مختلفة من تقديرات العزمين الأول والثاني للتدرجات، يتيح Adam للشبكات العصبية التقارب بشكل أسرع بكثير مقارنة بالطرق التقليدية. إن متانته ومتطلبات الضبط الأدنى تجعله الخيار الافتراضي للعديد من الممارسين الذين يبدؤون مشروع تعلم آلي (ML) جديداً.
كيف يعمل Adam#
في جوهره، يتضمن تدريب النموذج تقليل دالة الخسارة، والتي تقيس الفرق بين تنبؤات النموذج والبيانات الفعلية. عادةً ما تستخدم الخوارزميات القياسية حجم خطوة ثابت (معدل التعلم) للنزول في "مشهد الخسارة" نحو الحد الأدنى للخطأ. ومع ذلك، غالباً ما يكون هذا المشهد معقداً، ويضم ودياناً وهضاباً يمكن أن تحاصر الخوارزميات الأبسط.
يعالج Adam هذا الأمر من خلال الاحتفاظ بمخزنين تاريخيين لكل معامل:
-
الزخم (اللحظة الأولى): يشبه كرة ثقيلة تتدحرج على منحدر، حيث يتتبع المتوسط المتحرك للتدرجات السابقة للحفاظ على السرعة في الاتجاه ذي الصلة.
-
التباين (اللحظة الثانية): يتتبع هذا المتوسط المتحرك للتدرجات المربعة، مما يوسع نطاق معدل التعلم.
يسمح هذا الجمع للمُحسِّن باتخاذ خطوات أكبر في المناطق المسطحة من المشهد وخطوات أصغر وأكثر حذراً في المناطق الشديدة الانحدار أو الصاخبة. يتم تفصيل الآليات المحددة في ورقة بحث Adam التأسيسية بقلم Kingma و Ba، والتي أثبتت تفوقها التجريبي عبر مهام التعلم العميق (DL) المختلفة.
تطبيقات العالم الحقيقي#
أدت مرونة مُحسِّن Adam إلى اعتماده عبر جميع قطاعات الذكاء الاصطناعي (AI) تقريباً.
- معالجة اللغات الطبيعية (NLP): تعتمد نماذج اللغة الكبيرة، مثل المحولات التوليدية المدربة مسبقاً (GPT)، بشكل كبير على Adam (أو البديل الخاص به AdamW) للتدريب. تتعامل الخوارزمية مع التدرجات المتناثرة المرتبطة بمفردات واسعة ومجموعات بيانات ضخمة بكفاءة، مما يتيح إنشاء روبوتات محادثة وأنظمة ترجمة قوية.
- الرؤية الحاسوبية في الرعاية الصحية: في تحليل الصور الطبية، يجب أن تكتشف النماذج الشذوذات الدقيقة مثل الأورام في صور الرنين المغناطيسي. يساعد Adam الشبكات العصبية التلافيفية (CNNs) على التقارب بسرعة نحو حلول عالية الدقة، وهو أمر بالغ الأهمية عند تطوير أدوات تشخيصية لـ الذكاء الاصطناعي في الرعاية الصحية.
Adam مقابل SGD#
على الرغم من أن Adam أسرع بشكل عام في التقارب، من المهم تمييزه عن الانحدار العشوائي المتدرج (SGD). يقوم SGD بتحديث أوزان النموذج باستخدام معدل تعلم ثابت وغالباً ما يُفضل للمراحل النهائية من تدريب نماذج كشف الكائنات الحديثة لأنه يمكنه أحياناً تحقيق تعميم أفضل قليلاً (دقة نهائية) على بيانات الاختبار.
ومع ذلك، فإن Adam "تكيفي"، مما يعني أنه يتعامل مع ضبط معدل التعلم تلقائياً. هذا يجعله أكثر سهولة في الاستخدام للتجارب الأولية وال architectures المعقدة حيث يكون ضبط SGD صعباً. بالنسبة للمستخدمين الذين يديرون التجارب على منصة Ultralytics، فإن التبديل بين هذه المُحسِّنات لمقارنة الأداء يعد غالباً خطوة أساسية في ضبط المعلمات الفائقة.
التنفيذ باستخدام Ultralytics#
تُجعل الأطر الحديثة مثل PyTorch ومكتبة Ultralytics استخدام Adam أمراً مباشراً. يُوصى غالباً ببديل شائع يسمى AdamW (Adam مع الاضمحلال الوزني) لأنه يحل المشكلات المتعلقة بالانتظام في خوارزمية Adam الأصلية. هذا فعال بشكل خاص لأحدث ال architectures مثل YOLO26، والتي تستفيد من الاستقرار الذي يوفره AdamW.
يوضح المثال التالي كيفية تدريب نموذج Ultralytics YOLO26 باستخدام مُحسِّن AdamW:
from ultralytics import YOLO
# Load the cutting-edge YOLO26n model
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimizer
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")بالنسبة للمطورين المهتمين بالأسس النظرية الأعمق، توفر الموارد مثل ملاحظات التحسين لـ Stanford CS231n تصورات ممتازة لكيفية مقارنة Adam بخوارزميات أخرى مثل RMSProp و AdaGrad. بالإضافة إلى ذلك، توفر وثائق مُحسِّن PyTorch تفاصيل تقنية حول الوسائط وتفاصيل التنفيذ المتاحة للتخصيص.






