مقدمة في دوال التنشيط

لماذا نحتاج إلى دوال  التنشيط؟

في الشبكات العصبية لدينا عصبونات ، و كل عصبونه  تستقبل مدخلات (inputs) و تجري عليها عمليات جمع موزنه ثم تمررها بدالة التنشيط (activation functions )و بدورها تحولها إلى مخرج ، تساعد دوال التنشيط الشبكة العصبية على تعلم العلاقات والأنماط المعقدة في البيانات. والسؤال الآن هو ماذا لو كنا لا نستخدم أي دالة تنشيط ونسمح للخلايا العصبية بإعطاء المجموع الموزن للمدخلات كما هو كمخرج. في هذه الحالة ، ستكون العملية الحسابية صعبه جدًا نظرًا لأن المجموع الموزون للمدخلات ليس له أي نطاق واعتمادًا على المدخلات يمكن أن يأخذ أي قيمة. ومن ثم ، فإن أحد الاستخدامات المهمة لدوال التنشيط هو إبقاء الناتج مقيدًا بنطاق معين. و استخدام آخر لدالة التنشيط هو إضافة اللاخطية في البيانات. نختار دائمًا دوال غير خطية دوال تنشيط.

لماذا نختار دائمًا دوال التنشيط الغير الخطي في الشبكة العصبية؟

اللاخطية (Non-linearity) تعني أن المخرجات  لا يمكن تولد من مجموعة خطية من المدخلات. اللاخطية مهمة في الشبكات العصبية لأن دوال التنشيط الخطي ليست كافية لتشكيل دوال مقاربة. إذا استخدمنا دوال التنشيط الخطيه في شبكة عصبية عميقة ، فبغض النظر عن مدى عمق شبكتنا ، فستكون مساويه لشبكة عصبية خطية بدون طبقات مخفية و ذلك لأنه يمكن دمج دوال التنشيط الخطيه لتشكيل دالة خطية واحدة أخرى. لذلك ، سيتم اختزال شبكتنا بالكامل إلى عصبون واحد يحتوي الدالة الخطية المدمجة كدالة تنشيط ، ولن يتمكن العصبون بمفرده من تعلم العلاقات المعقدة في البيانات. نظرًا لأن معظم مشكلات العالم الواقعي معقدة للغاية ، فنحن بحاجة إلى دوال التنشيط غير الخطية في الشبكة العصبية. الشبكة العصبية بدون دوال التنشيط غير الخطية ستكون مجرد نموذج انحدار خطي بسيط (linear regression model).

مبرهنة التقريب العام (Universal Approximation Theorem)

من ويكبيديا

” في النظرية الرياضية الخاصة بالشبكات العصبونية، تنص مبرهنة التقريب العام على أن[1] شبكة التغذية الأمامية متعددة الطبقات القياسية ذات طبقة واحدة مخفية، التي تشتمل على عدد لانهائي من العصبونات المخفية، هي مقراب عام بين الدوال المستمرة في المجموعات الفرعية المتراصة في Rn،.”

باختصار ، تقول هذه النظرية أن الشبكة العصبية يمكن أن تتعلم أي دالة مستمرة. الآن السؤال هو ما يجعلها تفعل ذلك. الجواب هو عدم خطية دوال التنشيط.

مشاكل تلاشي وانفجار الإشتقاق (Vanishing and Exploding Gradient Problems)

في الشبكات العصبية أثناء الانتشار العكسي ، يتلقى كل وزن تحديثًا يتناسب مع المشتق الجزئي لدالة الخسارة في بعض الحالات ، يكون هذا المصطلح المشتق صغيرًا جدًا بحيث يجعل التحديثات صغيرة جدًا. خاصة في الطبقات العميقة من الشبكة العصبية ، يتم الحصول على التحديث بضرب مختلف المشتقات الجزئية. إذا كانت هذه المشتقات الجزئية صغيرة جدًا ، يصبح التحديث صغيرًا جدًا ويقترب من الصفر. في مثل هذه الحالة ، لن تتمكن الأوزان من التحديث وبالتالي سيكون هناك تباطؤ أو عدم تقارب (no convergence). تُعرف هذه المشكلة باسم مشكلة تلاشي الإشتقاق (Vanishing gradient problem)

وبالمثل ، إذا كان مصطلح المشتق كبيرًا جدًا ، فستكون التحديثات أيضًا كبيرة جدًا. في مثل هذه الحالة ، ستتخطى الخوارزمية الحد الأدنى ولن تكون قادرة على التقارب. تُعرف هذه المشكلة باسم مشكلة تفجر اللإشتقاق (Exploding gradient problem).

