Leaky ReLU وGELU قد تعطيان خرجًا سالبًا لمدخل سالب، لكنهما تستعملان قاعدتين مختلفتين. تمرر الأولى الجانب السالب بميل تختاره، بينما تضرب الثانية المدخل في قيمة دالة تراكمية. [1][2]
الخلاصة السريعة
افحص القاعدة ومعاملها قبل جمع الدالتين تحت عبارة «تمرير السالب»؛ تشابه علامة الخرج لا يعني تطابق القيم أو المشتقات أو نتائج التدريب.
- في Leaky ReLU يمر الموجب كما هو، ويضرب السالب في negative_slope؛ اخترنا 0.1 للشرح، وليس بوصفه القيمة الافتراضية في PyTorch. [1]
- GELU الأصلية تساوي xΦ(x)، حيث Φ تراكم التوزيع الطبيعي المعياري؛ ليست سحبًا عشوائيًا لكل مدخل عند تطبيق هذه الدالة. [2]
- في المثال، Leaky ReLU عند سالب 2 وسالب 1 تعطي سالب 0.2 وسالب 0.1؛ GELU تعطي تقريبًا سالب 0.04550 وسالب 0.15866، فلا تتبع ميلًا ثابتًا هناك. وفي هذا الاختيار لا توجد مشتقة عادية لـ Leaky ReLU عند الصفر.
- سجل معامل الميل وخيار تقريب GELU؛ وجود خرج سالب أو مشتقة محلية لا يثبت نجاح تدريب، ولم ننفذ مقارنة نماذج.
حدد ميل Leaky ReLU الذي تقصده
تعرّف الشفرة الدالة بالمدخل نفسه في الجانب غير السالب، وبالمدخل مضروبًا في negative_slope في الجانب السالب؛ الافتراضي 0.01. [1]
نختار في تمريننا ميلًا 0.1 كي تظهر النتيجة بسهولة. عند سالب 2 نحسب 0.1 × (سالب 2)، فنحصل على سالب 0.2؛ وعند سالب 1 نحصل على سالب 0.1. عند موجب 1 تبقى النتيجة 1.
تغيير الميل إلى 0.01 يغير خرج المدخل سالب 2 إلى سالب 0.02. لذلك لا تقارن جدولين يحملان الاسم نفسه قبل قراءة هذا المعامل؛ الرقم جزء من قاعدة الحساب.
GELU تستعمل وزنًا تابعًا للمدخل
تحدد الورقة GELU(x) = xΦ(x)، حيث Φ هي دالة التوزيع التراكمية لطبيعي متوسطه صفر وتباينه 1. الدالة المحددة هي التحويل المتوقع، وليست القناع العشوائي الذي ناقشت منه الورقة الفكرة. [2]
للحساب اليدوي نستعمل Φ(سالب 2) نحو 0.022750 وΦ(سالب 1) نحو 0.158655، ونضرب كل قيمة في مدخلها. لا نختار ميلًا واحدًا ثم نضرب به المدخلين. وتختلف أيضًا عن اختيار صفر أو المدخل بقرعة نفذناها في كل مرة.
قارن القيم قبل إطلاق وصف مشترك
الجدول من حسابنا للقاعدة الأصلية، مع تقريب خمسة منازل عشرية. انتقال المدخل من سالب 2 إلى سالب 1 يزيد خرج Leaky ReLU، لكنه يجعل خرج GELU أكثر سلبية في هاتين النقطتين. هذا يكفي لنفي أن الثانية هي الأولى بميل سالب ثابت.
وفي الصفر، كلا الخرجين صفر. لا يكفي الاتفاق في نقطة واحدة لمساواة الدالتين. في Leaky ReLU المختارة يختلف ميل الجانب السالب 0.1 عن ميل الموجب 1؛ لذلك لا توجد مشتقة عادية مشتركة عند نقطة الالتقاء. هذا استنتاج من فرعي القاعدة، لا قياس مشتقة برنامج.
| المدخل | Leaky ReLU: ميل 0.1 | GELU الأصلية تقريبًا |
|---|---|---|
| سالب 2 | سالب 0.2 | سالب 0.04550 |
| سالب 1 | سالب 0.1 | سالب 0.15866 |
| 0 | 0 | 0 |
| 1 | 1 | 0.84134 |
احفظ الإعداد وحدود ما حسبته
تتيح شفرة PyTorch خيار approximate بقيمتي none وtanh، والافتراضي none. [1]
حسابنا قصد الصيغة الأصلية؛ إذا قرأت أرقام تقريب آخر، لا تسمه خطأ لمجرد اختلاف آخر منزلة دون فحص طريق الحساب. وكذلك لا تحول وجود ميل غير صفري في جانب إلى وعد بأن الوحدة ستتعلم كل مهمة أو لن تتعثر.
لم نشغل تنشيطًا أو ندرب شبكة أو نقس زمنًا أو دقة. المقارنة تشرح شكلين مختلفين، وتترك اختيار تنشيط فعلي لتقييم يحدد البنية والبيانات والمقياس، بدل حكم مبني على أسماء البدائل.
المصادر ومتابعة القراءة
- PyTorch 2.8.0: LeakyReLU and GELU (يفتح في نافذة جديدة)raw.githubusercontent.com
- Hendrycks and Gimpel: Gaussian Error Linear Units (يفتح في نافذة جديدة)arxiv.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
