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

**دالة softmax،** والمعروفة أيضًا باسم **softargmax**  أو **الدالة الأسية المُطبَّعة** ،  تُحوّل متجهًا مكوّنًا من  عددًا حقيقيًا إلى توزيع احتمالي لـ  نتيجة ممكنة. وهي تعميم للدالة اللوجستية إلى أبعاد متعددة، وتُستخدم في الانحدار اللوجستي المتعدد الحدود . غالبًا ما يتم استخدام دالة softmax كدالة التنشيط الأخيرة للشبكة العصبية لتطبيع إخراج الشبكة إلى توزيع الاحتمالات على فئات الإخراج المتوقعة.

## تعريف
تأخذ دالة softmax كمدخل متجهًا  من  عددًا حقيقيًا، وتقوم بتطبيعه إلى توزيع احتمالي يتكون من  احتمالًا تتناسب مع الأسس للأسس المدخلة. أي أنه، قبل تطبيق softmax، قد تكون بعض مكونات المتجه سالبة، أو أكبر من واحد؛ وقد لا يكون مجموعها 1؛ ولكن بعد تطبيق softmax، سيكون كل مكون في الفاصل الزمني (0, 1) ، و ستكون المكونات جميعها مجموعها 1، بحيث يمكن تفسيرها كاحتمالات. علاوة على ذلك، فإن مكونات الإدخال الأكبر سوف تتوافق مع احتمالات أكبر.

بِشكل رسمي، فإن دالة softmax القِياسية (الوحدوية) \sigma\colon \R^K \to (0, 1)^K ، أين K > 1 ، تأخذ مُتجهًا \mathbf{z} = (z_1, \dotsc, z_K) \in \R^K وتُحَسِبُ كُلَ مكون من المُتجه \sigma(\mathbf{z}) \in (0, 1)^K

وفقًا لما يلي:

\sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}}\,.