هناك طرق مختلفة لتجنب هذه المشاكل. اختيار دالة التنشيط المناسبة هي واحد منهم.

دوال التنشيط

1. دالة السيغمويد (Sigmoid)

السيغمويد هي دالة رياضية على شكل حرف “S” لها صيغتها-

هنا رسم بياني لدالة السيغمويد. الرغم من أن دالة السيغمويد شائعة جدًا ، إلا أنها لا تستخدم كثيرًا للأسباب التالية-

الايجابيات :

  1. دالة السيغمويد مستمرة و قابلة للإشتقاق.
  2. المخرجات محدوده بين 0 و 1
  3. تعطي تنبؤات واضحة بالنسبة لعمليات التصنيف الثنائي.

السلبيات :

  1. يمكن أن تسبب مشكلة تلاشي المشتقات.
  2. لا تتمركز حول الصفر.
  3. مكلفة حسابيا

مثال:

2. دالة سوفت ماكس (softmax):

دالة سوفت ماكس هي تعميم دالة السيغمويد على لتناسب عمليات التصنيف المتعددة . يتم استخدامها بشكل شائع في الطبقة النهائية من عمليات التصنيف المتعددة . إنها تأخذ متجهًا “k” للرقم الحقيقي  ثم تسويته (normalizes) في توزيع احتمالي يتكون من “k” من احتمالات تتناسب مع  مضاعفات الرقم المُدخل. قبل تطبيق سوفت ماكس ، يمكن أن تكون بعض مكونات المتجه سلبية ، أو أكبر من واحد ، وقد لا تساوي 1 ولكن بعد تطبيق سوفت ماكس سيكون كل مكون في النطاق من 0 إلى 1 حاصل جمعهم يساوي 1 ، وبالتالي يمكن تفسيرها على أنها الاحتمالات.

الايجابيات:

يمكن استخدامه عمليات التصنيف المتعددة  .وبالتالي يتم استخدامه في طبقة الإخراج للشبكات العصبية.

السلبيات :

إنها مكلفة من الناحية الحسابية حيث يتعين علينا حساب الكثير من المصطلحات الأسية.

مثال-

3. دالة الظل الزائدي (tanh) :

الظل الزائدي أو باختصار “tanh” لديه المعادلة التالية

وهي تشبه إلى حد كبير دالة السيغمويد. متمركزه حول صفر وتتراوح مداها بين -1 و +1.

الايجابيات:

  1. إنها مستمرة و قابلة للإشتقاق في كل مكان.
  2. تتمحور حول صفر.
  3. سيحد المخرجات في نطاق من -1 إلى +1.

سلبيات:

  1. يمكن أن تسبب مشكلة تلاشي المشتقات.
  2. مكلفة حسابيا.

مثال:

4.دالة ريلو (Relu)

الوحدة الخطية المصححة (rectified linear unit ) غالبًا ما ريلو فقط صورة للنشر

الايجابيات:

  1. سهل الحساب.
  2. لا تسبب مشكلة  تلاشي المشتقات
  3. نظرًا لعدم تنشيط جميع العصبونات ، فإن هذا يخلق تناثر(sparsity) في الشبكة ، وبالتالي تتصف الدالة بالسرعه و الفعالية.
  4.  

سلبيات:

  1. تسبب مشكلة  إنفجار المشتقات
  2. لا تتمركز حول الصفر.
  3. يمكن أن تقتل بعض العصبونات إلى الأبد لأنها تعطي دائمًا صفر للقيم السلبية.

مثال:

للتغلب على مشكلة  إنفجار المشتقات  في دالة التنشيط ريلو، يمكننا ضبط قيمة حد التشبع الخاص بها ، أي القيمة القصوى التي ستخرجها هذه الدالة.

5. دالة ريلو المُسربه (Leaky Relu)

دالة ريلو المُسربه هو تحسين دالة ريلو.  فمن عيوب دالة ريلو هو أنها  يمكن أن تقتل بعض العصبونات في كل تكرار ، وهذا ما يعرف باسم حالة موت ريلو. يمكن أن يتغلب التسريب على هذه المشكلة ، بدلاً من إعطاء صفر للقيم السلبية ، ستعطي رقم سالب صغيرًا نسبيًا ، وبالتالي لن تقتل  أي عصبونه.

الايجابيات:

  1. سهلة الحساب.
  2. لا يسبب مشكلة تلاشي المشتقات
  3. لا يسبب مشكلة موت ريلو

