CH 42Phase 6 · Advanced AI Mathematics

KL Divergence

১৫–২৫ মিনিট বাংলা · Math · Python
📖 একটি ছোট গল্প

দুটি distribution কতটুকু "আলাদা" — তার সবচেয়ে বিখ্যাত পরিমাপ হলো KL Divergence। VAE, RLHF (ChatGPT alignment), Diffusion model — সব জায়গায় এই একটিই সূত্র।

Definition

KL(P ‖ Q) = Σ P(x) log [ P(x) / Q(x) ]
  • P = true distribution, Q = approximate distribution
  • সর্বদা ≥ 0; P = Q হলে 0
  • Asymmetric: KL(P‖Q) ≠ KL(Q‖P)
⚠️ সতর্কতা
KL একটি "distance" নয় — কারণ এটি asymmetric এবং triangle inequality মানে না। Symmetric লাগলে Jensen-Shannon Divergence ব্যবহার করুন।

Forward vs Reverse KL

  • Forward KL(P‖Q) — "mean-seeking", Q সব P-mode কে cover করতে চায় (MLE)।
  • Reverse KL(Q‖P) — "mode-seeking", Q একটি mode-এ লেপটে যায় (VAE, RLHF)।

AI-তে প্রয়োগ

  • VAE: latent posterior q(z|x) ও prior p(z)-এর মধ্যে KL।
  • RLHF (ChatGPT): fine-tuned policy যেন base model থেকে বেশি দূরে না যায় — KL penalty।
  • Diffusion: forward ও reverse process-এর KL minimize → ELBO।
  • Knowledge Distillation: teacher ও student-এর softmax distribution-এ KL।

Python Implementation

pythonPython · NumPy
import numpy as np

def kl_divergence(p, q, eps=1e-12):
    p, q = np.asarray(p), np.asarray(q)
    return np.sum(p * np.log((p + eps) / (q + eps)))

p = [0.1, 0.4, 0.5]
q = [0.2, 0.3, 0.5]
print(kl_divergence(p, q))     # forward
print(kl_divergence(q, p))     # reverse (different!)

Summary · সারসংক্ষেপ

  • KL = দুটি distribution-এর মধ্যে "তথ্যগত দূরত্ব"।
  • Asymmetric — forward ও reverse আলাদা optimization behavior দেয়।
  • Generative AI-এর প্রায় সব objective-এর মূলে KL।