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

الوحدة 6 — تهيئة الأوزان والتدرّجات المتلاشية

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

التهيئة ليست تفصيلًا

يفشل خياران ساذجان، ولأسباب مُفيدة.

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

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

فالهدف محدّد إذن: إبقاء تباين التنشيطات ثابتًا تقريبًا عبر الطبقات. وتُجيب صيغتان عن ذلك حسب دالة التنشيط المستخدمة.

تهيئة Xavier، أو Glorot، تناسب دوال التنشيط المتناظرة مثل الظلّ الزائدي:

Var(W)=2nمُدخَل+nمُخرَج\text{Var}(W) = \frac{2}{n_{\text{مُدخَل}} + n_{\text{مُخرَج}}}

وتهيئة He تناسب ReLU:

Var(W)=2nمُدخَل\text{Var}(W) = \frac{2}{n_{\text{مُدخَل}}}

والفرق يأتي من استدلال بسيط: فـReLU تُعدم نصف مُدخلاتها، أي تقسم تباين المُخرَج على اثنين تقريبًا. والعامل 2 يعوّض هذا الفقد بالضبط. ولهذا يؤدّي استخدام Xavier مع ReLU في شبكة عميقة إلى انقراض تدريجي للإشارة.

وعمليًا تُطبّق المكتبات الافتراض الصحيح سلفًا — kaiming_uniform_ في PyTorch للطبقات الخطّية. ويصير الموضوع مرئيًا حين نكتب تهيئة مخصّصة، أو حين ترفض شبكة عميقة الإقلاع.

التدرّج المتلاشي

لنُعد صيغة الوحدة 4. عند صعود الطبقات يُضرب الخطأ في كلّ خطوة في f(z)f'(z) وفي الأوزان. ومع السيغمويد لا يتجاوز المشتقّ 0,25 أبدًا. فعلى عشر طبقات يكون تدرّج الطبقة الأولى مُخفَّتًا بما لا يزيد على 0,25101060{,}25^{10} \approx 10^{-6}.

فلم تعد الطبقات الأولى تستقبل أي إشارة قابلة للاستغلال. بل تبقى على قيمة تهيئتها، بينما لا تتعلّم إلّا الطبقات الأخيرة. ولهذا كانت الشبكات العميقة، رغم مبرهنة الشمولية، تُعتبر غير قابلة للتدريب حتى عشرية 2000: فالمشكلة لم تكن نظرية، بل عددية.

وأربعة أجوبة، جميعها إمّا مرّت بها أو ستأتي:

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

الاتّصالات المتبقّية

قدّمتها ResNet في 2015، وتقوم على إضافة مُدخَل الكتلة إلى مُخرَجها:

y=f(x)+xy = f(x) + x

والأثر على التدرّج مباشر ويجدر رؤيته. فمشتقّ هذا المجموع بالنسبة إلى xx يساوي f(x)+1f'(x) + 1: فالحدّ +1+1 يُنشئ مسارًا مباشرًا يصعد فيه التدرّج بلا تخفيت، أيًّا كان العمق. فلم تعد الشبكة تتعلّم التحويل الكامل بل الفارق عن التطابق فقط، وهذا أيسر وأكثر استقرارًا في الوقت نفسه.

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

التدرّج المنفجر

المشكلة المتناظرة موجودة: فحين تكون العوامل أكبر من 1، يتزايد التدرّج تزايدًا أُسّيًا. والأعراض لا تحتمل الالتباس — خسارة تصير NaN، أو أوزان تتباعد في بضع تكرارات. والشبكات التكرارية في الدورة 11 معرّضة لذلك خصوصًا.

والعلاج بسيط وناجع: قصّ التدرّج، الذي يَحُدّ معياره قبل التحديث.

torch.nn.utils.clip_grad_norm_(modele.parameters(), max_norm=1.0)

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

شخِّص قبل تغيير المعمارية

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

الخلاصة

  • التهيئة بـالصفر تمنع كسر التماثل؛ والسلّم السيّئ الاختيار يجعل تباين التنشيطات ينحرف طبقة بعد طبقة.
  • Xavier لدوال التنشيط المتناظرة، وHe لـReLU، التي يعوّض عاملها 2 نصف المُدخلات المُعدَمة.
  • يأتي التدرّج المتلاشي من جداء مشتقّات أصغر من 1 — 0,25 على الأكثر للسيغمويد؛ وتُجيب عنه ReLU والتهيئة والتطبيع والاتّصالات المتبقّية.
  • يُنشئ الحدّ +1+1 في الاتّصال المتبقّي مسارًا مباشرًا للتدرّج؛ وعلى العكس يُعالَج التدرّج المنفجر بـقصّ المعيار.

الوحدة التالية: التنظيم، لمنع شبكة صارت قابلة للتدريب من مجرّد حفظ بياناتها.