سلبيات:

  1. تسبب مشكلة  إنفجار المشتقات
  2. لا تتمركز حول الصفر.

مثال:

6. دالة ريلو المعييرة (Parameterized Relu)

في ريلو المعييره ، بدلاً من تحديد معدل ثابت للمحور السلبي ، يتم تمريره كمعيار جديدة قابلة للتدريب تتعلمه الشبكة من تلقاء نفسها لتحقيق تقارب أسرع.

الايجابيات:

  1. سوف تتعلم الشبكة أنسب قيمة لألفا من تلقاء نفسها.
  2. لا يسبب مشكلة تلاشي الإشتقاق

سلبيات:

  1. من الصعب حسابها.
  2. يعتمد الأداء على المشكلة.

مثال:

في Tensorflow ، يتم تنفيذ ريلة المعييره كطبقة مخصصة. مثال-

7. دالة سويش  (Swish):

يتم الحصول على دالة سويش بضرب x في دالة السغمويد.

تم اقتراح دالة سويش من قبل فريق غوغل براين (Google’s Brain) . حيث تظهر تجاربهم أن سويش تميل إلى العمل بشكل أسرع من ريلو في الشبكات العميقة

الايجابيات:

  1. لا تسبب مشكلة موت ريلو.
  2. أثبت أنها أفضل من ريلو بشيئ بسيط.

سلبيات:

  1. مكلفة حسابيا.

8. دالة إيلو (ELU)

الوحدة الخطية الأسية (Exponential Linear Unit) هي شكل آخر من أشكال ريلو و التي تحاول جعل التنشيط أقرب إلى الصفر مما يسرع التعلم. وقد أظهرت دقة تصنيف أفضل من ريلو. تحتوي إيلو على قيم سلبية تدفع متوسط ​​عمليات التنشيط إلى ما يقرب من الصفر.

الايجابيات:

  1. لا تسبب مشكلة موت ريلو.

سلبيات:

  1. مكلفة حسابيا.
  2. تسبب مشكلة إنفجار المشتقة
  3. يجب تحديد قيمة ألفا.

9. سوفت بلس و سوفت ساين (Softplus and Softsign)

دالة سوفت بلس  هي –

مشتقتها هي دالة السيغمويد .

أما سوفت ساين هي-

لا يتم استخدام سوفت بلس  و سوفت ساين  كثيرًا وبشكل عام ، يُفضل ريلوومتغيراته عليها.

الايجابيات:

  1. لا تسبب  مشكلة تلاشي الإشتقاق

سلبيات:

  1. مكلفة حسابيا.
  2. أبطأ من ريلو.

مثال:

10. دالة سيلو (Selu)

تشير سيلو إلى وحدة خطية أسية متوسعه (Scaled exponential linear unit). يتم تعريف سيلو على أنها :

حيث قيم alpha و scale هما ثوابت قيمهما 1.673 و 1.050 على التوالي. تتم اختيار قيم alpha و scale بحيث يتم الحفاظ على متوسط ​​وتباين المدخلات بين طبقتين متتاليتين طالما تمت تهيئة الأوزان بشكل صحيح. أثبت سيلو أنها أفضل من ريلو ولديها المزايا التالية.

الايجابيات:

  1. لا تسبب مشكلة  تلاشي المشتقات .
  2. لا تسبب مشكلة موت ريلو .
  3. أسرع وأفضل من وظائف التنشيط الأخرى.

مثال:

11. دالة التنشيط الخطي (Linear Activation)

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

مثال:

كيفية تحديد وظيفة التنشيط التي يجب استخدامها

  • يجب  تجنب دالتي السيغمويد دالة الظل الزائدي بسبب مشكلة تلاشي المشتقات.
  • يجب أيضًا تجنب سوفت بلس و سوفت ساين نظرًا لأن ريلو هي الخيار الأفضل.
  • يفضل إستخدام ريلو للطبقات المخفية. أما إذا ظهرت مشكلة موت ، فينبغي استخدام تعديلاتها مثل ريلو المسربه، إيلو ، سيلو …إلخ .
  • في الشبكات العميقة ، أداء سويش أفضل من ريلو.
  • بالنسبة للطبقة النهائية في حالة الإنحدار فالدوال  الخطية هي الأنسب، ، أما للتصنيف الثنائي فدالة السيغمويد هي الأنسب وللتصنيف متعدد الطبقات ، فدالة السوفت ماكس هي الاختيار الصحيح. يجب استخدام نفس المفهوم في شبكات الترميز التلقائية.

خاتمة

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

المراجع :

 

إضافة تعليق