التحسين1964تأسيسي9 دقيقة قراءة
بعض طرق تسريع تقارب الأساليب التكرارية
Some Methods of Speeding Up the Convergence of Iteration Methods
Polyak, B. T. — USSR Computational Mathematics and Mathematical Physics
المشكلة
يخطو خطوات صغيرة تتناسب مع ميل السطح تحته مباشرة. المشكلة تظهر حين يكون سطح الخسارة وادياً ضيّقاً مستطيلاً — حادّ الانحناء في اتجاه ومنبسطاً في آخر — فبدل أن يسير المُحسِّن على طول قاع الوادي، يتأرجح ذهاباً وإياباً بين جدرانه. وكلّما ساء رقم الحالة (نسبة أكبر انحناء إلى أصغره)، ازداد التأرجح حدّةً وتباطأ التقارب حتى يكاد يتوقّف.
الإسهام
أضاف بولياك حدّاً واحداً فقط إلى قاعدة تحديث الانحدار التدريجي: كسراً من الخطوة السابقة. هذا الحدّ يعمل كالقصور الذاتي في الفيزياء — يُراكم السرعة حين يشير التدرّج في الاتجاه ذاته باستمرار، ويُخمد التذبذبات حين يتأرجح. على الدوال التربيعية المحدّبة بقوّة، يُحسِّن الأمثل معدّل التقارب من (κ−1)/(κ+1) إلى (√κ−1)/(√κ+1) حيث κ رقم الحالة. الفارق عمليّاً هائل: مسألة برقم حالة κ=100 تحتاج نحو 200 خطوة لتنصيف الخطأ بدون زخم، لكن مع الزخم لا تحتاج إلا نحو 18 خطوة.
الأثر
كان الزخم أول تقنية «تسريع» في تاريخ الأمثَلة، ولا يزال حاضراً في كل مُحسِّن للتعلّم العميق تقريباً. مع الزخم هو الأداة الأساسية لتدريب الشبكات العصبية. الفكرة ألهمت مباشرةً تدرّج نيستيروف المُسرَّع (1983)، وهي مكوِّن جوهري في مُحسِّن Adam (2014) الذي يُعدّ اليوم الأكثر انتشاراً في الذكاء الاصطناعي. أمّا التشبيه الفيزيائي الذي طرحه بولياك — تخيُّل الأمثَلة ككرة تتدحرج على سطح — شكّل الطريقة التي يفكّر بها الباحثون في ديناميكيات الأمثَلة حتى اليوم.
تخيّل أنك تسير في وادٍ جبلي يلفّه الضباب ولا تملك إلا أن تتحسّس ميل الأرض تحت قدميك. هذا بالضبط ما يفعله الانحدار التدريجي: خطوة حذرة نحو الأسفل، توقّف، تحسُّس الميل من جديد، ثم خطوة أخرى. في وادٍ طويل وضيق ستجد نفسك تتأرجح بين الجدارين ذهاباً وإياباً بدل أن تمشي على طول القاع.
الآن تخيّل أنك كرة ثقيلة تتدحرج. حين يستمرّ الميل في الاتجاه نفسه تكتسب سرعة، وحين ينعكس الميل فجأة عند جدار الوادي تقاوم كتلتُك الانعكاس — تتباطأ بدل أن ترتدّ بالكامل. المعلومات المتاحة لم تتغيّر، لكنّ الزخم يحملك على طول قاع الوادي أسرع بكثير من الخطوات الحذرة المتردّدة.
المشكلة: التأرجح على السطوح سيئة رقم الحالة
لنفترض أننا نريد إيجاد القيمة الصغرى لدالة ملساء . الانحدار التدريجي القياسي يسير عكس اتجاه في كل خطوة:
حيث هو . لو كان السطح كرويّاً مثالياً — أي الانحناء متساوٍ في كل اتجاه — لعمل هذا بامتياز، لأنّ كل خطوة تتّجه مباشرة نحو القاع.
لكنّ سطوح الخسارة في مسائل الحقيقية نادراً ما تكون كروية. الشائع أنها وديان مستطيلة: حادّة الانحناء في بعض الاتجاهات ومنبسطة في أخرى. نسبة أكبر انحناء إلى أصغره تُعرف بـ .
هنا يقع الانحدار التدريجي في مأزق: إذا كبّرنا معدّل التعلّم بما يكفي للتقدّم في الاتجاه المنبسط، تجاوز المُحسِّن الهدف في الاتجاه الحادّ فنشأ . وإذا صغّرناه لتجنّب التذبذب، أصبح التقدّم في الاتجاه المنبسط بطيئاً بشكل مؤلم.
معدّل على دالة تربيعية محدّبة بقوّة هو . حين يكون تصبح هذه النسبة — أي أنّ كل خطوة لا تُقلّص الخطأ إلا بنسبة 2%، ونحتاج قرابة خطوة لمجرّد تنصيف الخطأ.
الفكرة: تذكّر خطوة الأمس
فكرة بولياك كانت في غاية البساطة: أضِف كسراً من الخطوة السابقة إلى الخطوة الحالية. بدلاً من أن يقرّر وجهته بناءً على الميل الحالي وحده، يأخذ في الحسبان الاتجاه الذي كان يسير فيه فعلاً.
يمكن تصوُّر الأمر كأنّنا نمنح المُحسِّن ذاكرة. الانحدار التدريجي بطبيعته بلا ذاكرة — ينسى كل شيء عند كل خطوة. الزخم يمنحه ذاكرة بمقدار خطوة واحدة: «كنت أتّجه هنا، فما لم يعترض التدرّج بقوّة، سأستمرّ.»
حين تشير التدرّجات باستمرار في الاتجاه نفسه (على طول قاع الوادي)، يتراكم الزخم وينمو حجم الخطوة الفعلي فيتسارع المُحسِّن. وحين تتعاقب التدرّجات بإشارات متعاكسة (التذبذب عند الجدران)، يُلغي حدّ الزخم جزءاً من التدرّج تلقائياً فيُخمد التذبذب.
هناك صيغة مكافئة أكثر شيوعاً تستعمل متغيّر سرعة :
هنا يمثّل سرعة «الكرة الثقيلة». في كل خطوة تتلاشى السرعة بمقدار (كأنّها احتكاك)، وتتلقّى دفعة من سالب التدرّج (كأنّها جاذبية). بعد ذلك تتحرّك ببساطة في اتجاه السرعة.
هذه الصيغة تكشف الفيزياء بوضوح: حين يقترب من 1 ينخفض الاحتكاك فتواصل الكرة التدحرج طويلاً، وحين يساوي صفراً نعود إلى الانحدار التدريجي الصِّرف بلا قصور ذاتي على الإطلاق.
لماذا ينجح: فيزياء الأمثَلة
طريقة بولياك مستوحاة من قانون نيوتن الثاني. كرة على سطح تتأثّر بالجاذبية (التدرّج) وبالاحتكاك (معامل الإخماد ). في الزمن المتصل تُكتب المعادلة هكذا:
هذه معادلة مذبذب توافقي مُخمَد. الاحتكاك يمنع الكرة من تجاوز والتأرجح بلا توقّف. الجوهري هنا أنّ ديناميكيات الرتبة الثانية (أي التسارع وليس السرعة فحسب) تسمح للنظام باستغلال معلومات الانحناء ضمنياً دون أن نحسب مصفوفة قطّ.
على دالة تربيعية ، تمثّل لـ الانحناءات في كل اتجاه. بدون زخم، يتقدّم التقارب في كل اتجاه ذاتي بشكل مستقل بمعدّل ، وعلى حجم الخطوة الأمثل أن يوازن بين الاتجاه الأسرع () والأبطأ ().
مع الزخم، ينخفض معامل التقارب إلى — الجذر التربيعي يُحوِّل رقم الحالة. الفرق بين تكرار و تكرار يعني انتقالاً من اعتماد تربيعي إلى خطّي على صعوبة المسألة.
اختيار الزخم المناسب
اشتقّ بولياك المثلى للدوال التربيعية المحدّبة بقوّة. إذا كانت أصغر قيمة ذاتية لمصفوفة هيسيان و أكبرها:
في الواقع العملي لا نعرف و، لذا يستخدم الممارسون عادةً (وأحياناً 0.99). السبب أنّ معظم سطوح الخسارة في ذات رقم حالة مرتفع جداً ()، وعنده يقترب من 1 تلقائياً.
هناك تفاعل مهم بين معدّل التعلّم و: زخم أعلى يتيح خطوة فعلية أكبر. كقاعدة ذهنية، الزخم يُضخِّم معدّل التعلّم بعامل يقارب — فمع يصبح المعدّل الفعلي عشرة أضعاف المعدّل الاسمي.
الزخم بوصفه متوسطاً متحركاً أُسّياً
يمكن النظر إلى صيغة السرعة من زاوية أخرى مفيدة. إذا فككنا العلاقة التكرارية نحصل على:
أي أنّ السرعة ما هي إلا مجموع مُرجَّح أُسّياً لجميع التدرّجات السابقة، تحظى فيه التدرّجات الأحدث بالوزن الأكبر. هذا بالضبط ما يُعرف بـ — الأداة ذاتها المُستخدمة في معالجة الإشارات لتنعيم البيانات المُشوَّشة.
هذه الزاوية تفسّر لماذا ينفع الزخم تحديداً مع التدرّجات العشوائية المُشوَّشة: المتوسط يُنعّم ويُبقي على الإشارة المتّسقة. في الانحدار التدريجي العشوائي، تدرّج كل هو تقدير مُشوَّش للتدرّج الحقيقي، والزخم فعلياً يحسب متوسطاً على عدّة دفعات.
الفكرة ذاتها في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def sgd_momentum(gradient_fn, x0, lr=0.01, beta=0.9, steps=100):
"""تصغير f(x) باستخدام الانحدار التدريجي العشوائي مع زخم بولياك.
gradient_fn: تُرجع ∇f(x) — قد تكون عشوائية
x0: المعاملات الأولية
lr: معدّل التعلّم α
beta: معامل الزخم β (0 = انحدار عشوائي صِرف)
"""
x = x0.copy()
v = np.zeros_like(x) # السرعة تبدأ من الصفر
for k in range(steps):
g = gradient_fn(x) # حساب التدرّج (العشوائي)
v = beta * v - lr * g # تحديث السرعة: إخماد + دفع
x = x + v # اتّبع السرعة
return x
# مثال: تصغير f(x,y) = 50x² + y² (رقم الحالة κ = 100)
def grad(x):
return np.array([100 * x[0], 2 * x[1]])
x_star = sgd_momentum(grad, np.array([1.0, 1.0]), lr=0.002, beta=0.9)
# x_star ≈ [0, 0] — وصول أسرع بكثير مما لو كان بدون زخملماذا غيّر كل شيء: من 1964 إلى كل مُحسِّن اليوم
1964
الكرة الثقيلة لبولياك
أول طريقة زخم. تُضيف β(x_k − x_{k-1}) إلى الانحدار التدريجي. أثبت التقارب المحلي الأمثل على الدوال التربيعية المحدّبة بقوّة.
1983
تدرّج نيستيروف المُسرَّع
يحسب التدرّج عند موقع الاستشراف. يحقّق معدّل O(1/k²) مُثبَت الأمثلية للدوال المحدّبة العامة — أول طريقة «مُسرَّعة شاملاً».
2012
الانحدار العشوائي مع الزخم يُدرِّب AlexNet
إنجاز كريجيفسكي على ImageNet استخدم الانحدار العشوائي مع زخم β=0.9. هذه التوليفة أصبحت الوصفة المعيارية لتدريب الشبكات الالتفافية العميقة.
2014
مُحسِّن Adam
جمع كينغما وبا بين زخم بولياك (β₁) ومعدّلات التعلّم التكيّفية لكل معامل (β₂) في المُحسِّن الأكثر انتشاراً في التعلّم العميق.
2017
الانحدار العشوائي مع الزخم يُدرِّب المحوِّلات
ورقة «الانتباه هو كل ما تحتاجه» استخدمت Adam (الذي عزمه الأول هو زخم بولياك) لتدريب المحوِّل. كل نموذج لغوي كبير بعدها ورث هذا الاختيار.
الزخم في شجرة عائلة المُحسِّنات
زخم بولياك هو البذرة التي نبتت منها شجرة المُحسِّنات الحديثة. العلاقة مباشرة ويمكن تتبّعها:
- الانحدار العشوائي الصِّرف: — بلا ذاكرة.
- الانحدار العشوائي + زخم (بولياك، 1964): يُضيف — ذاكرة بخطوة واحدة.
- زخم نيستيروف (1983): يحسب التدرّج عند — «انظر قبل أن تقفز.»
- Adam (2014): زخم على العزم الأول () والعزم الثاني () للتدرّج.
المسار من الانحدار العشوائي إلى Adam هو سلسلة من الطرق المتزايدة تطوّراً للاستفادة من تاريخ التدرّجات — وكلّ ذلك بدأ بحدٍّ إضافي واحد في قاعدة تحديث بولياك.
المرجعPolyak, B. T.. Some Methods of Speeding Up the Convergence of Iteration Methods. USSR Computational Mathematics and Mathematical Physics, 1964.
مصطلحات هذه الورقة
- الزخمMomentum
- الانحدار التدريجيGradient Descent
- التقارب الحسابيConvergence
- معدل التقاربConvergence Rate
- معدل التعلمLearning Rate
- رقم الاشتراطCondition Number
- النهاية الصغرى المحليةLocal Minimum
- النقطة السرجيةSaddle Point
- تذبذبOscillation
- المتوسط المتحرك الأُسّيExponential Moving Average
- الانحدار التدريجي العشوائيStochastic Gradient Descent (SGD)