التحسين1847تأسيسي10 دقيقة قراءة
الطريقة العامة لحل جُمَل المعادلات المتزامنة
Méthode Générale pour la Résolution des Systèmes d'Équations Simultanées
Cauchy, A.-L. — Comptes Rendus de l'Académie des Sciences
المشكلة
في منتصف القرن التاسع عشر، واجه الفلكيّون تحدّياً عمليّاً: معادلات الميكانيكا السماوية تحتوي على ستة متغيرات أو أكثر، والطرق الجبرية المعروفة آنذاك — رغم دقّتها — لم تكن عمليّة لأن حجم الحسابات يتضخّم بسرعة كلما زاد عدد المتغيرات. لم تكن هناك طريقة تكرارية منظّمة تضمن التقدّم المستمر نحو الحل التقريبي لأي جملة معادلات غير خطية.
الإسهام
فكرة كوشي بسيطة وعبقرية: لحلّ f(x₁,…,xₙ) = 0 حيث f ≥ 0، احسب التدرُّج ∇f — متّجه المشتقات الجزئية الذي يشير نحو الصعود — ثم تحرّك خطوة صغيرة في الاتجاه المعاكس. ما دامت الخطوة صغيرة بما يكفي، فإنّ كل تكرار يُنقِص قيمة f حتماً، وبذلك تتقدّم نحو الحل بشكل مطّرد. هذه هي طريقة الانحدار الأشدّ، الجدّ الأول لكل خوارزمية أمثَلة تعتمد على التدرُّج في تعلم الآلة الحديث.
الأثر
أكثر فكرة تحويلية في تاريخ الأمثَلة. كل شبكة عصبية دُرِّبت — سواء كانت التفافية أو محوِّلاً أو نموذجاً لغوياً ضخماً — تتعلّم بنسخة ما من فكرة كوشي عام 1847: احسب التدرُّج، تحرّك في عكسه، كرّر. وآدام وأداغراد — كلها سلالة واحدة من هذه الطريقة. في جوهره ما هو إلا فكرة كوشي مُطبَّقة على مليارات المعاملات، مع الانتشار العكسي لحساب التدرُّجات بكفاءة.
تخيّل أنك مُتسلِّق معصوب العينَين فوق جبل، وهدفك الوصول إلى قاع الوادي. لا ترى شيئاً من التضاريس حولك، لكنك تحسّ بميل الأرض تحت قدمَيك.
الخطّة بسيطة: في كل مرة، تحسَّس أيّ اتجاه ينحدر أكثر، ثم اخطُ خطوة صغيرة نحوه. لا تحتاج خريطة — يكفيك الإحساس بالميل المحلي والالتزام بالهبوط المستمر.
هذا بالضبط ما اقترحه كوشي عام 1847: بدل الجبل ضع دالة رياضية، وبدل الإحساس بالميل احسب ، وبدل كل خطوة بقدمك طبِّق قاعدة تحديث رياضية. الجميل في هذه الطريقة أنها تعمل مهما كان عدد الأبعاد — حتى لو بلغ الملايين — ولذلك كل في العالم اليوم تتعلّم بهذا الأسلوب.
المشكلة: متغيرات كثيرة وحسابات ضخمة
في زمن كوشي، كانت معادلات حركة الكواكب تُنتج جُمَلاً من ستة متغيرات أو أكثر. الطرق الجبرية المباشرة مثل حذف غاوس كانت تؤدي الغرض للجُمَل الصغيرة، لكن تكلفتها الحسابية تنفجر مع زيادة الحجم:
-
الطرق المباشرة تحتاج نحو n³ عملية حسابية، حيث n هو عدد المتغيرات. حين يكون n = 6 تحصل على 216 عملية على الأقل — وكلها تُنجَز يدوياً.
-
لم تكن هناك حواسيب. كل عملية ضرب كانت بالقلم والورق، فالحاجة كانت ماسّة لطريقة أقل كلفةً حتى لو أعطت حلاً تقريبياً.
-
الجُمَل غير الخطية — التي تتضاعف فيها المتغيرات مع بعضها أو تدخل في دوال مثلثية — لم يكن لها أي طريقة حلّ عامة.
الفكرة المحورية عند كوشي: لا حاجة لحلّ الجملة دفعة واحدة. يمكنك أن تزحف نحو الحل خطوة بخطوة، بأن تُنقص في كل تكرار قيمة تقيس بُعدك عن الإجابة.
الفكرة: اخطُ دائماً في اتجاه الانحدار
تنطلق طريقة كوشي من ملاحظة أساسية في حساب التفاضل: التدرُّج لدالّة عند نقطة معيّنة يشير إلى اتجاه أشدّ صعود. بالتالي، سالب التدرُّج يشير إلى اتجاه أشدّ هبوط.
والإجراء كالتالي:
- ابدأ من تخمين أوّلي .
- احسب التدرُّج — أي متّجه جميع .
- تحرّك في الاتجاه المعاكس: .
- كرِّر حتى تستقرّ قيمة الدالة ولا تتغيّر بشكل ملموس.
المُعامِل — الذي نسمّيه في تعلم الآلة — يتحكّم بحجم كل خطوة. إن كان كبيراً جداً تتجاوز الهدف، وإن كان صغيراً جداً تزحف ببطء شديد. أدرك كوشي هذه المفاضلة واقترح اختيار عند كل خطوة بحيث تُصغِّر f على طول اتجاه الهبوط — وهو ما نسمّيه اليوم .
قاعدة التحديث
قبل أن نكتب الصيغة، لنفهم ماذا نريد: الهدف في كل تكرار هو الانتقال إلى نقطة تكون فيها قيمة الدالة أقل من . الاستراتيجية هي التحرّك في الاتجاه الذي يُنقِص f بأسرع معدّل — أي سالب التدرُّج. يبقى سؤال واحد: كم نتحرّك؟
تصوّرها كبوصلة: التدرُّج يقول لك «الصعود في ذاك الاتجاه»، فتستدير 180° وتمشي. أما معدَّل التعلُّم فيحدّد إن كنت ستأخذ خطوة حذرة أم جريئة. اقترح كوشي اختيار المثلى عند كل تكرار بتصغير كدالة في — وهو ما يُعرَف بـالبحث الخطي الدقيق. في التعلم العميق الحديث نستخدم عادةً ثابتة أو مُجدوَلة، لأنّ البحث الخطي الدقيق مكلِّف جداً حين تبلغ الملايين.
لماذا تنجح الطريقة: ضمان الهبوط المتواصل
الضمان الرياضي لـ مصدره تقريب تايلور مباشرةً. حين يكون حجم الخطوة صغيراً بما يكفي:
بما أنّ ، فكل خطوة تُنقِص قيمة الدالة حتماً (أو تُبقيها كما هي في أسوأ الأحوال). الدالة تهبط خطوة بعد خطوة إلى أن يصبح التدرُّج صفراً — أي تصل إلى نقطة لا يوجد فيها اتجاه هبوط. تلك هي : قد تكون أو ، أو — إن حالفك الحظ — .
النقطة الأهم: أثبت كوشي أنّ هذا ينطبق بغضّ النظر عن عدد المتغيرات. التدرُّج موجود دائماً للدوال الملساء، وسالبه يشير دوماً نحو الهبوط، فالطريقة تعمل في أيّ عدد من الأبعاد.
نقطة الضعف: التعرُّج في الأودية الضيقة
لـالانحدار التدريجي نقطة ضعف معروفة: حين تكون الدالة على شكل وادٍ ضيّق — أي حين تختلف لـ اختلافاً كبيراً — تتعرّج الطريقة ذهاباً وإياباً عبر الوادي بدلاً من الانزلاق على طوله.
السبب أنّ اتجاه أشدّ انحدار عند جدار الوادي يعبره بدل أن يسير بمحاذاته. فتقفز كل خطوة فوق المحور الضيق لتهبط على الجدار المقابل، وتتأرجح التكرارات محقّقةً تقدّماً بطيئاً.
هذا التعرُّج حفّز 170 عاماً من التطوير: التدرُّجات المترافقة (1952)، وطريقة نيوتن مع الهِسيان، و (1964)، ثم التكيُّفية الحديثة مثل (2014). كلها تُحسِّن وصفة كوشي الأصلية للتعامل مع التضاريس سيئة الاشتراط، لكن الفكرة الجوهرية واحدة: استخدم التدرُّج لتقرّر أين تخطو.
الفكرة نفسها في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def gradient_descent(f, grad_f, x0, lr=0.01, tol=1e-6, max_iter=1000):
"""خوارزمية كوشي 1847 في 10 أسطر.
f : الدالة الهدف المراد تصغيرها
grad_f : دالة تعيد التدرج التفاضلي ∇f(x)
x0 : نقطة البداية (مصفوفة numpy)
lr : حجم الخطوة γ (معدل التعلم)
"""
x = x0.copy()
for i in range(max_iter):
g = grad_f(x) # احسب التدرج التفاضلي
if np.linalg.norm(g) < tol: # التدرج ≈ 0 → توقف
break
x = x - lr * g # التحديث: اخطُ عكس التدرج
return x
# مثال: صغّر f(x,y) = x² + 10y² (وادٍ ضيق)
f = lambda x: x[0]**2 + 10*x[1]**2
grad_f = lambda x: np.array([2*x[0], 20*x[1]])
result = gradient_descent(f, grad_f, x0=np.array([5.0, 3.0]), lr=0.05)
print(f"النقطة الدنيا عند: {result}") # → قريبة من [0, 0]
# كل مُحسِّن في الشبكات العصبية هو حفيد هذه الحلقة.
# الانحدار التدريجي العشوائي يضيف ضجيجاً (دفعات مصغرة عشوائية).
# آدام يضيف زخماً ومعدلات تكيُّفية لكل معلمة.
# لكن الجوهر دائماً: x ← x − γ · ∇f(x).من 1847 إلى اليوم: شجرة عائلة الانحدار التدريجي
من طريقة كوشي الأصلية تفرّعت عائلة كاملة من خوارزميات ، كل واحدة منها تعالج قصوراً معيّناً فيها. هذه الشجرة تصل مباشرةً إلى كل مُحسِّن يُستخدم في التعلم العميق اليوم:
1847
كوشي: الانحدار التدريجي
الطريقة الأصلية — تحرَّك عكس التدرج بحجم خطوة يُختار بالبحث الخطي الدقيق. بسيطة وعامة، لكنها بطيئة على المسائل سيئة الاشتراط.
1951
روبينز ومُونرو: التقريب العشوائي
أثبتا أن الانحدار التدريجي لا يزال يعمل حتى حين تكون التدرجات مُشوَّشة — الأساس النظري للانحدار التدريجي العشوائي. حجم الخُطوة يجب أن يتقلص مع الوقت.
1952
هِستينز وشتيفل: التدرجات المترافقة
أزالت التعرُّج باختيار كل اتجاه ليكون مترافقاً مع الاتجاهات السابقة. تحلّ الدوال التربيعية في n خطوة بالضبط.
1964
بولياك: الزخم
أضاف حَدَّ «سرعة» يُراكم التدرجات السابقة، مما يساعد المُحسِّن على التدحرج عبر الأودية الضيقة بدلاً من التعرُّج.
1986
رامِلهارت وهينتون وويليامز: التحديث التراجعي
جعل الانحدار التدريجي عملياً للشبكات العميقة بحساب ∇f بكفاءة عبر قاعدة السلسلة — عكسياً عبر كل طبقة.
2011
دوتشي وآخرون: أداغراد
أعطت كل معلمة معدل تعلم تكيُّفي خاص بها بناءً على مجموع تربيعات التدرجات المتراكمة. حلّت مشكلة السمات النادرة في معالجة اللغات الطبيعية.
2014
كينغما وبا: آدام
جمعت بين الزخم ومعدلات التعلم التكيُّفية وتصحيح الانحياز. أصبحت المُحسِّن الافتراضي للتعلم العميق.
التقارب الحسابي: متى يجد الانحدار التدريجي الإجابة؟
سرعة تتوقّف على شكل الدالة. لنأخذ دالة تربيعية محدَّبة ؛ الخطأ عند الخطوة يخضع للحدّ التالي:
هنا هو للمصفوفة ، أي نسبة أكبر قيمة ذاتية إلى أصغرها. كلّما كبر استطالت خطوط التسوية وازداد التعرُّج. حين يكون يتقارب الحلّ بسرعة، لكن حين يكون يصبح التقارب بطيئاً بشكل مؤلم.
وهنا المفاضلة الجوهرية: الانحدار التدريجي عام — يعمل على أي دالة ملساء — لكنه من الرتبة الأولى، أي يستخدم التدرُّج فقط دون معلومات الانحناء. الطرق التي تستثمر معلومات الرتبة الثانية (مصفوفة هيسي) تتقارب أسرع، لكنها أغلى بكثير في كل خطوة.
لماذا يهم هذا في التعلم العميق
كل حلقة في أي شبكة عصبية هي تطبيق مباشر لخوارزمية كوشي:
- — احسب (كم أخطأت التنبؤات).
- — احسب عبر الانتشار العكسي (قاعدة السلسلة).
- التحديث — (خطوة كوشي).
هنا تلعب دور عند كوشي، ومعاملات النموذج تحلّ محلّ متغيراته ، ومعدَّل التعلُّم هو حجم الخطوة — الفرق الوحيد أنّ الشبكات الحديثة تحتوي مليارات المعاملات بدلاً من ستة، والتدرُّجات تُحسَب من دفعات مصغّرة عشوائية (الانحدار التدريجي العشوائي) لا من مجموعة البيانات كاملةً.
ثورة التعلم العميق ترتكز على ثلاث دعائم: الانحدار التدريجي لكوشي (1847)، و لرامِلهارت وهينتون وويليامز (1986) لحساب التدرُّج بكفاءة، ثم عتاد لتنفيذ الحلقة بسرعة كافية. أزِل أيّاً منها ولن يوجد الذكاء الاصطناعي الحديث.
المرجعCauchy, A.-L.. Méthode générale pour la résolution des systèmes d'équations simultanées. Comptes Rendus de l'Académie des Sciences, Paris, 1847.
مصطلحات هذه الورقة
- الانحدار التدريجيGradient Descent
- التدرج التفاضليGradient
- معدل التعلمLearning Rate
- التقارب الحسابيConvergence
- النهاية الصغرى المحليةLocal Minimum
- النقطة السرجيةSaddle Point
- البحث الخطيLine Search
- رقم الاشتراطCondition Number