تقنية

Softmax: على أي محور يجب أن يصبح المجموع واحدًا؟

صفان يتفرعان إلى تطبيع مستقل أو تطبيع كلي، مع بيان أن توزيع المثال يحتاج مقام الصف المقصود
مخطط من إعداد بحر العلوم؛ لا نتيجة نموذج أو تجربة برمجية.

محور Softmax يحدد القيم التي تتشارك مقام الحساب. الدالة تقسم أس كل درجة على مجموع الأسس داخل نطاق تختاره؛ لذلك لا تكفي عبارة «مجموعها واحد» دون تسمية هذا النطاق. [1]

الخلاصة السريعة

حدد أين تقع درجات فئات المثال الواحد، ثم احسب Softmax على ذلك المحور؛ مجموع الملف كله واحد لا يثبت أن كل صف توزيع مستقل.

  • توثق SciPy محورًا محددًا أو أكثر؛ الافتراضي axis=None يحسب على المصفوفة كلها، لا على كل صف تلقائيًا. [1]
  • في مثالنا، أسس الصف الأول 1 و 3 والثاني 2 و 6؛ تطبيع الصفين يعطي 0.25 و 0.75 لكل صف، بينما التطبيع الكلي يعطي مجموعي صفين ثلثًا وثلثين.
  • طرح ثابت واحد من كل درجات الصف يحفظ توزيعه رياضيًا؛ يستعمل التنفيذ إزاحة لتجنب طفح الأسس، لكنها لا تختار محور المهمة نيابة عنك. [1]
  • احفظ ترتيب الفئات وشكل المصفوفة والمحور؛ هذه درجات افتراضية وحساب يدوي، وليست معايرة تثبت أن 0.75 تعني إصابة فعلية في ثلاثة أرباع الحالات.

أي قيم تتنافس في المقام؟

الصيغة هي exp(xj) مقسومة على مجموع exp(xk). يوثق المرجع أن النتيجة تجمع إلى 1 على المحور المحدد، وأن None يستعمل المصفوفة كاملة. [1]

لنعلن أن لدينا مثالين في صفين، ولكل مثال فئتان في عمودين. نريد توزيعًا مستقلًا لكل مثال. هذا وصف وضعناه نحن لشكل البيانات؛ اسم Softmax وحده لا يثبت أن ترتيب الصفوف والأعمدة في ملف آخر مطابق له.

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

ما الفرق بين صفين والملف كله؟

نختار درجات الصف الأول صفرًا وln(3)، والثاني ln(2) وln(6)، حيث ln هو اللوغاريتم الطبيعي. أسسها تصبح 1 و 3 ثم 2 و 6. مقام الأول 4 ومقام الثاني 8، فتكون النتيجتان النسبيتان متساويتين: 0.25 و 0.75.

أما إذا جمعنا الأسس الأربع في مقام واحد، فالمجموع 12. يصير الصف الأول 1 ÷ 12 و 3 ÷ 12، ومجموعه ثلثًا؛ والثاني 2 ÷ 12 و 6 ÷ 12، ومجموعه ثلثين. جمع جميع القيم يعطي 1، لكن كل صف لم يعد التوزيع الذي طلبناه.

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

نطاق المقامقيم الصف الأولقيم الصف الثاني
كل صف وحده0.25، 0.750.25، 0.75
المصفوفة كلها1/12، 3/122/12، 6/12

لماذا يجوز طرح ثابت داخل الصف؟

يسجل المرجع استعمال الإزاحة لتجنب طفح القيم في التنفيذ. [1]

في صفنا الأول، نطرح ln(3) من الدرجتين؛ الأسس تصبح ثلثًا و 1 بدل 1 و 3. مجموعها أربعة أثلاث، فتعود النسب ربعًا وثلاثة أرباع. عامل مشترك اختصر في البسط والمقام.

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

ما الذي لا يثبته نجاح الحساب؟

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

راجع أسماء الأعمدة وترتيبها قبل استعمال القيمة لاتخاذ قرار؛ مبادلة العمودين تبادل الفئة المنسوب إليها الرقم. ولا تجعل 0.75 نسبة دقة عامة أو إثباتًا أن الفئة صحيحة في هذه الحالة.

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

المصادر ومتابعة القراءة

  1. SciPy: special.softmax (يفتح في نافذة جديدة)docs.scipy.org

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