تقنية

زخم Nesterov: أين يُحسب التدرج قبل تحديث المعامل؟

فرعان من معامل ابتدائي واحد يوضحان اختلاف موضع الاشتقاق وناتج خطوتي الزخم العادي وNesterov
النظر للأمام موضع حسابي؛ ليست نتيجة خطوة واحدة برهانًا على تفوق دائم.

في صيغة زخم Nesterov الموضحة في الورقة، نحسب التدرج عند موضع ينتج من إضافة أثر الحركة السابقة إلى المعامل الحالي. [1]

الخلاصة السريعة

موضع حساب التدرج هو الفرق الأساسي هنا: نستخدم الموضع المتوقع من الزخم السابق بدل المعامل الحالي، ثم نحسب الإزاحة الجديدة. [1]

  • السرعة في هذه الصيغة إزاحة تشمل معدل التعلم والإشارة السالبة؛ الموضع المتوقع يساوي المعامل الحالي زائد μ مضروبًا في السرعة السابقة. [1]
  • لخسارة نصف مربع المعامل، عند معامل 2 وسرعة سابقة سالب 0.1 وزخم 0.8، يكون موضع حساب التدرج 1.92.
  • بمعدل تعلم 0.2 تصبح إزاحة Nesterov سالب 0.464 والمعامل 1.536؛ الزخم العادي يعطي 1.52 من الحالة نفسها.
  • النظر للأمام يعني موضعًا حسابيًا ولا يعني بيانات مستقبلية؛ مقارنة خطوة واحدة في هذا المثال لا تثبت تفوق محسن.

ثبّت معنى السرعة أولًا

تستخدم الورقة معادلة v الجديدة = μ × v السابقة − η × التدرج، ثم θ الجديدة = θ الحالية + v الجديدة. في الزخم العادي يحسب التدرج عند θ الحالية؛ وفي صيغة Nesterov يحسب عند θ الحالية + μ × v السابقة. [1]

تمثل v هنا حركة المعامل، ولذلك تشمل أثر معدل التعلم والإشارة. لا تستخدم القيمة نفسها مكان حالة أخرى تعرف بأنها مجموع تدرجات موجب ثم تطرحها لاحقًا. قبل مقارنة تنفيذين، اكتب الموضع الذي يشتقان عنده ومعنى المتغير المخزن.

حدد الموضع الذي ستشتق عنده

نختار خسارة تعليمية L(θ) = θ² ÷ 2، فيكون تدرجها g(θ) = θ. هذه دالة من إعداد المثال، وليست نتائج تدريب على مجموعة بيانات. نبدأ بالمعامل 2، وسرعة سابقة سالب 0.1، ومعامل زخم μ يساوي 0.8.

أثر الحركة السابقة يساوي 0.8 × سالب 0.1 = سالب 0.08. لذلك موضع النظر للأمام هو 2 − 0.08 = 1.92. التدرج في هذا الموضع 1.92، بينما التدرج عند المعامل الحالي 2. صار لدينا فرق محدد في مكان الاشتقاق، لا مجرد اسمين لطريقة واحدة.

هذا الموضع مؤقت للحساب؛ لا نعلن أنه المعامل النهائي. فالخطوة الجديدة ستجمع أثر الحركة السابقة وتصحيح التدرج، ثم تُضاف الإزاحة الناتجة إلى المعامل الحالي.

احسب الخطوتين من الحالة نفسها

ثبت معدل التعلم η عند 0.2. في خطوة Nesterov تكون الإزاحة سالب 0.08 − 0.2 × 1.92 = سالب 0.464. نضيفها إلى المعامل الحالي 2 فنحصل على 1.536.

في الزخم العادي، عند الحالة السابقة نفسها، نستعمل تدرج المعامل الحالي 2. تصبح الإزاحة سالب 0.08 − 0.2 × 2 = سالب 0.48، ويصير المعامل 1.52. أبقينا الخسارة والحالة والإعدادات ثابتة كي نعزل فرق موضع حساب التدرج.

كانت الخسارة الابتدائية 2. بعد الخطوتين تصبح نحو 1.179648 في حساب Nesterov و 1.1552 في حساب الزخم العادي. انخفضت كلتاهما هنا، لكن قيمة العادي أصغر في هذه الخطوة المختارة. لذلك لا نحول شرح الآلية إلى وعد بأنه أفضل في كل خطوة.

افصل الموضع المتوقع عن التنبؤ بالمستقبل

كلمة «الأمام» في هذا الحساب لا تضيف ملاحظات لم تصل بعد، ولا تتنبأ بالقيمة الحقيقية في تجربة لاحقة. نحن نستعمل دالة محددة وحركة مخزنة لصنع موضع اشتقاق مختلف، ثم نحسب تحديثًا واحدًا.

يمكن للقارئ مراجعة الأرقام بالبدء من السرعة القديمة، ثم كتابة موضع الاشتقاق، ثم الإزاحة النهائية. حفظ هذه المراحل يمنع إضافة الحركة القديمة مرتين. ولم نشغّل نموذجًا أو نقارن منحنيات تدريب؛ تحديد المحسن الأنسب لمسألة أخرى يحتاج دليلًا يخص تلك المسألة، وليس ترتيب نتيجتين في هذا المثال.

المصادر ومتابعة القراءة

  1. Sutskever et al.: On the importance of initialization and momentum in deep learning (يفتح في نافذة جديدة)proceedings.mlr.press

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.