Adam Optimizer

مُحسِّن آدم

الاختصار: Adam

التعريف

خوارزمية تحسين تكيفية تجمع الزخم وتكييف معدل التعلم لكل معامل باستخدام متوسطات متحركة للتدرج ولمربعه.

يحتفظ Adam بمتوسطين متحركين: الأول للتدرج (الزخم)، والثاني لمربع التدرج (يقيس حجمه). ثم يقسم الأول على جذر الثاني، فتحصل المعاملات ذات التدرجات الصغيرة على خطوات أكبر نسبياً.
يُستخدم افتراضياً في كثير من المشاريع، ويُفضَّل AdamW في المحوّلات لفصل تضاؤل الأوزان.

Definition

Adam is an adaptive optimiser that combines momentum with per-parameter learning rates using exponential moving averages of the gradient and its square.

شرح مبسّط للمبتدئين

كسائق يتحكم بسرعته: يبطّئ في المنعطفات الوعرة ويسرّع في الطرق المستقيمة، ولكل عجلة ضبطها الخاص.

شرح أكاديمي متخصص

قدّمه Kingma وBa (2015). يطبق تصحيحاً للانحياز في التقديرات الأولى للمتوسطات، ويوجد تحليل يبيّن حالات لا يتقارب فيها (Reddi وآخرون 2018).

أمثلة عملية

  • torch.optim.Adam بمعدل 1e-3.

التطبيقات والاستخدامات

  • تدريب المحوّلات والنماذج اللغوية.
  • تدريب الشبكات الالتفافية.

المزايا

  • أداء جيد افتراضياً مع قليل من الضبط.
  • يتعامل مع التدرجات المتفرقة.

القيود والعيوب

  • قد يعمّم أسوأ من SGD مع الزخم في بعض المسائل.
  • يستهلك ذاكرة إضافية للمتوسطات.

المعادلات الرياضية

تحديث Adam

m_t=\beta_1 m_{t-1}+(1-\beta_1)g_t,\; v_t=\beta_2 v_{t-1}+(1-\beta_2)g_t^2,\; \theta_{t+1}=\theta_t-\eta\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}

m متوسط التدرج وv متوسط مربعه؛ يقسم التحديث على جذر v لتكييف الخطوة لكل معامل.

شرح الرموز
الرمزالمعنى
\(g_t\)التدرج
\(m_t, v_t\)المتوسطان المتحركان
\(\hat m_t, \hat v_t\)بعد تصحيح الانحياز
\(\beta_1, \beta_2\)معاملا التضاؤل

تعلّم وراجع

مصطلحات مقترحة للتعلّم بعده