بعبارة أخرى، تقوم دالة softmax بتطبيق الدالة الأسية القياسية على كل عنصر z_i من متجه الإدخال \mathbf z (المكَّون من K عددًا حقيقيًا، ثم تقوم بتطبيع هذه القيم من خلال قسمتها على مجموع كل هذه القيم الأسية. يضمن هذا التطبيع أن يكون مجموع مكونات متجه الإخراج \sigma(\mathbf z) مساوٍ لـ 1. ويعود أصل مصطلح "softmax" مشتق من التأثيرات المكبرة للأسية على أي حد أقصى في متجه الإدخال. مثال ، سوفت ماكس القياسي لـ (1,2,8) تقريبا (0.001,0.002,0.997) ، وهو ما يعادل تعيين كل وزن الوحدة الإجمالي تقريبًا في النتيجة إلى موضع العنصر الأقصى للمتجه (8).

بشكل عام، بدلاً من  يمكن استخدام قاعدة مختلفة  . كما كما في السابق، إذا كان  ، فإن المكونات الأكبر في الإدخال ستؤدي إلى احتمالات أكبر في الإخراج، وزيادة قيمة  ستُنتج توزيعات احتمالية أكثر تركيزًا حول مواضع القيم الأكبر في الإدخال. وعلى العكس، إذا كان  ، فإن المكونات الأصغر في الإدخال ستؤدي إلى احتمالات أكبر في الإخراج، وتقليل قيمة  توزيعات احتمالية أكثر تركيزًا حول مواضع أصغر قيم الإدخال. b = e^\beta أو b = e^{-\beta}  (بالنسبة لـ  الحقيقية)  ينتج التعبيرات: 

\sigma(\mathbf{z})_i = \frac{e^{\beta z_i}}{\sum_{j=1}^K e^{\beta z_j}} \text{ or } \sigma(\mathbf{z})_i = \frac{e^{-\beta z_i}}{\sum_{j=1}^K e^{-\beta z_j}} \text{ for } i = 1, \dotsc, K .

قيمة تناسب عكسيًا مع مقلوب  تُعرف أحيانًا ب*درجة الحرارة* : \beta = 1 / kT حيث  عادةً ما تكون 1 أو ثابت بولتزمان و  هي درجة الحرارة. درجة الحرارة أعلى تؤدي إلى توزيع إخراج أكثر تجانسًا (أي مع إنتروبيا أعلى؛ يكون "أكثر عشوائية")، في حين تؤدي درجة الحرارة المنخفضة إلى توزيع إخراج أكثر حدة، مع هيمنة قيمة واحدة.

في بعض المجالات، تكون القاعدة ثابتة، مما يتوافق مع مقياس ثابت، بينما في مجالات أخرى يتم تغيير المعامل  (أو  ).

## التفسيرات

### الحد الأقصى للوسيط السلس
دالة Softmax هي تقريب سلس لدالة arg max : الدالة التي تكون قيمتها هي *مؤشر* أكبر عنصر في المتجه. قد يكون اسم "softmax" مضللاً. Softmax ليست أقصى قيمة سلسة (أي تقريب سلس لدالة الحد الأقصى ). يُستخدام مصطلح "softmax" أيضًا للدالة LogSumExp المرتبطة ارتباطًا وثيقًا، وهي أقصى قيمة سلسة. لهذا السبب، يفضل البعض المصطلح الأكثر دقة "softargmax"، على الرغم من أن مصطلح "softmax" تقليدي في التعلم الآلي.  يستخدم هذا القسم مصطلح "softargmax" من أجل الوضوح.

بِشكل رسمي، بَدلًا مِنْ اعِتبار arg max كدالة تُنتج مُخرجات تَصنيفية 1, \dots, n (المقابلة للمؤشر)، نُعتبر دالة arg max التي يكون مخرجها تمثيلًا من النوع أحادي الاتجاه (على افِتراض وُجُود arg أقَصى فريد): \operatorname{arg\,max}(z_1,\, \dots,\, z_n) = (y_1,\, \dots,\, y_n) = (0,\, \dots,\, 0,\, 1,\, 0,\, \dots,\, 0), حِيثُ تَكُون الإحداثية y_i = 1 وفقط إذا كان i هو الحد الأقصى لـ (z_1, \dots, z_n) ، معنى z_i هي القيمة القصوى الفريدة لـ (z_1,\, \dots,\, z_n) . مثال على ذلك، في هذا الترميز :\operatorname{arg\,max}(1, 5, 10) = (0, 0, 1), لأن العُنصر الثَالث هُو القِيمَة العُظمَى.

يمكن تعميم هذا المفهوم ليشمل الحالات التي تحتوي على أكثر من قيمة عظمى arg max (أي عندما تكون عدة قيم z_i متساوية وتشكل القيم العظمى) من خلال توزيع القيمة 1 بالتساوي بين جميع المواضع التي تحقق القيمة العظمى؛ وذلك بشكل رسمي باستخدام  حيث  هو عدد المواضع التي تحقق القيمة العظمى. على سبيل المثال: \operatorname{arg\,max}(1,\, 5,\, 5) = (0,\, 1/2,\, 1/2), نظرًا لأن الحجة الثانية والثالثة هما الحد الأقصى. في حالة تساوي جميع الحجج، فهذا ببساطة \operatorname{arg\,max}(z, \dots, z) = (1/n, \dots, 1/n). النقاط  ذات قيم arg max المتعددة هي نقاط مفردة (أو تفردات، وتشكل المجموعة المفردة) - هذه هي النقاط التي تكون فيها arg max غير متصلة (مع انقطاع قفزة ) - بينما تُعرف النقاط ذات arg max واحدة باسم النقاط غير المفردة أو المنتظمة.

يُمكن تَعميم ذلك ليشمل حالات وُجود عِدة قيم arg max: كما  ، يتقارب السوفتماكس مع arg max. هناك مفاهيم مختلفة لتقارب الدالة؛ حيث يتقارب السوفتماكس مع arg max نقطة بنقطة ، مما يعني أنه لكل مدخل ثابت   ، \sigma_\beta(\mathbf{z}) \to \operatorname{arg\,max}(\mathbf{z}). ومع ذلك، لا يتقارب سوفتماكس بشكل موحد مع arg max، مما يعني بديهيًا أن النقاط المختلفة تتقارب بمعدلات مختلفة، وقد تتقارب ببطء بشكل تعسفي. في الواقع، فإن softargmax مستمر، ولكن arg max ليس مستمرًا في المجموعة المفردة حيث يكون الإحداثيان متساويين، في حين أن الحد الموحد للوظائف المستمرة يكون مستمرًا. السبب وراء فشلها في التقارب بشكل موحد هو أنه بالنسبة للُمدخلات حيث يكون الإحداثيان متساويين تقريبًا (وأحدهما هو الحد الأقصى)، فإن arg max هو مؤشر أحدهما أو الآخر، وبالتالي فإن التغيير الصغير في المُدخلات يؤدي إلى تغيير كبير في المخرجات. على سبيل المثال، \sigma_\beta(1,\, 1.0001) \to (0, 1), لكن \sigma_\beta(1,\, 0.9999) \to (1,\, 0), و \sigma_\beta(1,\, 1) = 1/2 لجميع المدخلات: كلما اقتربت النقاط من المجموعة المفردة (x, x) كلما تقاربت بشكل أبطأ. ومع ذلك، فإن softargmax يتقارب بشكل مضغوط على المجموعة غير المفردة.

وعلى العكس، عندما تؤول  ، كما  ، فإن softargmax تتقارب إلى arg min بالطريقة نفسها، حيث تكون المجموعة المفردة هنا هي النقاط التي تحتوي على قيمتين تحققان الحد الأدنى arg *min* . في لغة التحليل الاستوائي ، تُعد softmax تشويهًا أو "تكميمًا" لـ arg max و arg min، وهو ما يتوافق مع استخدام نصف الحلقة اللوغاريتمية بدلاً من نصف الحلقة max-plus (على التوالي min-plus semiring )، واستعادة arg max أو arg min عن طريق أخذ الحد يسمى "التكميم الاستوائي" أو "إزالة التكميم".

كما أنه من الصحيح أيضًا أنه، لأي قيمة ثابتة لـ ، إذا كانت إحدى المدخلات  أكبر بكثير من باقي القيم نسبةً إلى درجة الحرارة، T = 1/\beta ، فإن المخرج يكون تقريبًا هو الحد الأقصى للوسيطة. على سبيل المثال، فرق بمقداره 10 يُعد كبيرًا بالنسبة إلى درجة الحرارة قدرها 1: \sigma(0,\, 10) := \sigma_1(0,\, 10) = \left(1/\left(1 + e^{10}\right),\, e^{10}/\left(1 + e^{10}\right)\right) \approx (0.00005,\, 0.99995) لكن، إذا كان الفرق صغيرًا نسبةً إلى درجة الحرارة، فلن تكون القيمة قريبة من الـ arg max. على سبيل المثال، فرق مقداره 10 درجات يُعد صغيرًا بالنسبة إلى درجة حرارة قدرها 100درجة: \sigma_{1/100}(0,\, 10) = \left(1/\left(1 + e^{1/10}\right),\, e^{1/10}/\left(1 + e^{1/10}\right)\right) \approx (0.475,\, 0.525). وعندما تؤول  ، فإن درجة الحرارة تؤول إلى الصفر، T = 1/\beta \to 0 ، وبالتالي تصبح جميع الفروقات في النهاية كبيرة (نسبةً إلى درجة الحرارة تتناقص)، وهو ما يُقدم تفسيرًا آخر لسلوك النهاية.

### الميكانيكا الإحصائية
فَي ميكانيكا الإحصاx ، تُعرف دالة السوفترجمكس باسم توزيع بولتزمان (أو توزيع جيبس ):  مَجموعة المؤشرات {1,\, \dots,\, k} تُمثل الحالات الدقيقة للنظام؛ المدخلات z_i هي طاقات تلك الحالة؛ والمقام يُعرف بدالة التقسيم ، وغالبًا ما يُرمز له بـ  ؛ والعامل  يُسمى البرودة (أو بيتا الديناميكية الحرارية ، أو درجة الحرارة العكسية ).

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

P(y=j\mid \mathbf{x}) = \frac{e^{\mathbf{x}^\mathsf{T}\mathbf{w}_j}}{\sum_{k=1}^K e^{\mathbf{x}^\mathsf{T}\mathbf{w}_k}}

يمكن النظر إلى ذلك على أنه تكوين لعددـ  من الدوال الخطية \mathbf{x} \mapsto \mathbf{x}^\mathsf{T}\mathbf{w}_1, \ldots, \mathbf{x} \mapsto \mathbf{x}^\mathsf{T}\mathbf{w}_K ودالة سوفت ماكس (حيث يرمز \mathbf{x}^\mathsf{T}\mathbf{w} إلى الضرب الداخلي لـ \mathbf{x} و \mathbf{w} ). العملية تعادل تطبيق عامل خطي مُعرف بواسطة \mathbf{w} على المتجهات \mathbf{x} ، وبذلك يتم تحويل الإدخال الأصلي، الذي قد يكون عالي الأبعاد، إلى متجهات في فضاء ذي بعد  أي \mathbb{R}^K .

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

بما أ، الدالة تُحوّل متجهًا وفهرسًا معينًا i إلى قيمة حقيقية، فإن المشتقة تحتاج إلى أخذ الفهرس في الاعتبار :

\frac{\partial}{\partial q_k}\sigma(\textbf{q}, i) = \sigma(\textbf{q}, i)(\delta_{ik} - \sigma(\textbf{q}, k)).

هذا التعبير متماثل في الفهارس i, k وبالتالي يمكن أيضًا التعبير عنه كـ

 \frac{\partial}{\partial q_k}\sigma(\textbf{q}, i) = \sigma(\textbf{q}, k)(\delta_{ik} - \sigma(\textbf{q}, i)).

هُنا، تُستخدم دلتا كرونيكر للتبسيط (قارن بمشتقة لدالة سيجما ، والتي يتم التعبير عنها من خلال الدالة نفسها).

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

إذا تم تحجيم الوظيفة باستخدام المعامل \beta ، فيجب ضرب هذه التعبيرات بـ \beta .

انظر إلى نموذج لوجيت متعدد الحدود للحصول على نموذج احتمالي يستخدم دالة تفعيل السوفتماكس.

### التعلم التعزيزي
فِي مَجال التعلم التعزيزي ، يُمكن استخدام دالة SoftMax لتحويل القِيم إلى احتِمالات للإجراءات. والدالة المُستخدمة عادةً هي: P_t(a) = \frac{\exp(q_t(a)/\tau)}{\sum_{i=1}^n\exp(q_t(i)/\tau)} \text{,}

حيث تُمثل قيمة الإجراء q_t(a)المكافأة المتوقعة عند اتباع الإجراءa وتُعرف \tau بمعامل الحرارة (في إشارة إلى الميكانيكا الإحصائية ). عند درجات حرارة عالية ( \tau \to \infty ), تصبح جميع الإجراءات ذات احتمالات متقاربة تقريبًا وكلما انخفضت درجة الحرارة، كلما زاد تأثير المكافآت المتوقعة على الاحتمالية. لدرجات الحرارة المنخفضة ( \tau \to 0^+ ), فإن احتمالية الفعل الذي يحمل أعلى مكافأة متوقعة تميل إلى 1.

## التعقيد الحسابي والعلاجات
في تطبيقات الشبكات العصبية، غالبًا ما يكون عدد النواتج المحتملة  كبيرًا، كما في حالة نماذج اللغة العصبية التي تتنبأ بالناتج الأكثر احتمالًا من بين مفردات قد تحتوي على ملايين الكلمات الممكنة.  يمكن أن يجعل ذلك حسابات طبقة softmax (أي ضرب المصفوفات لتحديد القيم z_i ، يتبعها تطبيق دالة السوفتماكس نفسها) مكلفة حسابيًا.   علاوة على ذلك، تتضمن طريقة الانتشار الخلفي للنزول المتدرج لتدريب مثل هذه الشبكة العصبية حساب softmax لكل مثال تدريبي، ويمكن أن يصبح عدد أمثلة التدريب كبيرًا أيضًا. أصبح الجهد الحسابي لـ SoftMax عاملًا مقيدًا رئيسيًا في تطوير نماذج اللغة العصبية الأكبر حجمًا، مما حفز العديد من العلاجات لتقليل أوقات التدريب.  

الأساليب التي تُعيد تنظيم طبقة softmax لحساب أكثر كفاءة **، تشمل softmax الهرمي** و **softmax المتمايز** .  Softmax الهرمي (الذي قَدمه مورين وبينجيو في عام 2005)يستخدم بنية شجرة ثنائية حيث تكون النواتج (كلمات المفردات) هي الأوراق والعُقد الوسيطة هي "فئات" مختارة بشكل مناسب من النواتج، مشكّلة متغيرات كامنة .   يمكن بعد ذلك حساب الاحتمال المرغوب (قيمة softmax) لورقة (ناتج) ما على أنه حاصل ضرب احتمالات جميع العُقد على المسار من الجذر إلى تلك الورقة.  من الناحية المثالية، عندما تكون الشجرة متوازنة، فإن ذلك يُقلل من التعقيد الحسابي من O(K) ل O(\log_2 K) .  في الواقع، تعتمد النتائج على اختيار استراتيجية جيدة لتجميع النواتج في فئات.  وقد تم استخدام شجرة هوفمان لهذا الغرض في نماذج word2vec الخاصة بـ جوجل (التي تم تقديمها في عام 2013) لتحقيق القابلية للتوسع. 

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

## الخوارزميات العددية
طريقة الـ SoftMax التقليدية عدديًا بسبب عمليات الأسّ الكبيرة. أما طريقة السوفتمكس الآمنة فتحسب بدلًا من ذلك: \sigma(\mathbf{z})_i = \frac{e^{\beta (z_i-m)}}{\sum_{j=1}^K e^{\beta (z_j-m)}} حيث m = \max_i z_i  هو أكبر عنصر مشارك. إن الطرح به يضمن أن الأسس تؤدي إلى 1 على الأكثر.

تأخذ آلية الانتباه في Transformers ثلاثة مدخلات: "متجه الاستعلام" q ، وقائمة من "متجهات المفاتيح" k_1, \dots, k_N ، وقائمة "متجهات القيم" v_1, \dots, v_N ، وتنتج مجموعًا لمتجهات القيم موزونًا بدالة softmax : o = \sum_{i=1}^N \frac{e^{q^T k_i - m}}{\sum_{j=1}^N e^{q^T k_j - m}} v_i تَتضمن طريقة SoftMax التقليدية عِدة دورات على المُدخلات، ما قد يُشكّل عنق زجاجة بسبب عرض نطاق الترددي للذاكرة . طريقة FlashAttention هي خوارزمية تتجنب كثرة الاتصال إذ تدمج هذه العمليات في دورة واحدة، مما يزيد من كثافة العمليات الحسابية . وهيخوارزمية تعمل على نحو متصل وتحسب الكميات التالية:   \begin{aligned}
z_i &= q^T k_i &\\
m_i &= \max(z_1, \dots, z_i) &=& \max(m_{i-1}, z_i)\\
l_i &= e^{z_1 - m_i} + \dots + e^{z_i - m_i} &=& e^{m_{i-1}-m_i} l_{i-1} + e^{z_i - m_i}\\
o_i &= e^{z_1 - m_i} v_1 + \dots + e^{z_i - m_i}v_i &=& e^{m_{i-1}-m_i} o_{i-1} + e^{z_i - m_i}v_i
\end{aligned} وتُعيد القيمة o_N/l_N . في التطبيق العملي، تعمل FlashAttention على عدة استعلامات ومفاتيح في كل دورة، بطريقة مشابهة لعملية ضرب المصفوفات المجزأة . وإذا كانت هناك حاجة للتراجع العكسي،يتم تخزين متجهات الإخراج والمصفوفات الوسيطة [m_1, \dots, m_N], [l_1, \dots, l_N] وخلال مرحلة التراجع، يتم إعادة تشكيل مصفوفات الانتباه منها، مما يجعلها شكلاً من أشكال"حفظ نقاط التدرج".

## الخصائص الرياضية
هندسيًا، تقوم دالة softmax بإسقاط مساحة المتجه \mathbb{R}^K إلى حدود المعيار <math>(K-1)</math> -simplex ، مما يقلل البعد بمقدار واحد (النطاق هو بسيط ذو بعد (K - 1) في فضاء ذي K أبعاد، وذلك بسبب القيد الخطي بأن مجموع جميع المخرجات يساوي 1، مما يعني أنه يقع على مستوى فائق .

على طُول القطر الرئيسي (x,\, x,\, \dots,\, x), تكون دالة SoftMax مجرد توزيع منتظم على المخرجات، (1/n, \dots, 1/n) :القِيم المُتساوية تُعطي احتمالات متساوية.

بِشَكلٍ أعم، تَكُون دالة السوفتمكس غير مُتَأثِرة بالترجمة بإضافة نفس القيمة إلى كل إحداثي: فإن إضافة \mathbf{c} = (c,\, \dots,\, c) إلى المدخلات \mathbf{z} تؤدي إلى \sigma(\mathbf{z} + \mathbf{c}) = \sigma(\mathbf{z}) ، لأنها تُضرب كُل أُسٍ فِي نَفسش العَامِل، e^c (لأن e^{z_i + c} = e^{z_i} \cdot e^c ), وبالتالي لا تتغير النسب: \sigma(\mathbf{z} + \mathbf{c})_j = \frac{e^{z_j + c}}{\sum_{k=1}^K e^{z_k + c}} = \frac{e^{z_j} \cdot e^c}{\sum_{k=1}^K e^{z_k} \cdot e^c} = \sigma(\mathbf{z})_j.

هندسيًا، تكون دالة softmax ثابتة على طول الأقطار: هذا هو البعد الذي يتم التخلص منه، ويتوافق مع كون تانج softmax غير متأثر بالتحويل في قيم الإدخال (اختيار قيمة 0). يمكن تطبيع قيم الإدخال بافتراض أن مجموعها يساوي صفرًا (بطرح المتوسط: \mathbf{c} حيث c = \frac{1}{n} \sum z_i )، ثم يأخذ softmax المستوى الفائق للنقاط التي مجموعها صفر، \sum z_i = 0 ، إلى البسيط المفتوح للقيم الإيجابية التي مجموعها يساوي 1 \sum \sigma(\mathbf{z})_i = 1 ، على نحو مماثل لكيفية أخذ الأس من 0 إلى 1، e^0 = 1 وهو إيجابي.

وعلى نَقيض ذلك، فَإن دالة سوفتماكس ليست غَيرَ مُتَغِيرة تحت التحجيم. مثال على هذا :

\sigma\bigl((0,\, 1)\bigr) = \bigl(1/(1 + e),\, e/(1 + e)\bigr) ولكن\sigma\bigl((0, 2)\bigr) = \bigl(1/\left(1 + e^2\right),\, e^2/\left(1 + e^2\right)\bigr).

ادالة اللوجستية القياسية هِي الحَالة الخَاصة لمِحور أحادي البعد في افضاء ثنائي الأبعاد، على سبيل المثال المحور *x* في المستوى  . يَتم تَثبيت أحد المتغيرين عند 0 (لنقل z_2 = 0 )، وبالتالي e^0 = 1 ، بينما يُمكن أن يتغير المتغير الآخر، ولنرمز له بـ z_1 = x ، وبالتاليe^{z_1}/\sum_{k=1}^2 e^{z_k} = e^x/\left(e^x + 1\right), وهِي الوظيفة اللوجستية القياسية، و e^{z_2}/\sum_{k=1}^2 e^{z_k} = 1/\left(e^x + 1\right), وهي متممتها (أي أن المجموع يُساوي 1). ويُمكن التَعبير عن المُدخل أحادي البعد بِشكل بَديل على أنَهُ الخَط (x/2,\, -x/2) ، مع المُخَرجات e^{x/2}/\left(e^{x/2} + e^{-x/2}\right) = e^x/\left(e^x + 1\right) و e^{-x/2}/\left(e^{x/2} + e^{-x/2}\right) = 1/\left(e^x + 1\right).

### التدرجات
تُعتَبر دالة سوفتماكس تدرجًا لدالة LogSumExp : \frac{\partial}{\partial z_i} \operatorname{LSE}(\mathbf{z}) = \frac{\exp z_i}{\sum_{j=1}^{K} \exp z_j} = \sigma(\mathbf{z})_i, \quad \text{ for } i = 1, \dotsc, K, \quad \mathbf{z} = (z_1,\, \dotsc,\, z_K) \in\R^K,LogSumExp تُعرف الدالة على إنها :\operatorname{LSE}(z_1,\, \dots,\, z_n) = \log\left(\exp(z_1) + \cdots + \exp(z_n)\right) .

وبالتالي فإن تدرج softmax هو \partial_{z_j} \sigma_i = \sigma_i (\delta_{ij} - \sigma_j) .

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

يُنسب استخدام دالة سوفت ماكس في نظرية القرار إلى R. Duncan Luce ،  الذي استخدم مسلّمة استقلال البدائل غير ذات الصلة في نظرية الاختيار العقلاني لاستنتاج دالة السوفتمكس في مسلّمة لوس للاختيار بالنسبة للتفضيلات النسبية.&#x5B; *[[ويكيبيديا:بحاجة لمصدر|<span title="This claim needs references to reliable sources. (March 2024)">بحاجة لمصدر</span>]]* &#x5D;

في تعلم الآلة، يُنسب مصطلح "softmax" إلى جون إس. بريدل في ورقتين بحثيتين قُدمتا في مؤتمرين عام 1989،هما  :  و  :

## مثال
مع إدخال  ، تكون قيمة السوفتمّاكس تقريبًا  . يتركز معظم الوزن في الإخراج عند قيمة "4" في الإدخال الأصلي. هذا هو الاستخدام الشائع للدالة: إبراز القيم الكبرى وتقليل تأثير القيم التي تقل كثيرًا عن القيمة العظمى. لكن يُلاحظ أن تغيير *درجة الحرارة يغيّر الإخراج . فعندما تُ*ضرب درجة الحرارة في 10، تصبح القيم المُدخلة فعليًا  ويكون الحد الأقصى للرطوبة تقريبًا  . وهذا يوضح أن درجات الحرارة المرتفعة تقلل من أهمية القيمة القصوى.

حساب هذا المثال باستخدام كود بايثون :
```pycon
>>> import numpy as np
>>> z = np.array([1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0])
>>> beta = 1.0
>>> np.exp(beta * z) / np.sum(np.exp(beta * z)) 
array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,
    0.06426166, 0.1746813])
```


## البدائل
تولّد دالة softmax تنبؤات احتمالية موزعة بكثافة على نطاقها . ويمكن استخدام دوال أخرى مثل sparsemax أو α- entmax عندما يُراد الحصول على تنبؤات احتمالية متفرقة. كذلك يمكن استخدام خدعة إعادة التوسيط Gumbel-softmax عندما تكون هناك حاجة لمحاكاة أخذ العينات من توزيع متقطع بطريقة قابلة للاشتقاق.

## انظر أيضًا

* سوفت بلس
* الانحدار اللوجستي المتعدد الحدود
* توزيع دي ريتشليت - طريقة بديلة لأخذ عينات من التوزيعات الفئوية
* وظيفة التقسيم
* الميل الأسّي - تعميم Softmax على توزيعات الاحتمالات الأكثر عمومية

## ملحوظات

## المراجع


تصنيف:دوال
تصنيف:شبكات عصبونية اصطناعية
تصنيف:انحدار لوجستي
تصنيف:علوم عصبية حاسوبية
تصنيف:حاسوب تماثلي
تصنيف:حاسوب محطة العمل