انتقل إلى المحتوى الرئيسي

الدرس 3 — الاشتقاق

هذا الفرع يبدو الأصعب اسماً وهو الأبسط فكرةً: المشتقّة ميل. ومنها يُبنى كلّ التدريب.

المشتقّة: بأيّ مقدار يتغيّر المخرج إذا حرّكت المدخل قليلاً

خُذ منحنى. عند نقطة معيّنة عليه، المشتقّة تخبرك بميل المنحنى هناك: هل يصعد؟ هل يهبط؟ وبأيّ حدّة؟

  • مشتقّة موجبة كبيرة: صعود حادّ.
  • مشتقّة سالبة: هبوط.
  • مشتقّة صفر: مستوٍ — قمّة أو قاع أو هضبة.

هذا كلّ ما تحتاجه. والباقي تطبيق.

من الميل إلى التدريب

في التدريب، «المنحنى» هو دالّة الكلفة: علاقة بين معاملات النموذج ومقدار خطئه. والسؤال في كلّ خطوة هو:

إذا زدت هذا المعامل قليلاً، هل يزيد الخطأ أم يقلّ؟

هذا سؤال عن مشتقّة. والجواب يعطي اتّجاه التعديل: إذا كانت المشتقّة موجبة (زيادة المعامل تزيد الخطأ) فانقص المعامل، والعكس.

وحين يكون لديك ملايين المعاملات، تحتاج إلى هذا الجواب لكلّ واحد منها. مجموعة كلّ هذه الميول تُسمّى التدرّج (gradient): قائمة تخبرك، لكلّ معامل، بالاتّجاه الذي يخفّض الكلفة.

معدّل التعلّم: حجم الخطوة

التدرّج يعطي الاتّجاه، لا المسافة. وحجم الخطوة هو معدّل التعلّم، وهو أهمّ إعداد يدوي في التعلّم العميق.

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

إذا لم تنزل الكلفة، أو انفجرت، فمعدّل التعلّم هو المشتبه الأول قبل أيّ شيء آخر. جرّب تقسيمه على عشرة. هذه الحركة الواحدة تحلّ نسبة كبيرة من حالات «النموذج لا يتعلّم».

المحسِّنات الحديثة (مثل Adam) تعدّل حجم الخطوة تلقائياً لكلّ معامل، وهذا يجعل الحياة أسهل بكثير، ولا يعفيك من ضبط القيمة الابتدائية.

قاعدة السلسلة: سرّ الانتشار العكسي

الشبكة العميقة سلسلة تحويلات: المدخل يمرّ في الطبقة الأولى، ونتيجتها في الثانية، وهكذا. والسؤال الصعب: كيف يؤثّر وزن في الطبقة الأولى على الخطأ النهائي، وبينهما عشر طبقات؟

قاعدة السلسلة تجيب: أثر التغيير عبر سلسلة هو جداء آثار كلّ حلقة. إذا كان تغيير a يؤثّر في b بمعامل 2، وb يؤثّر في c بمعامل 3، فتغيير a يؤثّر في c بمعامل 6.

والانتشار العكسي (backpropagation) هو تطبيق هذه القاعدة بكفاءة: تحسب الخطأ عند المخرج، ثم تعود طبقةً بطبقة إلى الخلف، ضارباً الميول، حتى تحصل على ميل كلّ وزن في الشبكة. وهذا هو الخوارزم الذي جعل الشبكات العميقة قابلة للتدريب سنة 1986.

لا تحسبها بيدك

كلّ الأُطر الحديثة تحسب التدرّجات تلقائياً (autograd). أنت تكتب التمرير الأمامي فحسب، والإطار يبني الرسم البياني ويحسب الاشتقاق العكسي. فهم الفكرة ضروري للتشخيص؛ حسابها يدوياً ليس ضرورياً أبداً.

التدرّجات المتلاشية والمنفلتة

من جداء الميول في قاعدة السلسلة تنبع مشكلة عملية شهيرة.

إذا كان كلّ عامل في الجداء أصغر من واحد، فجداء عشرين منها يقترب من الصفر. النتيجة: الطبقات الأولى تستقبل ميلاً شبه معدوم، فلا تتعلّم شيئاً. هذه التدرّجات المتلاشية، وهي السبب في أنّ الشبكات العميقة كانت غير قابلة للتدريب قبل نحو 2010.

وإذا كان كلّ عامل أكبر من واحد، ينفجر الجداء: تدرّجات منفلتة، والتدريب يتحوّل إلى NaN.

الحلول التي غيّرت المجال ثلاثة، وكلّها معروفة اليوم: دالّة تنشيط ReLU بدل الدوالّ المشبعة، والتطبيع بين الطبقات (batch/layer normalization)، والوصلات المتخطّية (residual connections) التي تعطي الميل طريقاً قصيراً إلى الطبقات الأولى. ودورة التعلّم العميق تعود إليها بتفصيل.

النهايات الصغرى: الضباب من جديد

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

المفاجأة النافعة: هذا لا يهمّ كثيراً في الممارسة. في الأبعاد العالية، معظم القيعان المحلّية تكون بجودة متقاربة من الأفضل، والمشكلة الحقيقية ليست القاع المحلّي بل مناطق الهضاب التي يكون الميل فيها ضئيلاً فيتباطأ التقدّم. والمحسِّنات الحديثة مصمَّمة تحديداً لاجتياز هذه المناطق.


في ثلاث جمل

المشتقّة ميل، والتدرّج قائمة ميول تخبرك بأيّ اتّجاه تعدّل كلّ معامل لتخفيض الخطأ، ومعدّل التعلّم هو حجم الخطوة وأوّل ما يُفحص عند فشل التدريب. وقاعدة السلسلة تضرب آثار الحلقات المتتابعة، وهذا أساس الانتشار العكسي وأيضاً سبب التدرّجات المتلاشية. وفي الأبعاد العالية لا تكون القيعان المحلّية المشكلة الحقيقية، بل الهضاب التي يضعف فيها الميل.


التاليالدرس 4: الاحتمالات ←