Softmax, scores to probabilities


Temperature
Try
Pick at random
Each class's probability at every temperature, for the scores above. The dashed line is the current temperature. Far to the right every class heads for an even 25%; far to the left the top score takes everything.

الفكرة كلّها.
ينتهي مصنِّف الصور (image classifier) برقمٍ واحد لكلّ فئة، هو الـ score (ويُسمّى أيضًا logit). يمكن أن تكون الـ scores بأيّ حجم وبأيّ إشارة، فهي ليست احتمالات بعد. ويحوّلها softmax إلى احتمالات في خطوتين:
• ارفع e إلى قوّة كلّ score، ez، فيصير كلّ رقم موجبًا؛ وكلّ نقطة من الـ score تضربه في e، أي نحو 2.72؛
• اقسم كلًّا منها على المجموع، فيصير مجموعها 100%.
مع الـ scores الابتدائية، cat 2.0 وdog 1.0 وcar 0.1 وbird −1.0، يكون ذلك 7.39 و2.72 و1.11 و0.37، والمجموع 11.58، أي cat 63.8% وdog 23.5% وcar 9.5% وbird 3.2%. كلّ احتمال يعتمد على كلّ score: حرّك slider واحدًا فتتحرّك الأعمدة الأربعة كلّها.

Temperature.
الـ temperature T تقسم كلّ score قبل الـ softmax: ez/T. دون 1 تمطّ الفجوات، فتصير الفئة الأعلى أكثر يقينًا؛ وفوق 1 تقلّصها، فيتساوى كلّ شيء. ولا تغيّر الترتيب أبدًا: يبقى cat الأوّل عند كلّ temperature.

أمور تستحقّ التجربة:
1. حرّك الـ temperature مع الـ scores الابتدائية. cat يساوي 86.2% عند 0.5، و63.8% عند 1، و45.1% عند 2، و28.8% عند 10، مقابل تقسيمٍ متساوٍ قدره 25%. وعند 0.2 يكون قد بلغ 99.3%.

2. اضغط Add 5 to every score. لا تتحرّك الأعمدة: ما تزال 63.8% و23.5% و9.5% و3.2%. فالـ softmax لا يهتمّ إلّا بالفجوات بين الـ scores، لا بالـ scores نفسها. والكود الحقيقيّ يستفيد من هذا: يطرح أكبر score أوّلًا، لأنّ e1000 أكبر من أن يخزّنه الحاسوب، بينما e0 مجرّد 1.

3. اضغط Reset، ثمّ Double every score. الآن cat 86.2% وdog 11.7% وcar 1.9% وbird 0.2%: تمامًا ما أعطته temperature 0.5 في الخطوة 1. مضاعفة الـ scores وتنصيف الـ temperature شيءٌ واحد.

4. اسحب dog إلى 2.0، مساويًا لـ cat. ينقسمان بالتساوي، 45.5% لكلٍّ منهما، ويتقاسم car وbird ما تبقّى. الـ scores المتساوية تعني دائمًا احتمالات متساوية.

5. Draw 20 times يختار فئةً عشوائيًّا، والأعمدة هي الحظوظ. عند temperature 1 يظهر cat نحو 64% من المرّات، أي قرابة 13 من 20. اخفض الـ temperature إلى 0.2 واسحب مجدّدًا: cat تقريبًا كلّها. ارفعها إلى 10: خليطٌ شبه متساوٍ. مصنِّف الصور يذكر ببساطة الفئة الأعلى، لكنّ هذا بالضبط هو ما تختار به برامج المحادثة (chatbots) كلمتها التالية، ولهذا يجعلها إعداد الـ temperature أكثر أمانًا أو أكثر جرأة.