Innanzitutto, la violazione della condizione di simmetria è il problema più piccolo con la divergenza di Kullback-Leibler. viola anche la disuguaglianza del triangolo. Puoi semplicemente introdurre la versione simmetrica come , ma non è ancora metrica, perché sia che viola la disuguaglianza del triangolo. Per dimostrare che basta prendere tre monete distorte A, B e C che producono molte meno teste delle code, ad esempio monete con probabilità delle teste di: A = 0,1, B = 0,2 e C = 0,3. In entrambi i casi, la normale divergenza di KL D o la sua versione simmetrica SKL, controlla che non corrispondano alla disuguaglianza del triangolo fullfil
D(P||Q)
SKL(P,Q)=D(P||Q)+D(Q||P)
D(P||Q)SKL(P,Q)S K L ( A , B ) + S K L ( B , C ) ⪈ S K L ( A , C ) D ( P | | Q ) = ∑ i p iD(A||B)+D(B||C)D(A||C)
SKL(A,B)+SKL(B,C)SKL(A,C)
Usa semplicemente queste formule:
D(P||Q)=∑ipi⋅log(piqi)
SKL(P,Q)=∑i(pi−qi)⋅log(piqi)
D(A||B)=0.1⋅log(0.10.2)+0.9⋅log(0.90.8)≈0.0159
D(B||C)≈0.0112
D(A||C)≈0.0505
0.0159+0.01120.0505
SKL(A,B)≈0.0352
SKL(B,C)≈0.0234
SKL(A,C)≈0.1173
0.0352+0.02340.1173
Ho introdotto questo esempio di proposito. Immaginiamo che stai lanciando alcune monete, ad esempio 100 volte. Fintanto che queste monete sono imparziali, dovresti semplicemente codificare i risultati del lancio con una sequenza di 0-1 bit, (1 testa, 0 coda). In una tale situazione in cui la probabilità di testa è uguale alla probabilità di coda e uguale a 0,5, questa è una codifica abbastanza efficace. Ora, abbiamo alcune monete distorte, quindi preferiamo codificare i risultati più probabili con un codice più breve, ad esempio unire gruppi di teste e code e rappresentare sequenze di teste k con codice più lungo rispetto alla sequenza di code K (sono più probabili). E qui si verifica la divergenza Kullback-Leibler . Se P rappresenta la vera distribuzione dei risultati e Q è solo un'approssimazione di P, alloraD(P||Q)D(P||Q) indica la penalità da pagare quando si codificano i risultati che provengono effettivamente da P distrib con codifica destinata a Q (penalità nel senso dei bit extra che è necessario utilizzare).
Se hai semplicemente bisogno della metrica, usa la distanza Bhattacharyya (ovviamente la versione modificata )1−[∑xp(x)q(x)−−−−−−−√]−−−−−−−−−−−−−−−√