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) সমান না।
ব্যাখ্যা
Cross-Entropy আর Entropy-র সম্পর্ক
KL Divergence = Cross-Entropy - Entropy। মানে actual distribution-এর entropy বাদ দিলে যেটুকু extra cost থাকে wrong distribution use করার জন্য, সেইটাই KL Divergence।
Asymmetric — দিক গুরুত্বপূর্ণ
হাজীর বিরিয়ানি থেকে ফেক-এর distance আর ফেক থেকে হাজীর-এর distance same না। D_KL(P||Q) ≠ D_KL(Q||P)। এই কারণে KL Divergence-কে 'distance' না বইলা 'divergence' বলে।
সবসময় Non-negative
KL Divergence কখনো negative হয় না। Gibbs' inequality অনুযায়ী D_KL ≥ 0, আর zero শুধু তখনই হয় যখন P আর Q হুবহু same distribution।
বিরিয়ানি রেসিপি-র 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)) বের করো
Step 2: প্রতিটা term
Natural log (ln) use করি
Step 3: Calculate
প্রতিটা value বের করো
D_KL(P||Q) ≈ 0.115 nats। মানে নকল রেসিপি আসল থেকে বেশ আলাদা — চালের ratio-র পার্থক্যটা main contributor।
ML-এ কোথায় লাগে?
মনে রাখার ট্রিক
KL Divergence = আসল হাজীর বিরিয়ানি আর নকল-এর পার্থক্য। Zero মানে হুবহু same রেসিপি, বেশি মানে ভেজাল বেশি! আর মনে রাখবি — এইটা one-way, আসল→নকল আর নকল→আসল দিলে answer আলাদা।