Berechnen Sie die Kullback-Leibler-Divergenz in der Praxis?


14

Ich benutze KL Divergence als Maß für die Unähnlichkeit zwischen 2 p.m.f. P und Q .

=-P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi))

DKL(P||Q)=i=1Nln(PiQi)Pi
=P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi))

Wenn ist, können wir leicht berechnen, dass P ( X i ) l n ( Q ( X i ) ) = 0 P ( X i ) l n ( P ( X i ) ) = 0 ist

P(Xi)=0
P(Xi)ln(Q(Xi))=0
P(Xich)ln(P(Xich))=0

Aber wenn und Q ( X i ) = 0, wie berechnet man P ( X i ) l n ( Q ( X i ) ) ?

P(Xi)0
Q(Xi)=0
P(Xi)ln(Q(Xi))

P(Xi)!=0P(Xi)0

Darüber hinaus meinst du das Q(Xi)=0XiQ

@Matthew Danke, korrigiert. Ich habe meine Codierungsgewohnheit versehentlich befolgt.
Smwikipedia

Q(Xi)=0XiPQ.

Antworten:


14

Sie können nicht und Sie nicht. Stellen Sie sich vor, Sie haben eine Zufallsvariable für die Wahrscheinlichkeitsverteilung Q. Aber Ihr Freund Bob glaubt, dass das Ergebnis von der Wahrscheinlichkeitsverteilung P herrührt. Er hat eine optimale Codierung konstruiert, die die Anzahl der erwarteten Bits minimiert, die er verwenden muss, um Ihnen die Wahrscheinlichkeitsverteilung mitzuteilen Ergebnis. Da er die Codierung jedoch aus P und nicht aus Q erstellt hat, sind seine Codes länger als erforderlich. KL-Divergenz messen, wie lange die Codes sein werden.

Nehmen wir an, er hat eine Münze und möchte Ihnen die Reihenfolge der Ergebnisse mitteilen, die er erzielt. Da Kopf und Schwanz gleich wahrscheinlich sind, gibt er ihnen beide 1-Bit-Codes. 0 für Kopf, 1 für Schwanz. Wenn er Schwanz Schwanz Kopf Schwanz bekommt, kann er 1 1 0 1 senden. Wenn nun seine Münze auf dem Rand landet, kann er es Ihnen unmöglich sagen! Kein Code, den er dir schickt, würde funktionieren. Zu diesem Zeitpunkt bricht die KL-Divergenz zusammen.

Da die KL-Divergenz zusammenbricht, müssen Sie entweder ein anderes Maß oder andere Wahrscheinlichkeitsverteilungen verwenden. Was Sie wirklich tun sollten, hängt davon ab, was Sie wollen. Warum vergleichen Sie Wahrscheinlichkeitsverteilungen? Woher kommen Ihre Wahrscheinlichkeitsverteilungen, werden sie aus Daten geschätzt?

Sie sagen, Ihre Wahrscheinlichkeitsverteilungen stammen irgendwie aus Dokumenten in natürlicher Sprache, und Sie möchten Paare von Kategorien vergleichen.

Zunächst würde ich ein Maß für die Symmetrie empfehlen. Für diese Anwendung klingt es, als wäre A B ähnlich, als wäre B A ähnlich.

Haben Sie das Cosinus-Ähnlichkeitsmaß ausprobiert? Es ist in NLP ziemlich verbreitet.

Wenn Sie bei KL bleiben möchten, können Sie eine Wahrscheinlichkeitsfunktion aus beiden Dokumenten abschätzen und dann sehen, wie viele zusätzliche Bits Sie durchschnittlich für beide Dokumente benötigen würden. Das heißt (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2


Gute Erklärung, aber etwas verwirrend: Wie Sie den ersten Absatz beschreiben, ist das nicht KL (Q || P)?
Jürgen

8

In der Praxis bin ich auch auf dieses Problem gestoßen. In diesem Fall habe ich festgestellt, dass das Ersetzen eines sehr kleinen Werts durch den Wert 0 Probleme verursachen kann. Abhängig von dem Wert, den Sie verwenden, werden Sie eine "Verzerrung" in den KL-Wert einfügen. Wenn Sie den KL-Wert für Hypothesentests oder eine andere Verwendung mit einem Schwellenwert verwenden, kann dieser kleine Wert Ihre Ergebnisse verzerren. Ich habe herausgefunden, dass der effektivste Weg, um damit umzugehen, darin besteht, die KL nur über einen konsistenten Hypothesenraum X_i zu berechnen, in dem BEIDE P und Q ungleich Null sind. Dies beschränkt die Domäne der KL im Wesentlichen auf eine Domäne, in der beide definiert sind, und verhindert Probleme bei der Verwendung der KL zur Durchführung von Hypothesentests.


Vielen Dank. Es ist ein interessanter Vorschlag. Grundsätzlich wird auch versucht, P und Q auf die gleichen Ergebnisse zu stützen. Ich werde das versuchen.
Smwikipedia

Wenn ich KL über die Datenuntermenge berechne, in der sowohl P als auch Q nicht Null sind, muss ich P und Q über diese Untermenge neu normalisieren? Oder einfach den ursprünglichen Wahrscheinlichkeitswert verwenden? Ich denke Ich sollte. Andernfalls befinden sich P und Q immer noch nicht auf derselben Basis.
smwikipedia

Ich habe es nur mit deinem Vorschlag versucht. P verteilt über 10K-Ergebnisse, und Q verteilt auch über 10K-Ergebnisse. P und Q haben jedoch nur 3K-Ergebnisse gemeinsam. Wenn ich nur die allgemeinen 3K-Ergebnisse verwende, um den Unterschied zwischen P und Q zu schätzen, halte ich das nicht für sinnvoll. Weil wir viele Dinge ignorieren. Und übrigens ist das Ergebnis mit diesem Ansatz ganz anders, als ich es durch Hinzufügen einer kleinen Zahl (oder Pseudozählung) erhalte.
Smwikipedia

Füge einen Kontext hinzu, ich arbeite an einem NLP-Experiment. Ich habe mehrere Kategorien von Dokumenten und möchte sagen, wie eng jedes Kategorienpaar miteinander verbunden ist.
Smwikipedia

5

Eine Wahrscheinlichkeitsverteilung haben, wo Q.ich=0 für jeden ich bedeutet, dass Sie sicher sind, dass Q.ichkann nicht auftreten. Wenn also aQ.ichWürden Sie jemals beobachtet, würde dies eine unendliche Überraschung / Information darstellen, was Shannon Information darstellt. Die KL-Diveregenz gibt die Menge zusätzlicher Überraschungen (dh Informationsverluste) pro Beobachtung bei der Verteilung anQ. wird als Näherung für die Verteilung verwendet P. Wenn die Näherung eine Wahrscheinlichkeit von 0 für ein Ereignis voraussagt, das in der Realität eine positive Wahrscheinlichkeit hat, werden Sie in einem gewissen Prozentsatz der Zeit eine unendliche Überraschung erleben und somit im Durchschnitt eine unendliche Überraschung.

Die Lösung besteht darin, niemals 0 oder 1 Wahrscheinlichkeiten in geschätzten Verteilungen zuzulassen. Dies wird normalerweise durch eine Form der Glättung wie Good-Turing-Glättung, Dirichlet-Glättung oder Laplace-Glättung erreicht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.