ما هو تابع التفعيل في الشبكات العصبية؟
تابع التفعيل او Activation function هو عبارة عن تابع رياضي يستخدم في الشبكات العصبونية لتحويل مجموعة من القيم إلى قيمة واحد في خرج الشبكة.
تأتي ضرورة استخدام توابع التفعيل في الشبكات العصبونية لحصر قيم الخرج بمجموعة محددة من القيم, مثلا اذا كان الغرض من الشبكة هو عملية تصنيف Classification ثنائي البعد، يقوم التابع بإخراج قيمتي واحد أو صفر، او ١ او -١ حسب التابع المستخدم.
أهد أهم المتطلبات التي يجب على تابع التفعيل تحقيقها هو أن يكون سريع الحساب رياضيا، لكي تكون عملية التدريب ممكنة وسريعة عند وجود ملايين الخلايا العصبية في الشبكة.
أنواع توابع التفعيل في الشبكات العصبية
يوجد بشكل أساسي نوعين من توابع التفعيل في الشبكات العصبونية:
تابع تفعيل خطي
يقوم التابع الخطي بضرب قيم الدخل بالأوزان الخاصة بكل خلية عصبية ثم حساب الخرج، بمعنى اخر يقوم بحساب علاقة خطية بين الدخل والخرج بالشكل f(X)=aX1+bX2+cX3…
مشكلة استخدام التابع الخطي أنه غير قادر على إيجاد علاقة معقدة تجمع بين مدخلات مختلفة من شبكة الدخل.
تابع تفعيل غير خطي
أغلب الشبكات العصبية الحديثة تستخدم توابع تفعيل غير خطية، مما يسمح للنموذج الرياضي باكتشاف علاقات معقدة بين دخل الشبكة وخرجها، وخصوصا في حال وجود بيانات متعددة الأبعاد Multi-Dimensional data، وخصوصا الصور، الفديوهات وغيرها.
مفاهيم رياضية اساسية عن اختيار تابع التفعيل
عند العمل مع توابع التفعيل الغير خطية، يجب الإلمام بالأفكار الرياضية التالية لفهم عملية التدريب ومخرجات التابع:
- الاشتقاق والتكامل: بمعنى بسيط كيف يكون التغير على محور Y في قيمة تابع التفعيل عندما يحدث تغير على محور X, أو ما يعرف بالمستقيم المماس للتابع التابع.
- التابع الرتيب monotonic function: وهو التابع الذي يحافظ على قيم غير متزايدة أو غير متناقصة.
توابع تفعيل غير خطية شهيرة
إذا كنت مهتم في تعلم الآلة او الشبكات العصبية بشكل خاص، فيجب عليك الدراية الكاملة بالتوابع التالية:
١- تابع سيغمويد Sigmoid أو تابع التفعيل اللوجستي
يأخذ تابع التفعيل سيغمويد الشكل التالي:
يتميز تابع سيغمويد بأنه يعطي ازدياد مرن في القيم، أي أنه لا يقوم بتوليد قيم في الخرج متباعدة على شكل قفزات كبيرة. كما أن أهم مزاياها أن قيم الخرج دائما بين ال ٠ و ١، مما يجعله خيار مثالي للنماذج التي تحتاج إلى حساب قيمة احتمال probability في الخرج، لأن قيم الاحتمال دائما بين ٠ و ١.
ولكن أحد المشاكل التي يعاني منها أنه من أجل قيم عالية جدا او كبيرة جدا ل X لا يعطي التابع اي تغير في الخرج، مما يؤدي الى توقف عملية التدريب في الشبكة العصبونية او حدوث بطء شديد قبل الوصول إلى قيم صحيحة. وأيضا يعتبر تابع سيغمويد مكلف من الناحية الحسابية.
2- تابع التفعيل SoftMax
تابع التفعيل سوفت ماكس يأخذ كدخل مجموعة من القيم على شكل شعاع vector من K عنصر من القيم الحقيقية، ثم يقوم بتحويل القيم normaisation إلى توزيع احتمالي يتالف من K احتمال رياضي بشكل أسي إلى قيم الدخل (اي e للأس x حيث x هي قيمة الدخل). قبل تطبيق تابع السوفت ماكس، بعض قيم الدخل يمكن أن تكون سالبة او اكبر من واحد، وربما لا يكون مجموع قيم الدخل 1، لكن بعد تطبيقه يعطي قيم بين ٠ و ١ يمكن النظر إليها كقيم احتمالات. كلما زادت قيم الدخل، تزداد قيمة الاحتمالية المرافقة له. يحسب تابع سوفت ماكس بالمعادلة التالية (تذكر ان كل قيمة Z هي عنصر من شعاع الدخل K):
بما أن تابع سوف ماكس يقوم بتوليد مجموعة احتمالات بالخرج، فيتم استخدامه بشكل كبير في الشبكات العصبية التي تقوم بتنبؤ مجموعة من الصفوف Multiclass classification حيث يقوم التابع بتوليد قيمة احتمال لكل صنف، أي اذا كان Z0= 0.2 و Z1=0.5 أي ان العنصر الأول بالمصفوفة احتمال كونه من الصنف الأول هي 0.2 بينما احتمال كونه من الصنف الثاني هي 0.5.
3- تابع التصحيح الخطي ReLU
تابع التصحيح الخطي Rectified Linear Unit واحد من أشهر التوابع المستخدمة اليوم في الشبكات العصبية وخصوصا في التعلم العميق.
كما يوضح الخط البياني في الأعلى فأن التابع يأخذ قيمة صفر إذا كانت قيمة الدخل أصغر من صفر او يحافظ على قيمة الدخل نفسها إذا كانت أكبر من الصفر، بالتالي فأن قيم التابع محصورة بين ٠ و لانهاية. التابع قابل للاشتقاق وهو تابع منتظم monotonic.
أحد سلبيات تابع التصحيح انه يقوم بتحويل جميع القيم السالبة إلى صفر، اي انه في حال وجود قيم في التدريب مختلفة سالبة ينظر إليها التابع بشكل واحد وهو الصفر, مما قد يتسبب بخسارة معلومات هامة لازمة لتدريب الشبكة الصعبية.
كانت هذه لمحة سريعة عن أهم توابع التفعيل في الشبكات العصبية، لمزيد من المعلومات أنصح باحتفاظ بالصورة التالي التي توضح أشهر التوابع مع معادلاتها الرياضية ومشتق كل منها ورسم بياني لها يساعدك على تذكرها عند الحاجة.