🧮ML গণিত গুরু
information-theoryকঠিন10 মিনিট

KL Divergence — বণ্টনের দূরত্ব

KL Divergence

🍛

ফেক বিরিয়ানি vs আসল বিরিয়ানি

ধর পুরান ঢাকার হাজীর বিরিয়ানি-তে আসল রেসিপি আছে — চাল ৪০%, মাংস ৩০%, মসলা ২০%, ঘি ১০%। এইটা হইল 'true distribution'। এখন মিরপুরে একটা নতুন দোকান ওপেন হইল 'হাজীর বিরিয়ানি স্টাইল'। তারা দেয় — চাল ৬০%, মাংস ১৫%, মসলা ২০%, ঘি ৫%। দেখতে same লাগে কিন্তু একটু খাইলেই বুঝবি — 'এইটা আসল হাজীর না!' চাল বেশি, মাংস কম — ফেক!

এই আসল আর নকল রেসিপি-র মধ্যে পার্থক্যটা measure করাই হইল KL Divergence! গুরু বলে — 'KL Divergence বলে দেয় একটা distribution আরেকটা থেকে কতটুকু আলাদা। zero হইলে হুবহু same, বেশি হইলে বেশি ভিন্ন!'

সংজ্ঞা

KL Divergence (Kullback-Leibler Divergence) measure করে একটা probability distribution Q, reference distribution P থেকে কতটুকু আলাদা। এইটা asymmetric — D_KL(P||Q) আর D_KL(Q||P) সমান না।

KL Divergence — P থেকে Q কত দূরে
\[D_{KL}(P \| Q) = \sum_{i} P(x_i) \log \frac{P(x_i)}{Q(x_i)}\]

ব্যাখ্যা

Cross-Entropy আর Entropy-র সম্পর্ক

KL Divergence = Cross-Entropy - Entropy। মানে actual distribution-এর entropy বাদ দিলে যেটুকু extra cost থাকে wrong distribution use করার জন্য, সেইটাই KL Divergence।

\[D_{KL}(P \| Q) = H(P, Q) - H(P)\]

Asymmetric — দিক গুরুত্বপূর্ণ

হাজীর বিরিয়ানি থেকে ফেক-এর distance আর ফেক থেকে হাজীর-এর distance same না। D_KL(P||Q) ≠ D_KL(Q||P)। এই কারণে KL Divergence-কে 'distance' না বইলা 'divergence' বলে।

\[D_{KL}(P \| Q) \neq D_{KL}(Q \| P)\]

সবসময় Non-negative

KL Divergence কখনো negative হয় না। Gibbs' inequality অনুযায়ী D_KL ≥ 0, আর zero শুধু তখনই হয় যখন P আর Q হুবহু same distribution।

\[D_{KL}(P \| Q) \geq 0, \quad D_{KL}(P \| Q) = 0 \iff P = Q\]

বিরিয়ানি রেসিপি-র KL Divergence

আসল: P = [0.4, 0.3, 0.2, 0.1] (চাল, মাংস, মসলা, ঘি)। নকল: Q = [0.6, 0.15, 0.2, 0.05]। D_KL(P||Q) কত?

Step 1: Formula লেখ

প্রতিটা ingredient-এর জন্য P(i) × log(P(i)/Q(i)) বের করো

\[D_{KL} = \sum_i P(i) \log \frac{P(i)}{Q(i)}\]

Step 2: প্রতিটা term

Natural log (ln) use করি

\[0.4 \ln\frac{0.4}{0.6} + 0.3 \ln\frac{0.3}{0.15} + 0.2 \ln\frac{0.2}{0.2} + 0.1 \ln\frac{0.1}{0.05}\]

Step 3: Calculate

প্রতিটা value বের করো

\[= 0.4(-0.405) + 0.3(0.693) + 0.2(0) + 0.1(0.693) = -0.162 + 0.208 + 0 + 0.069 = 0.115\]
উত্তর:

D_KL(P||Q) ≈ 0.115 nats। মানে নকল রেসিপি আসল থেকে বেশ আলাদা — চালের ratio-র পার্থক্যটা main contributor।

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

💡

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

KL Divergence = আসল হাজীর বিরিয়ানি আর নকল-এর পার্থক্য। Zero মানে হুবহু same রেসিপি, বেশি মানে ভেজাল বেশি! আর মনে রাখবি — এইটা one-way, আসল→নকল আর নকল→আসল দিলে answer আলাদা।

#kl-divergence#kullback-leibler#divergence#distribution#vae#ppo