Adam Optimizer
استكشف مُحسِّن Adam للتعلّم العميق. تعلّم كيف يجمع بين الزخم وRMSProp لتسريع التقارب في نماذج مثل Ultralytics YOLO26.
مُحسِّن Adam، وهو اختصار لـ«تقدير العزوم التكيفي»، عبارة عن خوارزمية تحسين متقدمة تُستخدم على نطاق واسع لتدريب نماذج التعلم العميق. وقد أحدث تحولًا في هذا المجال من خلال الجمع بين مزايا امتدادين شائعين آخرين لـالانحدار المتدرج العشوائي (SGD): خوارزمية التدرج التكيفي (AdaGrad) وانتشار الجذر التربيعي للمتوسط (RMSProp). ومن خلال حساب [معدلات تعلّم](https://ultralytics-translation-2.invalid تكيفية فردية للمعلمات المختلفة، استنادًا إلى تقديرات العزمين الأول والثاني للتدرجات، يتيح Adam لـالشبكات العصبية التقارب بسرعة أكبر بكثير من الطرق التقليدية. كما أن متانته وحاجته المحدودة إلى الضبط تجعلان منه الخيار الافتراضي للعديد من الممارسين الذين يبدؤون مشروعًا جديدًا في تعلّم الآلة (ML).
كيفية عمل Adam#
في جوهره، يتضمن تدريب النموذج تقليل دالة الخسارة، التي تقيس الفرق بين تنبؤات النموذج والبيانات الفعلية. تستخدم الخوارزميات القياسية عادةً حجم خطوة ثابتًا (معدل التعلّم) للانحدار عبر «سطح الخسارة» نحو الحد الأدنى للخطأ. غير أن هذا السطح غالبًا ما يكون معقدًا، إذ يضم أخاديد وهضابًا قد تحاصر الخوارزميات الأبسط.
يعالج Adam هذه المشكلة من خلال الاحتفاظ بذاكرتين تاريخيتين مؤقتتين لكل معلمة:
-
الزخم (العزم الأول): على غرار كرة ثقيلة تتدحرج إلى أسفل منحدر، يتتبع هذا الذاكرةَ المتحركة للتدرجات السابقة للحفاظ على السرعة في الاتجاه ذي الصلة.
-
التباين (العزم الثاني): يتتبع هذا الذاكرةَ المتحركة لمربعات التدرجات، وهو ما يضبط معدل التعلّم.
يتيح هذا المزيج للمُحسِّن اتخاذ خطوات أكبر في المناطق المسطحة من السطح، وخطوات أصغر وأكثر حذرًا في المناطق شديدة الانحدار أو المليئة بالضوضاء. وقد فُصّلت الآليات المحددة في ورقة Adam البحثية التي أعدّها Kingma وBa، والتي أثبتت تفوقه التجريبي في مجموعة متنوعة من مهام التعلم العميق (DL).
التطبيقات الواقعية#
أدى تعدد استخدامات مُحسِّن Adam إلى اعتماده في جميع قطاعات الذكاء الاصطناعي (AI) تقريبًا.
- معالجة اللغة الطبيعية (NLP): تعتمد نماذج اللغة الكبيرة، مثل المحوّلات التوليدية المُدرَّبة مسبقًا (GPT)، اعتمادًا كبيرًا على Adam (أو متغيره AdamW) في التدريب. وتتعامل الخوارزمية بكفاءة مع التدرجات المتناثرة المرتبطة بالمفردات الضخمة ومجموعات البيانات الهائلة، مما يتيح إنشاء روبوتات محادثة وأنظمة ترجمة قوية.
- الرؤية الحاسوبية في الرعاية الصحية: في تحليل الصور الطبية، يجب على النماذج اكتشاف الشذوذ الدقيق، مثل الأورام، في صور التصوير بالرنين المغناطيسي. ويساعد Adam الشبكات العصبية الالتفافية (CNNs) على التقارب بسرعة نحو حلول عالية الدقة، وهو أمر بالغ الأهمية عند تطوير أدوات تشخيصية لـالذكاء الاصطناعي في الرعاية الصحية.
Adam مقابل SGD#
على الرغم من أن Adam يتقارب عمومًا بسرعة أكبر، فمن المهم تمييزه عن الانحدار المتدرج العشوائي (SGD). يحدّث SGD أوزان النموذج باستخدام معدل تعلّم ثابت، وغالبًا ما يُفضَّل في المراحل النهائية من تدريب نماذج [اكتشاف الأجسام](https://ultralytics-translation-1.invalid المتطورة، لأنه قد يحقق أحيانًا تعميمًا أفضل قليلًا (دقة نهائية) على بيانات الاختبار.
ومع ذلك، فإن Adam «تكيفي»، أي إنه يتولى ضبط معدل التعلّم تلقائيًا. وهذا يجعله أسهل استخدامًا بكثير في التجارب الأولية والبنى المعقدة التي يصعب فيها ضبط SGD. وبالنسبة إلى المستخدمين الذين يديرون التجارب على منصة Ultralytics، فإن التبديل بين هذين المُحسِّنين لمقارنة الأداء غالبًا ما يكون خطوة أساسية في ضبط المعلمات الفائقة.
التنفيذ باستخدام Ultralytics#
تجعل أطر العمل الحديثة مثل PyTorch ومكتبة Ultralytics استخدام Adam أمرًا مباشرًا. وغالبًا ما يُوصى بمتغير شائع يُسمى AdamW (Adam مع اضمحلال الأوزان)، لأنه يعالج مشكلات التنظيم في خوارزمية Adam الأصلية. ويكون ذلك فعالًا بوجه خاص مع البنى الأحدث مثل 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 تفاصيل تقنية حول الوسائط وتفاصيل التنفيذ المتاحة للتخصيص.









