التعلم العميق2010تأسيسي8 دقيقة قراءة
لماذا يصعب تدريب الشبكات العصبية العميقة ذات التغذية الأمامية؟
Understanding the Difficulty of Training Deep Feedforward Neural Networks
Glorot, X. · Bengio, Y. — AISTATS
المشكلة
قبل عام 2006 كان الشبكات العصبية العميقة من أوزان عشوائية يُعدّ أمراً غير عملي في الغالب. وبحلول عام 2010 أثبت طبقةً بطبقة أن الشبكات العميقة يمكن أن تنجح، لكن السبب الحقيقي لفشل الانحدار التدريجي عند البدء من أوزان عشوائية ظل غير مفهوم بالكامل. تبيّن لاحقاً أن المشكلة الأساسية هي عدم استقرار انتقال الإشارات داخل الشبكة. فمع مرور البيانات عبر طبقات كثيرة كانت التنشيطات والتدرجات تميل إلى التقلص الشديد أو التضخم المفرط، مما يدفع الوحدات العصبية إلى ويجعل التعلّم أكثر صعوبة. وكانت كل طبقة إضافية تزيد هذه المشكلة سوءاً.
الإسهام
أوضح غلوروت وبنجيو أن نجاح التعلّم العميق يتطلب الحفاظ على حجم الإشارات أثناء انتقالها إلى الأمام عبر الطبقات وإلى الخلف عبر التدرجات. واقترحا أسلوب تهيئة يوازن بين عدد الوصلات الداخلة والخارجة في كل طبقة، بحيث تبقى التنشيطات والتدرجات ضمن نطاق مستقر طوال عملية التدريب. وأصبح هذا الأسلوب معروفاً لاحقاً باسم تهيئة Xavier، وكان من العوامل التي جعلت تدريب الشبكات العميقة من أوزان عشوائية أمراً عملياً. كما أبرزت الورقة أهمية دوال التنشيط، وأظهرت أن بعضها يدخل في الإشباع بسهولة أكبر من غيره، مما يؤدي إلى تعلّم أبطأ وأقل استقراراً.
الأثر
أصبحت تهيئة Xavier الخيار التلقائي لتهيئة الأوزان في كل شبكة عميقة تقريباً. لم يعد هناك حاجة للتدريب المسبق طبقةً بطبقة، وصار بالإمكان تدريب البنى العميقة من البداية إلى النهاية مباشرةً. مبدأ الحفاظ على الذي قدّمته هذه الورقة ألهم لاحقاً تهيئة He (لدوال ReLU) وأسهم في ظهور تسوية الدُفعات — وبالجمع بين هاتين التقنيتين ورؤية Xavier، صار التعلّم العميق الحديث ممكناً عملياً.
تخيّل صفاً من الأشخاص يتناقلون دلاء ماء واحداً تلو الآخر. لو كانت ذراعا أحدهم قوية أكثر من اللازم رمى الدلو بعنف فتطاير الماء، ولو كانت ضعيفة لم يكد الدلو يصل للشخص التالي. بعد عشر تمريرات، إمّا تغرق السلسلة وإمّا تجفّ تماماً.
تهيئة Xavier تضبط قوة أذرع الجميع بحيث تبقى كمية الماء ثابتة من أول شخص إلى آخر شخص — مهما طالت السلسلة.
«الماء» هنا يمثّل المعلومات التي تتدفّق للأمام عبر ، و التي تعود للخلف عبر . أمّا «قوة الذراع» فهي تباين .
المشكلة: التنشيطات تموت أو تنفجر كلّما زاد عمق الشبكة
بعمق تحسب مخرجاتها بتمرير المدخل عبر سلسلة من التحويلات الخطية متبوعةً بدوال لاخطية. وعند الانتشار العكسي، تسلك التدرّجات المسار نفسه لكن بالاتجاه المعاكس. هنا يمكن أن يحدث أحد أمرين:
-
تلاشي التنشيطات. حين تكون الأوزان صغيرة جداً، تُقلّص كل طبقة الإشارة قليلاً. بحلول الطبقة الخامسة تصبح التنشيطات شبه معدومة، وتنحصر دالة التنشيط في منطقتها الخطية، فلا تتعلّم الشبكة شيئاً ذا قيمة.
-
انفجار التنشيطات أو إشباعها. حين تكون الأوزان كبيرة جداً، تصل التنشيطات إلى الأطراف المسطّحة لدوال أو حيث تقترب المشتقة من الصفر. النتيجة أنّ التدرّجات تتلاشى رغم أنّ التنشيطات نفسها كبيرة — وهذا هو الفخ الذي تسمّيه الورقة الإشباع.
التهيئة التي كانت شائعة وقتها هي ، وهي تأخذ بالحسبان عدد المدخلات فقط. ما أثبته غلوروت وبنجيو أنّ هذا الأسلوب غير متوازن في جوهره: هو يهتم بالتمريرة الأمامية ويتجاهل تماماً ما يحدث أثناء الانتشار العكسي.
تشخيص المشكلة: ماذا تكشف المدرّجات التكرارية للتنشيطات؟
درّب غلوروت وبنجيو شبكات بعمق يتراوح بين 1 و5 (1000 خلية في كل طبقة) على مجموعة بيانات Shapeset-3×2، وراقبوا التنشيطات طبقةً بطبقة. مع دالة الظل الزائدي والتهيئة المعتادة، دفعت الطبقة الأولى التنشيطات بسرعة باتجاه ±1 — أي منطقة الإشباع التي تقترب فيها المشتقة من الصفر. ثم لحقتها الطبقات الأعمق: بحلول الحقبة المئة كانت الطبقة العليا مُشبَعة بالكامل تقريباً، بينما الطبقة السفلى لم تكد تبدأ في التعلّم.
الفكرة تشبه طريقاً سريعاً عليه نقاط تفتيش متتالية. نقطة التفتيش الأولى (الطبقة 1) ترفع الحاجز عالياً جداً فلا تمرّ إلّا قطرات قليلة من حركة المرور (التدرّجات). كل نقطة تفتيش بعدها تُضاعف الاختناق. وحين تصل الإشارة إلى أسفل الشبكة — من منظور التدرّجات — لا يتبقّى ما يكفي لتوجيه أي تعلّم.
دالة softsign تتجنّب هذا الإشباع الحاد لأنّ أذيالها تتلاشى بمعدّل كثيري الحدود لا أُسّي. أظهرت الورقة أنّ شبكات softsign تتدرّب بثبات أعلى، وإن كان المجتمع البحثي اعتمد لاحقاً — التي تُزيل الإشباع كلياً على جانبها الموجب.
الاشتقاق الرياضي: كيف نحافظ على ثبات التباين؟
لنأخذ طبقة واحدة تحسب حيث . نفترض أنّ دالة التنشيط متناظرة وأنّ مشتقتها عند الصفر تساوي 1 (وهذا ينطبق على الظل الزائدي وsoftsign قرب الصفر)، وأنّ الأوزان متوسطها صفر ومستقلة عن المدخل، والمدخل نفسه متوسطه صفر. تحت هذه الافتراضات، يتحدّد تباين مخرجات الطبقة بحاصل ضرب تباينات جميع الطبقات التي سبقتها:
التحليل نفسه ينطبق بالاتجاه المعاكس. خلال الانتشار العكسي، يكون تباين التدرّج عبر الطبقات:
تدفُّق التدرّجات: ماذا كشفت الورقة؟
أبرز ما قدّمته الورقة — بعد الصيغة الرياضية — هو مجموعة من الرسوم التشخيصية. رسم غلوروت وبنجيو المدرّجات التكرارية للتنشيطات والانحرافات المعيارية لـالتدرّجات طبقةً بطبقة أثناء التدريب، وكأنّهما أخذا صورة أشعّة سينية لما يجري داخل الشبكة العميقة:
مع التهيئة المعتادة + الظل الزائدي: تُشبَع الطبقة الأولى قبل غيرها — التنشيطات تتكدّس عند ±1 — ثم تتساقط الطبقات 2 و3 و4 كأحجار الدومينو. التدرّجات في الطبقات السفلى تنهار إلى ما يقارب الصفر، فتتوقّف تلك الطبقات عملياً عن التعلّم. الطبقة العليا وحدها هي التي تتعلّم، وبذلك تتصرّف شبكة من خمس طبقات وكأنها شبكة بطبقة واحدة.
مع تهيئة Xavier + الظل الزائدي: تظلّ التنشيطات متمركزة قرب الصفر في النطاق الخطي لدالة الظل الزائدي عبر جميع الطبقات. الانحرافات المعيارية للتدرّجات تبقى متقاربة بين الطبقات طوال فترة التدريب — الإشارة تصل إلى كل طبقة بالتساوي.
مع softsign: حتى مع التهيئة المعتادة، تمنع الأذيال كثيرية الحدود الإشباعَ الحاد. التنشيطات تنزاح نحو الأطراف لكنها لا تنغلق هناك. التدرّجات في حال أفضل، وإن لم تصل إلى انتظام تهيئة Xavier مع الظل الزائدي.
دوال التنشيط: السينية والظل الزائدي وsoftsign
قارنت الورقة بين ثلاث دوال تنشيط وسلوك كلٍّ منها في الشبكات العميقة:
الدالة السينية : مخرجاتها تقع في بمتوسط يقارب 0.5 وليس صفراً. هذا الانزياح عن الصفر يجعل كل طبقة تدفع التنشيطات بشكل منهجي في اتجاه واحد، ويتراكم هذا الأثر مع كل طبقة إضافية. أظهر غلوروت وبنجيو أنّ شبكات الدالة السينية عانت من أسوأ أنماط الإشباع.
الظل الزائدي : مخرجاته في بمتوسط صفر، وهذا يجعله أفضل توسيطاً. لكنّ مشتقته تتلاشى أُسِّيّاً عند الأطراف: حين . مع التهيئة المعتادة، تدخل الطبقة الأولى في الإشباع خلال الحقبات القليلة الأولى من التدريب.
softsign : مخرجاتها في بمتوسط صفر مثل الظل الزائدي، لكنّ الفرق أنّ أذيالها تتلاشى بمعدّل بدلاً من التلاشي الأُسّي. هذا يعني أنّ المشتقة تنكمش تدريجياً لا بشكل مفاجئ — تراجع أكثر نعومة يمنع الشبكة من الوقوع في فخ الإشباع الحاد.
تهيئة Xavier في الشيفرة البرمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def xavier_uniform(n_in, n_out):
"""تهيئة Xavier/Glorot المنتظمة.
تحافظ على Var[التنشيط] ≈ Var[المدخل] عبر الطبقات."""
limit = np.sqrt(6.0 / (n_in + n_out))
return np.random.uniform(-limit, limit, size=(n_in, n_out))
def xavier_normal(n_in, n_out):
"""تهيئة Xavier/Glorot الطبيعية.
نفس التباين المستهدف، بتوزيع غاوسي."""
std = np.sqrt(2.0 / (n_in + n_out))
return np.random.randn(n_in, n_out) * std
# مثال: شبكة من 3 طبقات (784 → 256 → 128 → 10)
W1 = xavier_uniform(784, 256) # Var ≈ 2/(784+256) = 0.00192
W2 = xavier_uniform(256, 128) # Var ≈ 2/(256+128) = 0.00521
W3 = xavier_uniform(128, 10) # Var ≈ 2/(128+10) = 0.01449
# في PyTorch الدالة جاهزة:
# torch.nn.init.xavier_uniform_(layer.weight)
# torch.nn.init.xavier_normal_(layer.weight)لماذا غيّرت هذه الورقة كل شيء؟
سلسلة تطوّر أساليب التهيئة
2006
التدريب المسبق الجشع طبقةً بطبقة
أثبت هينتون أنّه يمكن تدريب الشبكات العميقة بتدريب كل طبقة أولاً كآلة بولتزمان مقيّدة. أثبت هذا أنّ العمق ممكن، لكنّه تطلّب مساراً من مرحلتين مُكلفاً حسابياً.
2010
تهيئة Xavier (هذه الورقة)
اشتقّ غلوروت وبنجيو تهيئة مبنيّة على أسس رياضية أغنت عن التدريب المسبق في شبكات الظل الزائدي والسينية. صيغة واحدة، سطر شيفرة واحد، أثر ضخم.
2011
شبكات المُقوِّم المتناثر العميقة (ReLU)
أظهر غلوروت وبوردِس وبنجيو أنّ شبكات ReLU تتدرّب جيداً وتُنتج تنشيطات متناثرة. أزالت ReLU مشكلة الإشباع على الجانب الموجب، لكنها خلقت مشكلة جديدة: «موت وحدات ReLU».
2015
تهيئة He
طوّر He وزملاؤه مبدأ Xavier ليناسب ReLU، بعد أن لاحظوا أنّ ReLU تُصفّر نصف مدخلاتها وبالتالي تحتاج ضعف التباين: Var[W] = 2/n_in.
2015
تسوية الدُفعات
أخذ أيوفي وسيجيدي فكرة الحفاظ على التباين إلى مدى أبعد: بدلاً من ضبط التهيئة فقط، نُسوّي التنشيطات عند كل طبقة في كل تمريرة أمامية أثناء التدريب.
المرجعGlorot, Bengio. Understanding the Difficulty of Training Deep Feedforward Neural Networks. AISTATS, 2010.
مصطلحات هذه الورقة
- دالة التنشيطActivation Function
- التباينVariance
- التدرج التفاضليGradient
- التحديث التراجعيBackpropagation
- دالة سيجمويدSigmoid
- دالة الظل الزائديTanh
- سوفت ماكسSoftmax
- الوزن البنيويWeight
- الطبقة الحسابيةLayer
- الطبقة الخفيةHidden Layer
- المعايرة القياسية للبياناتNormalization
- تسوية الدفعات الحسابيةBatch Normalization
- الإشباعSaturation
- التقارب الحسابيConvergence