<EbeneX/>
Mathematik Grundlagen · Updated 3. Juli 2026

KL-Divergenz

Definition

Ein Maß für den Unterschied zwischen zwei Wahrscheinlichkeitsverteilungen – häufig genutzt in VAEs, Distillation und Information Theory.

Experte 3 Min. Lesezeit EN: Kullback-Leibler Divergence / KL Divergence

Einfach erklärt

KL-Divergenz misst, wie unterschiedlich zwei Wahrscheinlichkeitsverteilungen sind.

Die Formel:

DKL(P||Q) = Σ P(x) × log(P(x) / Q(x))

P = "wahre" Verteilung
Q = approximierte Verteilung

Beispiel:

P = [p1, p2]  (Referenzverteilung)
Q = [q1, q2]  (approximierte Verteilung)

DKL(P||Q) = p1×log(p1/q1) + p2×log(p2/q2)

Je stärker Q von P abweicht, desto größer wird die Divergenz.

Technischer Deep Dive

KL-Divergenz berechnen

import numpy as np

def kl_divergence(p, q):
    # Vermeidet log(0)
    p = np.clip(p, 1e-10, 1)
    q = np.clip(q, 1e-10, 1)
    return np.sum(p * np.log(p / q))

p = np.array(reference_distribution)
q = np.array(approx_distribution)
print(f"KL(P||Q) = {kl_divergence(p, q):.3f}")
print(f"KL(Q||P) = {kl_divergence(q, p):.3f}")  # meist nicht gleich

VAE Loss mit KL

def vae_loss(x, x_recon, mu, logvar):
    # Reconstruction Loss
    recon_loss = F.binary_cross_entropy(x_recon, x, reduction='sum')
    
    # KL Divergence: approximierte Latent-Verteilung vs. Prior
    kl_loss = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp())
    
    return recon_loss + kl_loss

Forward vs. Reverse KL

Weil die KL-Divergenz nicht symmetrisch ist, macht die Richtung einen praktischen Unterschied – die beiden Varianten bestrafen unterschiedliche Fehler:

VarianteFormelVerhaltenTypischer Einsatz
Forward KLDKL(P‖Q)„mean-seeking”: Q muss überall Masse haben, wo P Masse hatMaximum-Likelihood-Training, Distillation
Reverse KLDKL(Q‖P)„mode-seeking”: Q konzentriert sich auf einen Modus von PVariational Inference, RLHF-Regularisierung

Forward KL bestraft es hart, wenn Q einem Ereignis Wahrscheinlichkeit ~0 gibt, das unter P vorkommt (der Term log(P/Q) explodiert). Reverse KL bestraft umgekehrt, wenn Q Masse dort platziert, wo P keine hat.

Warum KL beim LLM-Training überall auftaucht

Drei Stellen, an denen die KL-Divergenz in modernen Sprachmodellen zentral ist:

  1. Pre-Training: Die Cross-Entropy-Loss ist bis auf eine Konstante identisch mit der KL-Divergenz zwischen der echten Token-Verteilung und der Modellvorhersage – jedes Sprachmodell minimiert also implizit eine KL-Divergenz.
  2. RLHF: Beim Feintuning per Reinforcement Learning wird eine KL-Penalty zur Reward-Funktion addiert. Sie hält die neue Policy nahe am Basismodell und verhindert, dass das Modell den Reward „hackt”, indem es unnatürlichen Text erzeugt.
  3. Knowledge Distillation: Der Student wird darauf trainiert, die weiche Wahrscheinlichkeitsverteilung des Teachers zu imitieren – gemessen per KL-Divergenz statt nur über harte Labels.

Typische Stolperfallen

  • KL ist keine Metrik: Sie verletzt Symmetrie und Dreiecksungleichung. Wer ein echtes Abstandsmaß braucht, nutzt z. B. die Jensen-Shannon-Divergenz (symmetrisierte KL).
  • Division durch Null: Sobald Q(x) = 0 bei P(x) > 0, ist die Divergenz unendlich. In der Praxis werden Verteilungen deshalb geglättet oder geclippt (siehe np.clip oben).
  • Einheit beachten: Mit log zur Basis 2 misst KL in Bits, mit natürlichem Logarithmus in Nats – beim Vergleich von Werten aus verschiedenen Quellen relevant.

KL-Divergenz misst, wie überrascht du wärst, wenn du dachtest, die Welt folgt Verteilung P, aber sie folgt eigentlich Q. Je größer die Überraschung, desto größer die Divergenz.

DKL(P||Q) – Divergenz von Q zu P

Nicht symmetrisch: DKL(P||Q) ≠ DKL(Q||P)

Nicht-negativ, mit 0 bei identischen Verteilungen unter passenden Bedingungen

VAE Loss

Latent Space an Prior anpassen

Knowledge Distillation

Student an Teacher-Verteilung anpassen

RLHF

Policy nicht zu weit vom Base Model

Warum nicht symmetrisch?

KL misst 'Überraschung' aus Sicht von P. P||Q fragt: Wie überrascht ist P über Q? Das ist anders als Q über P.

KL vs. Cross-Entropy?

Cross-Entropy = Entropy(P) + KL(P||Q). Bei fixem P ist Minimierung von Cross-Entropy = Minimierung von KL.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.