الهدف: اختيار دالة تنشيط وفهم التشبّع والتدرجات والمخرج.
| دالة التنشيط | التعبير/الفكرة | الاستخدام والحذر |
|---|---|---|
| ReLU | max(0, z) | بسيطة وسريعة؛ عصبونات ميّتة محتملة |
| LeakyReLU | ميل ضعيف عندما z<0 | يُقلّل الوحدات المُصفَّرة نهائياً |
| tanh | مخرج ضمن [-1, 1] | مركزيّة، لكنها تتشبّع عند الأطراف |
| sigmoid | مخرج ضمن [0, 1] | خصوصاً لمخرج ثنائي؛ تشبّع |
| GELU | تعديل ناعم | شائعة في المحوّلات (Transformers) |
مشتقّ ReLU يساوي 1 عندما z>0 و0 عندما z<0. الوحدة التي تتلقّى دائماً ما قبل تنشيط
سالبة لا تُمرّر تدرجاً بعد ذلك: تصير «ميتة».
BCEWithLogitsLoss.CrossEntropyLoss.softmax(z_i) = exp(z_i) / Σ_j exp(z_j) تُحوِّل K من Logits إلى أعداد موجبة مجموعها 1.
إضافة ثابت واحد إلى جميع Logits لا يُغيّر الاحتمالات. تطرح التطبيقات المستقرّة القيمةَ
القصوى قبل الأس.
استخدم ReLU خط أساس لـ MLP/CNN، وGELU للمحوّلات، ولا تضع دالة تنشيط للمخرج إلاّ إذا فرضتها الخسارة أو الواجهة صراحةً.
لماذا يجب أن تكون دوالّ التنشيط غير خطية؟ أيّ دالة تُنتج احتمالات متعارضة؟
وإلاّ فإن كل الشبكة تُختزل إلى تحويل تآلفي. تُنتج softmax توزيعاً على أصناف متعارضة.
احسب ReLU وsigmoid عند z = {-2, 0, 2}، ثم softmax مستقر لـ [1000, 1001, 999]. اربط
بعد ذلك مخرَجاً بأربع مهام: ثنائية، ومتعدّدة الأصناف، ومتعدّدة العلامات، وانحدار غير
محدود. النجاح: لا تنشيط مضاعف قبل خسارة تعمل على Logits.
القراءة: كثيراً ما تُملي دالة الخسارة الشكل العددي المتوقَّع. مع خسائر مستقرّة تستقبل Logits، تُستعمل sigmoid أو softmax للتفسير فقط، لا كمدخل للخسارة. المزلق الرئيسي إذن هو التنشيط المضاعف، الذي يُتلف التدرجات وقد يُنتج احتمالات مُضلِّلة.