التعلم العميق2016مبتدئ10 دقيقة قراءة
وحدات الخطأ الغاوسي الخطية (GELUs)
Gaussian Error Linear Units (GELUs)
Hendrycks, D. · Gimpel, K. — arXiv
المشكلة
دوال التنشيط ومنظِّمات العشوائية (مثل الإسقاط العشوائي) عاشتا في عالمين منفصلين. ReLU تتخذ قرارًا حادًّا — تمرير أو حذف — بناءً على إشارة المدخل فقط، فتُنتج نقطة انكسار حادة عند الصفر. هذا القرار لا يأخذ بالحسبان مدى ثقة الشبكة في أهمية المدخل. والإسقاط العشوائي من جهته يُلغي عصبونات عشوائيًّا بغض النظر عن قيمتها. لم تكن هناك دالة تنشيط تجمع الفكرتين معًا في عملية واحدة سلسة ذات أساس احتمالي.
الإسهام
GELU: GELU(x) = x · Φ(x)، حيث Φ(x) هي للتوزيع الطبيعي المعياري. بدل الحجب بالإشارة (كما في ReLU) أو الحذف العشوائي الأعمى (كما في الإسقاط العشوائي)، ترجّح GELU كل مدخل بحسب احتمال تفوّقه على بقية المدخلات وفق توزيع غاوسي. الناتج منحنى سلس غير رتيب يجسّد القيمة المتوقعة لمنظِّم عشوائي — فتتوحّد اللاخطية والتنظيم في صيغة واحدة. حققت GELU نتائج أفضل من ReLU وELU في مهام الرؤية الحاسوبية ومعالجة اللغة الطبيعية والكلام.
الأثر
غدت GELU دالة التنشيط الافتراضية في عالم المحوِّلات. تبنّاها BERT وGPT-2 وGPT-3 ومعظم النماذج اللغوية الكبرى، حتى صارت من أكثر دوال التنشيط استخدامًا في الحديث. الورقة نفسها قدّمت أيضًا الوحدة الخطية السينية (SiLU) التي أعاد فريق Google Brain اكتشافها لاحقًا تحت اسم «Swish». والدرس الأهم: التفكير الاحتمالي المنهجي في تصميم دوال التنشيط يترجم فعلًا إلى مكاسب أداء ملموسة.
تخيّل حارس ملهى ليلي. حارس صارم: موجب؟ تفضّل ادخل. سالب؟ ممنوع. لا مساومة — حتى لو كنت −0.001 ستُرفض فورًا، بينما +0.001 يدخل بلا تردد.
GELU حارس أذكى يملك حسًّا احتماليًّا. بدل القرار القاطع، يسأل نفسه: «ما احتمال أن هذا الشخص ينتمي إلى هنا فعلًا؟» القيم الموجبة الكبيرة تدخل بثقة تامة، والسالبة الكبيرة تُمنع. أما الحالات الحدّية — القيم القريبة من الصفر — فتحصل على ترحيب بقدر معقولية وجودها: الحارس يسمح لجزء من الإشارة بالمرور تبعًا لمدى أهميتها. لا قفزة حادة ولا حافة مفاجئة — مجرد حُكم سلس متدرّج.
المشكلة: بوابات حادة ومنظِّمات لا تتحدث لبعضها
بحلول عام 2016 كانت ReLU هي الحصان الذي يجرّ عربة بأكمله. صيغتها بسيطة بقدر ما يمكن أن تكون: . إن كان المدخل موجبًا مرَّ كما هو، وإن كان سالبًا صار صفرًا. هذه البساطة أعطتها سرعة وفعالية فاقت بمراحل دوال التي سبقتها، والتي كانت تعاني من تلاشي كلّما ازداد عمق الشبكة.
لكن في ReLU مشكلة واضحة: عند تقفز فجأة من 0 إلى 1. هذا الانكسار الحاد يعني أن الدالة غير سلسة — التدرُّج ينقلب في لحظة. قيمة تحت الصفر بشعرة تجعل ميّتًا تمامًا، وقيمة فوقه بشعرة تجعله حيًّا بالكامل. لا توجد منطقة رمادية قرب الحدّ الفاصل.
وعلى الجانب الآخر، كانت تقنيات العشوائي مثل تعمل في معزل تام. فكرة الإسقاط العشوائي هي إلغاء عصبونات عشوائيًّا أثناء التدريب لمنع — لكنه يفعل ذلك بشكل أعمى دون أن يسأل: هل هذا العصبون يحمل إشارة قوية أم ضعيفة؟ كأنّ قرار التنشيط وقرار التنظيم يعيشان في عالمين منفصلين لا يعرف أحدهما شيئًا عن الآخر.
الفكرة: المدخل نفسه يقرّر مصيره
الفكرة المحورية وراء GELU بسيطة وأنيقة: ادمج دالة التنشيط والمنظِّم في عملية واحدة.
لنبدأ بتجربة ذهنية. تخيّل أنك عند كل عصبون ترمي عملة معدنية منحازة لتقرّر: هل تحتفظ بالمدخل أم تُسقطه؟ الفارق أن انحياز العملة يتحدّد بالمدخل نفسه. مدخل موجب كبير؟ تبقيه شبه مؤكد. سالب كبير؟ تُسقطه شبه مؤكد. قريب من الصفر؟ فرصته قريبة من النصف.
رياضيًّا: نضرب المدخل في قناع ، حيث هي دالة التراكمي للتوزيع الطبيعي المعياري. بعبارة أخرى: أن نحتفظ بالقيمة يساوي احتمال أن يكون متغير عشوائي طبيعي معياري أصغر من أو يساويها.
هذا في جوهره منظِّم عشوائي يشبه الإسقاط العشوائي، لكنه واعٍ بقيمة المدخل. الخطوة الأخيرة: نأخذ القيمة المتوقعة فنحصل على دالة حتمية:
هذه هي GELU. لا عشوائية وقت — مجرد منحنى سلس حتمي يختزل الحدس الاحتمالي بداخله.
صيغة GELU الرياضية
الآن وقد بنينا الحدس — العملة المنحازة التي تقرّر إبقاء كل مدخل أو إسقاطه بحسب قيمته — حان وقت الصيغة. القيمة المتوقعة لتلك العملية العشوائية تعطينا دالة تنشيط حتمية نظيفة.
حساب دالة الخطأ بدقة قد يكون مكلفًا حسابيًّا في بعض أُطُر العمل، لذا قدّمت الورقة تقريبين سريعين:
تقريب (أدق):
تقريب السينية (أسرع):
أغلب أُطُر العمل الحديثة تحسب الصيغة الدقيقة بكفاءة، لكن هذين التقريبين كانا أساسيَّين في مرحلة التبنّي المبكّر — وبخاصة صيغة tanh التي اعتمدها تنفيذ BERT الأصلي.
ما الذي يجعل GELU أفضل؟
ثلاث خصائص تمنح GELU تفوّقها على ReLU وELU:
النعومة. GELU قابلة للاشتقاق لعدد لا نهائي من المرات في كل نقطة. لا انكسار ولا قفزة مفاجئة في التدرُّج. هذا يجعل سطح أملس، ما يساعد على إيجاد مسارات أفضل. الزاوية الحادة في ReLU عند الصفر قد تسبب تذبذبات أثناء التدريب.
عدم الرتابة. عند تنخفض GELU قليلاً تحت الصفر. هذا يعني أنها تستطيع إخراج قيم سالبة طفيفة — قد يبدو هذا غريبًا، لكنه يسمح للشبكة بترميز ما يشبه «مضادات ». في المقابل، ReLU وELU رتيبتان تمامًا: لا تنخفضان أبدًا مهما زاد المدخل.
الانحناء في كل مكان. ReLU خطية تمامًا في المنطقة الموجبة — لا انحناء على الإطلاق. أما GELU فتنحني بلطف حتى مع المدخلات الموجبة، ولا تقترب من خط الهوية إلا عندما . هذا الانحناء المستمر قد يمنح الشبكة مرونة أكبر في تقريب الدوال المعقّدة.
شجرة عائلة دوال التنشيط: من ReLU إلى GELU
GELU لم تظهر من فراغ — هي حلقة في سلسلة تطوّر واضحة، وفهم ما سبقها يوضّح سرّ فعاليتها:
ReLU — — تحجب بالإشارة فقط. دالة المؤشر إما 0 أو 1 بلا وسط. واللافت أن هذه ليست سوى GELU في حالتها الحدّية حين : دالة التوزيع التراكمي الغاوسية تتقلّص إلى دالة درجة، فتصبح ، وتنطوي GELU على ReLU. بمعنى آخر: ReLU حالة خاصة من GELU.
ELU — تعالج الجانب السالب من ReLU بمنحنى أسّي: حين ، لكنها تظل خطية في المنطقة الموجبة. تحلّ مشكلة العصبون الميت لكن بلا أساس احتمالي.
SiLU (الوحدة الخطية السينية) — ، حيث هي السينية اللوجستية. قُدِّمت في الورقة نفسها، وتستخدم دالة التوزيع التراكمي اللوجستي بدل الغاوسي. أعاد فريق Google Brain اقتراحها لاحقًا تحت اسم «Swish». فكرتها قريبة من GELU لكنها أقل دقة لأن التوزيع اللوجستي تقريب أضعف للغاوسي.
GELU في الشيفرة البرمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
from scipy.special import erf
def gelu_exact(x):
"""GELU الدقيقة باستخدام دالة الخطأ."""
return x * 0.5 * (1.0 + erf(x / np.sqrt(2.0)))
def gelu_tanh_approx(x):
"""تقريب tanh — استُخدم في الشيفرة الأصلية لـ BERT."""
return 0.5 * x * (1.0 + np.tanh(
np.sqrt(2.0 / np.pi) * (x + 0.044715 * x**3)
))
def gelu_sigmoid_approx(x):
"""تقريب السينية — الأسرع لكنه أقل دقة قليلاً."""
return x * 1.0 / (1.0 + np.exp(-1.702 * x))
# في PyTorch: torch.nn.functional.gelu(x)
# في TensorFlow: tf.nn.gelu(x)
# كلاهما يستخدم الصيغة الدقيقة افتراضيًّا.النتائج التجريبية
اختبرت الورقة GELU في مواجهة ReLU وELU عبر خمسة مجالات مختلفة:
- MNIST — شبكة أمامية من 8 : حققت GELU أدنى خسارة على بيانات التدريب والتحقق، سواء مع الإسقاط العشوائي أو بدونه، مع متانة أعلى تجاه المدخلات المشوّشة.
- على MNIST — بنية عميقة (1000←500←250←30←250←500←1000): تفوّقت GELU بوضوح عند متعددة.
- وسم أجزاء الكلام في تغريدات تويتر — شبكة من طبقتين مع مُدرَّبة مسبقًا: حققت GELU خطأ 12.57% مقابل 12.67% لـ ReLU و12.91% لـ ELU.
- التعرّف على الكلام (TIMIT) — مصنّف من 5 طبقات بعرض 2048 عصبونًا: GELU عند 29.3% مقابل 29.5% لـ ReLU و29.6% لـ ELU.
- CIFAR-10/100 — : GELU عند 7.89% على CIFAR-10 مقابل 8.16% لـ ReLU، وعلى CIFAR-100 مع الشبكات المتبقية الواسعة 20.74% مقابل 21.77%.
النمط واضح: GELU تساوت مع المنافسين أو تفوّقت عليهم في كل معيار بلا استثناء.
GELU في عصر المحوِّلات
أين استقرّت GELU في نهاية المطاف؟ في قلب .
المحوِّل الأصلي استخدم ReLU في . لكن حين ظهر BERT عام 2018، استبدلها بـ GELU — وحقق أفضل النتائج على 11 معيارًا في معالجة اللغة الطبيعية. GPT-2 سار على المنوال نفسه، وبحلول GPT-3 لم يعد هناك نقاش: GELU هي الخيار الافتراضي.
لماذا تناسب GELU المحوِّلات إلى هذا الحد؟ شبكة التغذية الأمامية في كل كتلة محوِّل هي المكان الذي يخزّن فيه المعرفة الواقعية ويسترجعها. بوابة GELU السلسة المُرجَّحة بالقيمة تعطي هذه الشبكة قدرة تعبيرية أعلى من بوابة ReLU الحادة. والنعومة تساعد أيضًا في البنى العميقة جدًّا (12 إلى 96 طبقة) التي تستخدمها المحوِّلات، لأن التدرُّجات السلسة تتدفق بموثوقية أكبر عبر طبقات كثيرة من .
اليوم، GELU بالنسبة لـالمحوِّلات هي ما كانت عليه ReLU بالنسبة لـالشبكات الالتفافية: دالة التنشيط التي تستخدمها ما لم يكن لديك سبب محدد لاختيار غيرها.
2016
اقتراح GELU
قدّم هندريكس وجيمبل GELU بوصفها دالة تنشيط ذات أساس احتمالي، وأظهرا تفوّقها على ReLU وELU في مهام الرؤية واللغة والكلام.
2017
ورقة المحوِّل
ورقة «الانتباه هو كل ما تحتاجه» استخدمت ReLU في طبقات التغذية الأمامية. GELU لم تصبح الخيار الافتراضي بعد.
2018
BERT يتبنّى GELU
استبدل BERT دالة ReLU بـ GELU في طبقات التغذية الأمامية وحقق نتائج قياسية على 11 معيارًا، فترسّخت GELU كدالة التنشيط الأساسية للمحوِّلات.
2019
GPT-2 يتبع المسار
استخدم GPT-2 دالة GELU في جميع طبقاته. من هذه النقطة فصاعدًا، تبنّت أغلب النماذج اللغوية الكبرى GELU افتراضيًّا.
2020
GPT-3 — 175 مليار معامل مع GELU
أكبر نموذج لغوي في عصره عمل بدالة GELU. نجاحه أكّد صلاحية GELU على نطاق غير مسبوق.
المرجعHendrycks, Gimpel. Gaussian Error Linear Units (GELUs). arXiv, 2016.
مصطلحات هذه الورقة
- دالة التنشيطActivation Function
- دالة الوحدة الخطية المصححةReLU
- وحدة الخطأ الخطية الغاوسية (GELU)GELU
- الإسقاط العشوائي للعصبوناتDropout
- التنظيم العشوائيStochastic Regularization
- الدالة اللينة الموجبةSoftplus
- دالة سيجمويدSigmoid
- دالة التوزيع التراكميCumulative Distribution Function