الرؤية الحاسوبية2015متوسط10 دقيقة قراءة
الغوص في عالم المُقوِّمات: كيف تجاوزت الشبكات أداء البشر في تصنيف ImageNet
Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
He, K. · Zhang, X. · Ren, S. · Sun, J. — ICCV
المشكلة
في 2015 كانت ReLU هي السائدة في الشبكات العميقة، لكن المفارقة أن طرق كانت لا تزال مبنية على افتراض أن التنشيط خطي. تهيئة Xavier — المعيار حينها — اشتُقَّت من افتراض تماثل يسقط تماماً حين تأتي ReLU وتُصفِّر نصف الإشارة. النتيجة العملية: أي شبكة أعمق من نحو 8 طبقات كانت تتجمّد تماماً، التدرّجات تتلاشى ولا يحدث أي تعلّم. وفوق ذلك، الميل الصفري الثابت في الجانب السالب من ReLU يُهدر معلومات ربما تكون مفيدة، دون أن توجد طريقة منهجية لتحديد ما ينبغي أن يكون عليه هذا الميل.
الإسهام
تقدّم الورقة إسهامين متكاملين. الأول PReLU: يتحوّل ميل الجانب السالب من قيمة ثابتة إلى معامل يتعلّمه ، فتقرر كل قناة بنفسها إن كانت تمرّر الإشارات السالبة أو تُضعفها أو تحجبها، وكل ذلك بتكلفة حسابية إضافية لا تُذكر. الثاني تهيئة He: بما أن ReLU تُصفِّر نصف الإشارة فإنها تُنصِّف عند كل طبقة، ولتعويض ذلك يجب أن يكون مقياس الأوزان √(2/n) بدلاً من √(1/n) التي تعتمدها Xavier. هذا التعديل وحده يكفي شبكات تتجاوز 30 طبقة من الصفر دون توقف. بدمج الإسهامين معاً، حققت شبكات PReLU نسبة خطأ 4.94% في أعلى 5 تنبؤات على ، وهي المرة الأولى التي يتجاوز فيها نموذج حاسوبي الأداء البشري المُسجَّل (5.1%).
الأثر
تحوّلت تهيئة He إلى الإعداد الافتراضي لأي شبكة تعتمد عائلة ReLU، ولا تزال كذلك حتى اليوم. كانت الشرط الذي لا غنى عنه لظهور ResNet — فبدونها لم يكن ممكناً تدريب 152 طبقة. ومن جهتها أثبتت PReLU أن دوال التنشيط ليست بالضرورة صيغاً جامدة، فمهّدت الطريق لدوال مثل GELU وSwish وسلسلة التنشيطات المتعلَّمة والناعمة التي نراها اليوم. أما تجاوز الأداء البشري على ImageNet فقد غيّر تصوّر المجتمع بأكمله عمّا يمكن أن يحققه التعلّم العميق.
تخيّل سلسلة طويلة من الدِّلاء، كل دلو يصبّ ماءه في الذي يليه. إذا كانت الدِّلاء أصغر من اللازم بقليل، يتحوّل السيل عند الدلو الثلاثين إلى قطرات شحيحة. وإذا كانت أكبر من اللازم بقليل، يفيض الماء من كل جانب ويضيع.
تهيئة Xavier صُمِّمت لعالمٍ يتدفق فيه الماء بالتساوي في الاتجاهين. لكن ReLU تسدّ أحد الاتجاهين تماماً — عند كل دلو يُفقد نصف الماء. تهيئة He تعوّض ذلك بمضاعفة سعة كل دلو، فيصل السيل إلى الدلو الأخير بقوّته الكاملة دون أن يتلاشى.
PReLU تخطو خطوة إضافية: بدلاً من سدّادة جامدة تمنع الماء كلياً، يحصل كل دلو على صمّام قابل للتعديل يتعلّم خلال التدريب كمّ الماء الذي يُسمح له بالعودة.
المشكلة: تهيئة Xavier تفترض الخطية، لكن ReLU ليست خطية
حين نُكدِّس عشرات الطبقات، تمرّ الإشارة عبر مصفوفة عند كل طبقة. إذا كان التباين يكبر ولو قليلاً في كل مرة، ينمو الناتج أُسِّيًّا حتى ينفجر. وإذا كان يتقلّص، يتلاشى كل شيء — الإشارة و معها — حتى يصل إلى صفر فعلي.
في عام 2010 عالج Glorot وBengio هذه المشكلة بتهيئة Xavier: تُضبط تباين الأوزان على ، حيث عدد مدخلات . لكن الاشتقاق بُني على افتراض جوهري: أن دالة التنشيط خطية حول الصفر، بمعنى أنها تمرّر القيم الموجبة والسالبة بالتساوي. وهذا كان صحيحاً فعلاً مع دالتَي tanh و اللتين كانتا السائدتين آنذاك.
المشكلة أن ReLU تكسر هذا الافتراض كلياً: تُصفِّر كل القيم السالبة. عملياً، هذا يعني أنها تُنصِّف التباين عند كل طبقة. وعبر طبقة يتقلّص التباين بعامل . في شبكة من 30 طبقة، يصبح العامل بحدود واحد على مليار. الشبكة قائمة رياضياً، لكنها ميتة عملياً — كل التدرُّجات تُقرَّب إلى صفر في حساب الفاصلة العائمة.
PReLU: دع الشبكة تختار شكل تنشيطها بنفسها
قاعدة ReLU القياسية واضحة: ما هو موجب يمرّ كما هو، وما هو سالب يتحوّل إلى صفر. لكن السؤال: هل صفر هو فعلاً الخيار الأفضل للجانب السالب؟ حاولت حل ذلك بتمرير الإشارات السالبة مع ميل صغير ثابت (0.01)، لكن هذه القيمة مختارة يدوياً دون مبرر نظري.
PReLU تجعل ميل الجانب السالب يتعلّمه النموذج بنفسه — لكل :
لتبسيط الصورة: ReLU باب باتجاه واحد — الإشارات الموجبة تعبر، والسالبة تُحجب تماماً. Leaky ReLU باب يترك شقّاً صغيراً ثابتاً تتسرّب منه الإشارات السالبة. أما PReLU فباب يعدّل فتحته بنفسه خلال التدريب.
من الناحية الحسابية، تدرّج تحديث هو ببساطة مجموع قيم في المواضع التي تحقق ، فلا يُضيف تكلفة تُذكر. بل إن النسخة المشتركة التي تستخدم معاملاً واحداً لجميع قنوات الطبقة — معامل واحد إضافي فقط لكل طبقة — تُحسِّن الدقة بشكل ملموس.
من أطرف ما كشفته الورقة: الطبقات الأولى تتعلّم قيم كبيرة (نحو 0.6)، أي أنها تحتفظ بقدر كبير من الإشارة السالبة وتعمل كمُجمِّعات للمعلومات. أما الطبقات الأعمق فتتعلّم قيم صغيرة تقترب من سلوك ReLU القياسي — تصبح أكثر انتقائية وتمييزاً.
تهيئة He: احتساب عامل النصف الذي تُحدثه ReLU
الفكرة الجوهرية وراء أي تهيئة بسيطة: نريد أن يبقى تباين الإشارة ثابتاً تقريباً وهي تنتقل من طبقة إلى أخرى، فلا تنفجر ولا تتلاشى.
لننظر إلى طبقة واحدة. الناتج قبل التنشيط هو ، حيث متّجه من مُدخلاً ( حجم ، و عدد قنوات الدخل). إذا كانت الأوزان مستقلة ومتوسّطها صفر نحصل على:
تهيئة Xavier افترضت أن ، وهذا لا يصحّ إلا إذا كان متوسط يساوي صفراً. لكن بعد ReLU يصبح ، وهذه قيمة لا تكون سالبة أبداً، فمتوسطها بالتأكيد ليس صفراً. وبتحليل دقيق: إذا كان المُدخل متماثلاً حول الصفر قبل ReLU، فإن نصف القيم بالضبط تتحوّل إلى أصفار:
وبالتعويض في المعادلة الأصلية:
لكي يظل التباين ثابتاً من طبقة إلى أخرى، نحتاج إلى:
بمعنى أن الأوزان تُسحب من توزيع غاوسي متوسّطه صفر وانحرافه المعياري . قارن هذا بتهيئة Xavier حيث — الفرق كلّه عامل 2 في البسط، لكنه هو الذي يصنع الفارق في الشبكات العميقة.
المنطق نفسه ينطبق على : الشرط المقابل هو مع (باستخدام قنوات الخرج بدل قنوات الدخل). يكفي تحقيق أحد الشرطين — فإذا تحقّق أحدهما تحقّق الآخر تقريباً بالتبعية.
التعميم على تهيئة PReLU
حين يكون التنشيط PReLU بميل ابتدائي ، لم يعد الجانب السالب يُصفَّر تماماً بل يُضرب في . لذلك يتغيّر عامل التباين من إلى :
لماذا تفشل Xavier مع شبكات ReLU العميقة
الورقة تُثبت ذلك بمثال عملي صريح. لنأخذ نموذج VGG-B: 10 طبقات التفافية بـمرشّحات 3×3. الانحرافات المعيارية الصحيحة حسب تهيئة He هي 0.059 و0.042 و0.029 و0.021 للطبقات ذات 64 و128 و256 و512 مرشّحاً على الترتيب. في المقابل، استخدم VGG انحرافاً معيارياً ثابتاً 0.01 لجميع الطبقات دون تمييز. التدرّج الفعلي الذي ينتقل من الطبقة العاشرة إلى الثانية يبلغ تقريباً من القيمة المفترضة — أي صفر عملياً.
الورقة درّبت شبكة من 30 طبقة بالتهيئتين معاً للمقارنة. تهيئة He تقاربت بنجاح. أما Xavier فقد تجمّدت كلياً: نسبة الخطأ لم تتحرّك، ورصد التدرُّجات أكّد أنها جميعاً تتلاشى. ليست المسألة صبراً أو ضبطاً — الإشارة ميتة رياضياً.
الفكرة ذاتها في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def he_init(shape, mode='fan_in'):
"""تهيئة He (كايمينغ) لشبكات ReLU.
shape: (fan_out, fan_in) للطبقة الكاملة، أو (out_ch, in_ch, kH, kW) للالتفاف.
"""
if len(shape) == 2:
fan_in = shape[1]
else:
fan_in = shape[1] * shape[2] * shape[3] # in_ch * kH * kW
std = np.sqrt(2.0 / fan_in)
return np.random.randn(*shape) * std
def prelu(x, a):
"""تنشيط PReLU: f(x) = max(0,x) + a * min(0,x)"""
return np.maximum(0, x) + a * np.minimum(0, x)
# --- توضيح انتقال التباين ---
n_layers, n_units = 30, 256
# تهيئة He: التباين يبقى قريباً من 1
signal = np.random.randn(1, n_units)
for _ in range(n_layers):
W = he_init((n_units, n_units))
signal = np.maximum(0, signal @ W.T) # ReLU
print(f"He — تباين المخرج بعد {n_layers} طبقة: {signal.var():.4f}")
# تهيئة Xavier: التباين ينهار
signal = np.random.randn(1, n_units)
for _ in range(n_layers):
W = np.random.randn(n_units, n_units) * np.sqrt(1.0 / n_units)
signal = np.maximum(0, signal @ W.T)
print(f"Xavier — تباين المخرج بعد {n_layers} طبقة: {signal.var():.6f}")PReLU عملياً: ماذا تكشف الميول المتعلَّمة
درّب الباحثون شبكة من 14 طبقة، ثم فحصوا معاملات التي تعلّمتها كل طبقة. النتائج كشفت نمطين واضحين:
الأولى — وهي المسؤولة عن استخلاص بصرية أوّلية كالحواف والأنسجة — تعلّمت ميولاً كبيرة (نحو 0.6). يعني ذلك أنها تحتفظ بجزء كبير من الإشارة السالبة. هذه الطبقات تتصرّف كمُجمِّعات للمعلومات: تريد أن تحفظ أكبر قدر من المدخلات الخام، بما فيها الأنماط التي تكون استجابات مرشّحاتها سالبة.
الطبقات الأعمق في المقابل تعلّمت ميولاً أصغر تدريجياً، تقترب من سلوك ReLU القياسي. هذه الطبقات أكثر تمييزاً وانتقائية — تعرف أيّ الإشارات تهمّها فتكبت الباقي. الشبكة تنظّم نفسها ذاتياً وفق مبدأ: احفظ أولاً، ثم انتقِ لاحقاً.
هذا التدرّج من الحفظ إلى الانتقاء يشبه الطريقة التي نعالج بها المشاهد البصرية: نجمع كل التفاصيل ثم نركّز على ما يهم.
تجاوز الأداء البشري على ImageNet
بدمج تنشيطات PReLU مع تهيئة He، درّب الباحثون سلسلة نماذج متصاعدة العرض والعمق. أفضل نموذج فردي حقّق نسبة خطأ 5.71% في أعلى 5 تنبّؤات — وهذا وحده يتفوّق على كل تجميعات النماذج المتعددة التي سبقته. وحين جُمعت ستة نماذج معاً، انخفضت النسبة إلى 4.94%، متجاوزةً الأداء البشري المُسجَّل (5.1%) على نفس مجموعة البيانات.
كانت هذه المرة الأولى التي يتفوّق فيها نموذج حاسوبي على الإنسان في تحدٍّ واسع النطاق للتعرّف البصري. والمهم أن المستوى البشري المرجعي لم يكن تخميناً عابراً، بل حدّده مُصنِّف بشري مُدرَّب يعمل عبر واجهة متخصصة تعرض صوراً مرجعية لكل فئة. النتيجة أثبتت شيئاً جوهرياً: حين تكون الأساسيات صحيحة — تهيئة أوزان سليمة ودوال تنشيط مناسبة — يمكن للعمق والعرض أن يدفعا الدقة إلى مستويات غير مسبوقة.
من الملاحظات الطريفة أن أخطاء البشر تركّزت في التمييز الدقيق (مثل 120 سلالة كلاب) وعدم الإلمام ببعض الفئات، بينما أخطاء الآلة جاءت من مواقف تحتاج فهم السياق أو مشاهد تحتوي كائنات متعدّدة.
لماذا لا يزال هذا مهماً
2010
تهيئة Xavier
اشتقّ Glorot وBengio طريقة لضبط مقياس الأوزان بما يناسب sigmoid وtanh، عبر تحليل تدفّق التباين. تعمل جيداً مع التنشيطات المتماثلة، لكنها لا تصلح لـ ReLU.
2011
ReLU تكتسب زخماً
أثبت Glorot وزملاؤه أن ReLU تتدرّب أسرع من sigmoid، ومعها أصبحت الشبكات العميقة ذات التنشيطات المتفرّقة خياراً عملياً قابلاً للتطبيق.
2015
تهيئة He + PReLU
عالج He وزملاؤه خلل التهيئة لشبكات ReLU بإضافة عامل 2، واقترحوا ميول تنشيط قابلة للتعلّم. شبكات PReLU حقّقت 4.94% متجاوزةً الأداء البشري للمرة الأولى.
2015
ResNet (نفس المؤلفين)
بفضل تهيئة He أصبح ممكناً تدريب 152 طبقة مع اتصالات تخطّي. فازت ResNet بمسابقة ILSVRC 2015 بنسبة خطأ 3.57%.
2017
GELU وSwish والتنشيطات المتعلَّمة
فتحت فكرة PReLU بالتنشيطات القابلة للتعلّم الباب أمام بدائل ناعمة كـ GELU وSwish، وهما اليوم من الأساسيات في المحوِّلات والبنى الحديثة.
المرجعHe, Zhang, Ren, Sun. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification. ICCV, 2015.
مصطلحات هذه الورقة
- تهيئة الأوزانWeight initialization
- دالة الوحدة الخطية المصححةReLU
- دالة التنشيطActivation Function
- اضمحلال متجهات الميلVanishing Gradient
- التباينVariance
- التمرير الأماميForward Pass
- التمرير الخلفيBackward Pass
- دالة التسريب الخطي المصححةLeaky ReLU
- ImageNetImageNet
- معدل خطأ أعلى 5 احتمالاتTop-5 Error Rate
- تسوية الدفعات الحسابيةBatch Normalization
- التعلم العميقDeep Learning
- الشبكة العصبية الالتفافيةConvolutional Neural Network (CNN)