🧮ML গণিত গুরু
information-theoryমাঝারি9 মিনিট

Cross-Entropy — দুই বণ্টনের তুলনা

Cross-Entropy

🌧️

সাকিবের ভুল আবহাওয়া ভবিষ্যদ্বাণী

ধর তোর বন্ধু সাকিব মতিঝিলে বইসা আবহাওয়ার app বানাইছে। সে predict করলো — 'আগামীকাল ৯০% রোদ, ৫% বৃষ্টি, ৫% মেঘলা।' কিন্তু বাস্তবে হইল — ৩০% রোদ, ৬০% বৃষ্টি, ১০% মেঘলা। মানে সাকিবের prediction আর reality-র মধ্যে গণ্ডগোল আছে! বৃষ্টির দিন সাকিবের app বলতেছে রোদ — ছাতা ছাড়া লোকজন ভিজতেছে।

এই prediction আর reality-র মধ্যে mismatch-টা measure করাই হইল Cross-Entropy! গুরু বলে — 'যত ভুল predict করবি, cross-entropy তত বেশি। পারফেক্ট predict করলে cross-entropy = entropy!'

সংজ্ঞা

Cross-entropy measure করে — যদি actual distribution p হয় কিন্তু তুই ভাবিস distribution q, তাইলে average কত bit লাগব encode করতে। p আর q যত কাছাকাছি, cross-entropy তত কম।

Cross-Entropy — actual (p) দিয়া predicted (q) evaluate করা
\[H(p, q) = -\sum_{i=1}^{n} p(x_i) \log q(x_i)\]

ব্যাখ্যা

Entropy vs Cross-Entropy

Entropy শুধু একটা distribution-এর uncertainty মাপে। কিন্তু cross-entropy দুইটা distribution-এর মধ্যে comparison করে — actual (p) আর predicted (q)। Cross-entropy সবসময় entropy-র চেয়ে বড় বা সমান।

\[H(p, q) \geq H(p)\]

Classification-এ Cross-Entropy

Binary classification-এ (হ্যাঁ/না) cross-entropy loss হইল সবচেয়ে popular loss function। Actual label 1 হইলে model-এর predicted probability যত বেশি, loss তত কম।

\[H(p, q) = -[y \log(\hat{y}) + (1-y) \log(1-\hat{y})]\]

কেন Cross-Entropy Use করি?

MSE (Mean Squared Error)-এর চেয়ে cross-entropy classification-এ ভালো কাজ করে। কারণ cross-entropy-র gradient বড় থাকে যখন model বেশি ভুল করে — মানে faster learning হয়। সাকিবের মতো ভুল predict করলে penalty বেশি!

সাকিবের Weather App-এর Cross-Entropy

Actual distribution: p = [0.3, 0.6, 0.1] (রোদ, বৃষ্টি, মেঘলা)। সাকিবের prediction: q = [0.9, 0.05, 0.05]। Cross-entropy কত?

Step 1: Formula সাজাও

H(p,q) = -Σ p(xᵢ) log q(xᵢ) — প্রতিটা actual probability দিয়া predicted-এর log কে multiply করো

\[H(p,q) = -[p_1 \log q_1 + p_2 \log q_2 + p_3 \log q_3]\]

Step 2: Values বসাও

Natural log (ln) use করি

\[H(p,q) = -[0.3 \ln(0.9) + 0.6 \ln(0.05) + 0.1 \ln(0.05)]\]

Step 3: Calculate করো

প্রতিটা term আলাদা করে

\[= -[0.3(-0.105) + 0.6(-2.996) + 0.1(-2.996)] = -[-0.032 - 1.798 - 0.300] = 2.13\]
উত্তর:

Cross-entropy ≈ 2.13 nats। এইটা অনেক বেশি! কারণ সাকিব বৃষ্টির দিন রোদ predict করছে। যদি সাকিব actual distribution predict করতো, cross-entropy শুধু entropy = 0.90 nats হইত।

ML-এ কোথায় লাগে?

💡

মনে রাখার ট্রিক

Cross-Entropy = সাকিবের ভুল আবহাওয়া predict-এর penalty। prediction যত ভুল, penalty তত বেশি। পারফেক্ট predict করলে cross-entropy = entropy!

#cross-entropy#loss-function#classification#bce#categorical