The AI / news

وظيفة التنشيط gelu : كيف تعمل ولماذا تستخدمها نماذج المحولات

وظيفة التنشيط gelu : كيف تعمل ولماذا تستخدمها نماذج المحولات
3 دقيقة للقراءة

لماذا تستخدم نماذج المحولات، مثل BERT، وظيفة GELU بدلاً من وظيفة ReLU؟ وفقاً لمقال نُشر بواسطة Analytics Vidhya، يكمن الجواب في طريقة معالجة كل منهما للمعلومات. بينما تقوم ReLU بحذف المدخلات السالبة تماماً، تطبق GELU آلية سلسة تعتمد على قيمة كل مدخل لتقرر أي جزء من المعلومات يجب أن يمر.

GELU، وهي اختصار لـ Gaussian Error Linear Unit، هي وظيفة تنشيط غير خطية تم تقديمها عام 2016 بواسطة دان هندريكس وكيفن جيمبل. تحدد وظيفة التنشيط كيفية تحويل العصبون لمدخله قبل تمريره إلى الطبقة التالية. بدونها، فإن تراكم الطبقات الخطية لن ينتج سوى تحول خطي شامل، مما يحد من قدرة الشبكة العصبية على التعلم.

لا تطبق GELU حداً صارماً. إنها تقوم بقياس كل مدخل وفقاً لقيمته. تمر القيم الموجبة القوية دون تغيير تقريباً، بينما يتم تخفيف القيم القريبة من الصفر جزئياً، وتُعاد القيم السالبة القوية نحو الصفر. قد تحتفظ القيم السالبة المعتدلة بمخرج سالب صغير. يلاحظ المقال أن الورقة البحثية الأصلية لـ GELU قيمت الوظيفة في مجالات الرؤية الحاسوبية، ومعالجة اللغة الطبيعية، والتعرف على الصوت، وأفادت بتحسينات مقارنة بعدة وظائف تقليدية في تجاربها.

GELU مقابل ReLU

ReLU، وهي اختصار لـ Rectified Linear Unit، تُرجع القيمة صفر للمدخل السالب وتُرجع القيمة نفسها للمدخل الموجب. لذا، بالنسبة لمدخل بقيمة -1، تُرجع 0، وبالنسبة لمدخل بقيمة 2، تُرجع 2. تتصرف GELU بشكل مختلف: مدخل بقيمة -1 يعطي حوالي -0.159، ومدخل بقيمة 2 يعطي حوالي 1.954. وبالتالي فإن الوظيفة ليست متزايدة بشكل صارم على كامل مجالها، حيث تظهر منطقتها السالبة انخفاضاً طفيفاً قبل أن تقترب من الصفر للقيم السالبة جداً.

تُكتب GELU بالشكل x × Φ(x)، حيث Φ(x) هي دالة التوزيع التراكمي للتوزيع الطبيعي المعياري، أي توزيع بمتوسط صفر وانحراف معياري واحد. تُعبر عن هذه الدالة باستخدام دالة الخطأ erf. بالنسبة لمدخل بقيمة 1، تكون قيمة Φ حوالي 0.8413: وبالتالي يتم الاحتفاظ بالإشارة الموجبة بشكل كبير، بينما يتم تقليل الإشارة السالبة للقيمة -1 بشكل كبير. يوضح النص أن GELU حتمية. إنها لا تحذف مخرجات العصبونات بشكل عشوائي أثناء التنفيذ، حتى لو تم وصف آلية عملها أحياناً على أنها آلية ترشيح احتمالية.

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

لماذا توجد GELU في نماذج المحولات

المحول، وهو البنية التي يعتمد عليها BERT والعديد من نماذج اللغة الكبيرة، يجمع بين آليات الانتباه، وطبقات التطبيع، وشبكات العصبية ذات التغذية الأمامية (FFN). تُستخدم GELU بشكل شائع في الـ FFN، وليس في حساب احتمالات الانتباه. في بنية BERT، هي وظيفة التنشيط الافتراضية للطبقات المخفية، كما تشير إليه إعدادات BERT في Hugging Face. تظهر أيضاً في محولات الرؤية، لكن بعض النماذج الحديثة تستخدم متغيرات ذات بوابات تعتمد على SiLU، مثل SwiGLU.

تتطلب الصيغة الدقيقة لـ GELU استخدام دالة التوزيع التراكمي الغوسي، وهي أكثر تكلفة حسابياً من الوظائف الأبسط. يعرض المقال تقريباً شائعاً يعتمد على دالة الظل الزائدية، والذي ينتج قيماً قريبة من GELU الدقيقة. يسمح PyTorch باستخدام الصيغتين من خلال معلمته approximate.

تجربة باستخدام Python

يقارن المؤلف شبكتين متطابقتين، إحداهما تستخدم ReLU والأخرى تستخدم GELU، على مجموعة البيانات make_moons من scikit-learn، والمكونة من 2000 عينة. يشارك النموذجان نفس البنية، ونفس المُحسن Adam، ونفس معدل التعلم البالغ 0.001، ونفس البذرة العشوائية، على مدى 100 عصر. يحذر المقال من أن تشغيلة واحدة لا تكفي لتحديد الوظيفة الأفضل: ويوصي بتكرار التجربة بعدة بذور عشوائية وتخصيص مجموعة الاختبار للتقييم النهائي. هدفه ليس إثبات أن GELU متفوقة عالمياً.

بالنسبة للنموذج المدرب مسبقاً، يوصي النص بشكل عام بالاحتفاظ بوظيفة التنشيط الأصلية. استبدال GELU بـ ReLU في محول مدرب مسبقاً يغير حساباته وقد يقلل من أدائه، إلا إذا تم إعادة تدريب النموذج المعدل أو ضبطه بشكل صحيح.