Apa itu KL divergence?
KL divergence (Kullback-Leibler divergence) mengukur seberapa jauh distribusi probabilitas Q berbeda dari distribusi acuan P. Definisinya KL(P‖Q) = Σ P(x) log(P(x)/Q(x)), yaitu rata-rata informasi tambahan yang dibutuhkan untuk menyandikan sampel dari P dengan kode yang dibuat untuk Q. Nilainya nol tepat ketika P dan Q identik, positif untuk kasus lain, dan tidak simetris.
KL divergence muncul di banyak bagian machine learning. Melatih classifier dengan cross-entropy loss berarti meminimalkan KL divergence dari distribusi label ke prediksi model. VAE menambahkan suku KL yang menjaga distribusi latent dari encoder tetap dekat dengan prior, knowledge distillation melatih model kecil agar cocok dengan distribusi output model besar, dan RLHF memberi penalti pada model bahasa hasil fine-tuning yang, dalam ukuran KL, menjauh terlalu jauh dari model acuannya.
Ide utama
- KL(P‖Q) = Σ P(x) log(P(x)/Q(x)) adalah ekspektasi rasio log P terhadap Q di bawah P.
- KL divergence tidak pernah negatif, dan bernilai nol hanya ketika P = Q.
- KL(P‖Q) dan KL(Q‖P) biasanya berbeda, jadi KL bukan metrik jarak.
- Cross-entropy sama dengan entropy ditambah KL divergence: H(P, Q) = H(P) + KL(P‖Q).
- Forward KL(P‖Q) bersifat mode-covering, dan reverse KL(Q‖P) bersifat mode-seeking.
- Dengan label one-hot, cross-entropy loss dan KL divergence adalah angka yang sama.
Pertanyaan umum
Siapa yang memperkenalkan KL divergence?
Solomon Kullback dan Richard Leibler mendefinisikannya dalam makalah 1951 mereka, "On Information and Sufficiency", berdasarkan teori informasi Shannon. Mereka menyebutnya rata-rata informasi untuk membedakan dua hipotesis. Dalam statistik, besaran ini juga dikenal sebagai relative entropy.
Berapa KL divergence antara dua Gaussian?
Untuk distribusi normal satu dimensi, ada bentuk tertutupnya: KL(N(μ₁, σ₁²) ‖ N(μ₂, σ₂²)) = ln(σ₂/σ₁) + (σ₁² + (μ₁ − μ₂)²) / (2σ₂²) − 1/2. Nilainya naik seiring kuadrat jarak antar rata-rata dan seiring ketidakcocokan sebaran. Gaussian multivariat punya rumus serupa yang melibatkan matriks kovarians.
Bagaimana KL divergence dipakai pada VAE?
Loss VAE adalah suku rekonstruksi ditambah KL(q(z|x) ‖ p(z)), dengan q adalah Gaussian dari encoder atas latent code dan p(z) adalah prior normal standar. Untuk prior normal standar, suku KL menyusut menjadi 1/2 (μ² + σ² − 1 − ln σ²) per dimensi latent. Suku ini menjaga latent space tetap halus, sehingga mengambil sampel z dari prior menghasilkan output yang masuk akal.
Kenapa RLHF memakai penalti KL?
Selama RLHF, policy diberi reward oleh reward model hasil pembelajaran, yang bisa dieksploitasi dengan menghasilkan teks aneh yang skornya bagus. Mengurangkan β × KL(policy ‖ model acuan) dari reward menjaga model hasil fine-tuning tetap dekat dengan aslinya. Koefisien β menyeimbangkan reward dengan kedekatan ke model asli.
Penjelasan terkait
- Entropy dan Cross-Entropy · Mengukur kejutan, ketidakpastian, dan kualitas prediksi
- Probabilitas dan Distribusi · Lemparan koin, kurva lonceng, dan matematika ketidakpastian
- Loss Function · Cara network mengukur kesalahannya
- Autoencoder & VAE · Dari kompresi ke generasi: autoencoder standar dan variational
- RLHF · Menyelaraskan model bahasa dengan preferensi manusia lewat reward model dan policy optimization
- GAN · Dua network bersaing untuk mencipta
Referensi
- Kullback & Leibler (1951), "On Information and Sufficiency", Annals of Mathematical Statistics
- Kingma & Welling (2013), "Auto-Encoding Variational Bayes"
- Ouyang et al. (2022), "Training language models to follow instructions with human feedback"
- Szegedy et al. (2016), "Rethinking the Inception Architecture for Computer Vision" (label smoothing)
- Bishop (2006), "Pattern Recognition and Machine Learning", sections 1.6 and 10.1
Terakhir diperbarui