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 শেষ হয় প্রতিটি class-এর জন্য একটি সংখ্যা দিয়ে, একটি score (একে logit-ও বলে)। score যেকোনো মাপের আর যেকোনো চিহ্নের হতে পারে, তাই সেগুলো এখনও সম্ভাবনা নয়। softmax দুই ধাপে সেগুলোকে সম্ভাবনায় পরিণত করে:
• প্রতিটি score-এর ঘাতে e তুলুন, ez, এতে প্রতিটি সংখ্যা ধনাত্মক হয়; score-এর প্রতিটি পয়েন্ট একে e দিয়ে গুণ করে, প্রায় 2.72;
• প্রতিটিকে মোট দিয়ে ভাগ করুন, যাতে সব মিলে 100% হয়।
শুরুর score-গুলো, 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 softmax-এর আগে প্রতিটি score-কে ভাগ করে: ez/T। 1-এর নিচে এটি ফাঁকগুলো টেনে বড় করে, তাই ওপরের class আরও নিশ্চিত হয়; 1-এর ওপরে ফাঁকগুলো ছোট করে, তাই সব সমান হয়ে আসে। এটি কখনও ক্রম বদলায় না: প্রতিটি temperature-এ cat প্রথমই থাকে।

যা চেষ্টা করে দেখার মতো:
1. শুরুর score-গুলো নিয়ে temperature সরান। cat হয় 0.5-এ 86.2%, 1-এ 63.8%, 2-এ 45.1% আর 10-এ 28.8%, যেখানে সমান ভাগ হলে 25%। 0.2-এ এটি ইতিমধ্যে 99.3%।

2. Add 5 to every score চাপুন। বারগুলো নড়ে না: এখনও 63.8%, 23.5%, 9.5%, 3.2%। softmax শুধু score-গুলোর মধ্যের ফাঁক নিয়ে মাথা ঘামায়, score-গুলো নিয়ে নয়। আসল কোড এটি কাজে লাগায়: সে আগে সবচেয়ে বড় score বিয়োগ করে, কারণ e1000 কম্পিউটারে রাখার পক্ষে অনেক বড়, অথচ e0 মাত্র 1।

3. Reset চাপুন, তারপর Double every score। এখন cat 86.2%, dog 11.7%, car 1.9%, bird 0.2%: ধাপ 1-এ temperature 0.5 ঠিক যা দিয়েছিল। score দ্বিগুণ করা আর temperature অর্ধেক করা একই জিনিস।

4. dog-কে টেনে 2.0-এ নিন, cat-এর সমান। তারা সমান ভাগ পায়, প্রত্যেকে 45.5%, আর car ও bird বাকিটা ভাগ করে নেয়। সমান score মানে সবসময় সমান সম্ভাবনা।

5. Draw 20 times বারগুলোকে দান হিসেবে ধরে এলোমেলোভাবে একটি class বেছে নেয়। temperature 1-এ cat আসে প্রায় 64% বার, অর্থাৎ 20-এর মধ্যে মোটামুটি 13। temperature 0.2-এ নামিয়ে আবার টানুন: প্রায় সবই cat। 10-এ তুলুন: প্রায় সমান মিশ্রণ। একটি image classifier শুধু ওপরের class-টি জানায়, কিন্তু chatbot-রা ঠিক এভাবেই তাদের পরের শব্দ বেছে নেয়, আর এ কারণেই তাদের temperature সেটিং তাদের নিরাপদ বা বেশি দুঃসাহসী করে তোলে।