Softmax ও Categorical Distribution — বহু-শ্রেণি সম্ভাবনা
Softmax and Categorical Distribution — Multi-class Probability
পুরান ঢাকার খাবার মেনু আর পছন্দের গল্প
গুরু পুরান ঢাকায় হাজীর বিরিয়ানিতে ঢুকলো। মেনুতে আছে — কাচ্চি বিরিয়ানি, তেহারি, মোরগ পোলাও, বোরহানি। গুরু ভাবতেছে কোনটা খাবে। ওয়েটার আইসা কয়, 'ভাই কী খাইবেন?' গুরু কয়, 'দেখো ভাই, আমার পেটে এখন একটা neural network চলতেছে। কাচ্চির score 5.0, তেহারির 3.0, মোরগ পোলাও এর 2.0, বোরহানির 1.0। এখন softmax দিয়া probability বাইর করি!' ওয়েটার হতভম্ব হইয়া তাকায়া আছে। গুরু ক্যালকুলেটর বাইর কইরা হিসাব করে — 'কাচ্চি 84.2%, তেহারি 11.4%, মোরগ পোলাও 4.2%, বোরহানি 1.5%। বুঝলা? আমার পেট ৮৪% sure কাচ্চি চায়!' ওয়েটার কয়, 'ভাই শুধু order দেন, probability লাগবো না!' গুরু হাসতে হাসতে কয়, 'এইটাই তো Categorical Distribution — অনেকগুলা option থেইকা একটা বাছাই!'
Softmax function যেকোনো real number এর vector কে probability distribution এ convert করে — সব value positive হয় আর তাদের sum = 1। Categorical Distribution হইলো k টা category এর মধ্যে একটা select করার distribution যেখানে প্রতিটা category র নিজস্ব probability আছে। Deep Learning এর multi-class classification এ Softmax + Categorical combination সবচেয়ে বেশি ব্যবহৃত!
সংজ্ঞা
Softmax function হইলো একটা mathematical function যেটা K-dimensional real vector কে probability distribution এ transform করে। Categorical Distribution (বা Generalized Bernoulli) হইলো K টা category তে discrete probability distribution যেখানে প্রতিটা category i এর probability p_i আর সব p_i এর sum = 1।
ব্যাখ্যা
Softmax Function কী করে?
Softmax নেয় একটা raw score vector (logits) আর বাইর করে probability vector। প্রতিটা score কে e^z করে positive বানায়, তারপর total sum দিয়া ভাগ করে normalize করে। বড় score = বড় probability।
কেন e^z ব্যবহার করি?
e^z এর তিনটা magical property আছে: (১) সবসময় positive — negative score ও positive হয়ে যায়, (২) monotonically increasing — বড় input = বড় output, (৩) difference amplify করে — score এর ছোটো পার্থক্যও probability তে বড় পার্থক্য তৈরি করে।
Categorical Distribution
Bernoulli distribution এর generalization — Bernoulli তে ২টা category (0/1), Categorical তে K টা category। প্রতিটা trial এ ঠিক একটা category select হয়। Dice roll (K=6), language model next word prediction (K=vocab size) — সব Categorical।
Temperature Scaling
Softmax এ temperature parameter T দিয়া distribution কে sharp বা smooth করা যায়। T < 1 হইলে confident (sharp) distribution, T > 1 হইলে uncertain (flat) distribution, T -> 0 হইলে argmax, T -> infinity হইলে uniform।
Cross-Entropy Loss
Categorical distribution এর সাথে সবচেয়ে বেশি ব্যবহৃত loss function হইলো Cross-Entropy। True label এর one-hot vector y আর predicted probability p এর মধ্যে cross-entropy measure করে model কতটা ভুল করতেছে।
Image Classification Softmax
একটা image classifier তিনটা class এ classify করে: cat, dog, bird। Model এর logit output হইলো z = [2.0, 1.0, 0.1]। Softmax probability বাইর করো।
e^z হিসাব করো
প্রতিটা logit এর exponential নাও: e^2.0 = 7.389, e^1.0 = 2.718, e^0.1 = 1.105
Sum হিসাব করো
সব exponential যোগ করো: 7.389 + 2.718 + 1.105 = 11.212
Probability বাইর করো
P(cat) = 7.389/11.212 = 0.659, P(dog) = 2.718/11.212 = 0.242, P(bird) = 1.105/11.212 = 0.099
Verify — sum = 1?
0.659 + 0.242 + 0.099 = 1.000 — ঠিক আছে! Model 65.9% confident যে এইটা cat।
Softmax probabilities: Cat = 65.9%, Dog = 24.2%, Bird = 9.9%। Model সবচেয়ে বেশি confident যে ছবিতে cat আছে। এই probabilities থেইকা Categorical distribution sample করলে বেশিরভাগ সময় 'cat' আসবে।
ML-এ কোথায় লাগে?
মনে রাখার ট্রিক
Softmax = 'সফট-ম্যাক্স' — hard max (শুধু সবচেয়ে বড়টা নেয়) এর soft version (সবাইকে chance দেয়, বড়টা বেশি পায়)! Categorical = 'ক্যাটাগরি-ক্যাল' — অনেক category থেইকা call করো একটা! হাজীর বিরিয়ানিতে মেনু দেখে order দেওয়া = Categorical sampling!