Ich möchte die KL-Divergenz zwischen zwei kontinuierlichen Verteilungen f und g abschätzen. Ich kann jedoch weder für f noch für g die Dichte aufschreiben. Ich kann sowohl von f als auch von g über eine Methode (zum Beispiel Markov Chain Monte Carlo) probieren.
Die KL-Divergenz von f nach g ist wie folgt definiert
Dies ist die Erwartung von in Bezug auf f, sodass Sie sich eine Monte-Carlo-Schätzung vorstellen können
Wobei i N Stichproben indiziert, die aus f gezogen werden (dh für i = 1, ..., N)
Da ich jedoch f () und g () nicht kenne, kann ich diese Monte-Carlo-Schätzung nicht einmal verwenden. Was ist die Standardmethode zur Schätzung des KL in dieser Situation?
EDIT: Ich kenne die nicht normalisierte Dichte weder für f () noch für g ()
kullback-leibler
frelk
quelle
quelle
Antworten:
Hier gehe ich davon aus, dass Sie nur von den Modellen probieren können; Eine nicht normalisierte Dichtefunktion ist nicht verfügbar.
Du schreibst das
wo ich das Verhältnis der Wahrscheinlichkeiten zu . Alex Smola schreibt, obwohl in einem anderen Kontext, dass Sie diese Verhältnisse "leicht" schätzen können, indem Sie nur einen Klassifikator trainieren. Nehmen wir an, Sie haben einen Klassifikator , der Ihnen die Wahrscheinlichkeit angibt, dass eine Beobachtung durch erzeugt wurde . Man beachte, dass . Dann:p ( f | x ) x f p ( g | x ) = 1 - p ( f | x )r p ( f| x) x f p ( g| x)=1-p(f| x)
wobei der erste Schritt auf Bayes zurückzuführen ist und der letzte aus der Annahme folgt, dass .p ( g) = p ( f)
Das Erhalten eines solchen Klassifikators kann aus zwei Gründen recht einfach sein.
Zunächst können Sie stochastische Updates durchführen. Das heißt, wenn Sie einen gradientenbasierten Optimierer verwenden, wie er für logistische Regression oder neuronale Netze typisch ist, können Sie einfach aus jedem und eine Stichprobe ziehen und eine Aktualisierung vornehmen.gf G
Zweitens, da Sie praktisch unbegrenzte Daten haben - Sie können und einfach zu Tode abtasten -, müssen Sie sich keine Gedanken über Überanpassung oder ähnliches machen.gf G
quelle
Ich gehe davon aus, dass Sie und bis zu einer Normalisierungskonstante auswerten können . Bezeichne und .g f ( x ) = f u ( x ) / c f g ( x ) = g u ( x ) / c gf G f( x ) = fu( x ) / cf G( x ) = gu( x ) / cG
Ein konsistenter Schätzer, der verwendet werden kann, ist wobei ist ein Schätzer für die für das Verhältnis . Hier können Sie verwenden und als Instrumentaldichten für und sind und die Log - Verhältnis von nicht normalisierten Dichten Ziel. R = 1 / n
Lassen Sie also , und . Der Zähler von (1) konvergiert gegen . Der Nenner konvergiert gegen . Das Verhältnis ist durch den Satz der kontinuierlichen Abbildung konsistent. Das Protokoll des Verhältnisses wird durch erneutes kontinuierliches Mapping konsistent. { y i } ∼ π g { z i } ∼ π r c f c g{ xich} ∼ πf { yich} ∼ πG { zich} ∼ πr cf cG
In Bezug auf den anderen Teil des Schätzers ist nach dem Gesetz der großen Zahlen.
Meine Motivation ist folgende:
Für weitere Ideen zur Simulation des Wahrscheinlichkeitsverhältnisses habe ich ein Papier gefunden, das einige enthält: https://projecteuclid.org/download/pdf_1/euclid.aos/1031594732
quelle
Neben der von @bayerj erwähnten probabilistischen Klassifikatormethode können Sie auch die in [1-2] abgeleitete Untergrenze der KL-Divergenz verwenden:
Um die KL-Divergenz zwischen und abzuschätzen , maximieren wir die Untergrenze für die Funktion .f G T.( x )
Verweise:
[1] Nguyen, X., Wainwright, MJ und Jordan, MI, 2010. Schätzung der Divergenzfunktionen und des Wahrscheinlichkeitsverhältnisses durch konvexe Risikominimierung. IEEE Transactions on Information Theory, 56 (11), S. 5847-5861.
[2] Nowozin, S., Cseke, B. und Tomioka, R., 2016. f-gan: Training generativer neuronaler Probenehmer unter Verwendung der Minimierung der Variationsdivergenz. Fortschritte in neuronalen Informationsverarbeitungssystemen (S. 271-279).
quelle