Softmax Function

دالة سوفت ماكس

التعريف

دالة تحوّل متجه أعداد حقيقية إلى توزيع احتمالي مجموعه 1، وتُستخدم في مخرج التصنيف متعدد الفئات.

تأخذ Softmax درجات خام (logits) لكل فئة، وتطبّق الدالة الأسية ثم تقسم على المجموع، فتتحول إلى احتمالات موجبة تتناسب مع الأس. أكبر درجة تحصل على أكبر احتمال.
تُستخدم في مخرج مصنفات الشبكات العصبية وفي الانتباه. ويُنصح بطرح القيمة العظمى قبل الحساب للاستقرار العددي.

Definition

The softmax function maps a vector of real-valued scores to a probability distribution by exponentiating and normalising, and is widely used for multi-class outputs and attention weights.

شرح مبسّط للمبتدئين

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

شرح أكاديمي متخصص

\(\text{softmax}(z)_i=e^{z_i}/\sum_j e^{z_j}\)؛ هي تدرج دالة LogSumExp، وتتحول إلى arg max عند قسمة المدخلات على درجة حرارة تقترب من الصفر.

أمثلة عملية

  • تحويل 3 درجات إلى احتمالات للفئات الثلاث.
Softmax مستقرة عددياً Python
import numpy as np

z = np.array([2.0, 1.0, 0.0])
e = np.exp(z - z.max())
print((e / e.sum()).round(3))

شرح الكود

طرح القيمة العظمى لا يغيّر الناتج ويمنع تضخم الأسس.

النتيجة المتوقعة

[0.665 0.245 0.09 ]

التطبيقات والاستخدامات

  • مخرج التصنيف.
  • أوزان الانتباه.
  • توليد الرمز التالي.

المزايا

  • مشتقة نظيفة وتفسير احتمالي.

القيود والعيوب

  • الإفراط في الثقة.
  • حساسة للقيم الكبيرة دون استقرار عددي.

المعادلات الرياضية

دالة Softmax

\mathrm{softmax}(z)_i=\frac{e^{z_i}}{\sum_{j=1}^{K}e^{z_j}}

نحسب الأس لكل درجة ثم نطبّعها لتصبح احتمالات مجموعها 1.

شرح الرموز
الرمزالمعنى
\(z_i\)درجة الفئة i
\(K\)عدد الفئات

مثال تطبيقي

للدرجات \((2,1,0)\) تقارب النتيجة \((0.67,0.24,0.09)\).

تعلّم وراجع

مصطلحات مقترحة للتعلّم بعده