Qual è la differenza Cross-entropy e KL divergence?


25

Sia l'entropia incrociata che la divergenza di KL sono strumenti per misurare la distanza tra due distribuzioni di probabilità. Qual è la differenza? Inoltre, la minimizzazione di KL equivale alla minimizzazione di Cross-Entropy.

H(P,Q)=xP(x)logQ(x)
KL(P|Q)=xP(x)logP(x)Q(x)

Voglio conoscerli istintivamente.

Grazie mille in anticipo.

Risposte:


24

Avrai bisogno di alcune condizioni per rivendicare l'equivalenza tra minimizzare l'entropia incrociata e minimizzare la divergenza di KL. Metterò la tua domanda nel contesto di problemi di classificazione usando l'entropia incrociata come funzioni di perdita.

Ricordiamo innanzitutto che l'entropia viene utilizzata per misurare l'incertezza di un sistema, che è definito come

S(v)=ip(vi)logp(vi),
per p(vi) come le probabilità di diversi stati videl sistema. Dal punto di vista della teoria dell'informazione,S(v) è la quantità di informazioni necessarie per rimuovere l'incertezza.

Ad esempio, l'evento A I will die eventuallyè quasi certo (forse possiamo risolvere il problema dell'invecchiamento per parola almost), quindi ha una bassa entropia che richiede solo le informazioni the aging problem cannot be solvedper renderlo certo. Tuttavia, l'evento B The president will die in 50 yearsè molto più incerto di A, quindi ha bisogno di più informazioni per rimuovere le incertezze.

Ora guarda la definizione di divergenza KL tra gli eventi A e B.

DKL(AB)=ipA(vi)logpA(vi)pA(vi)logpB(vi),
dove il primo termine del lato destro è l'entropia dell'evento A, il secondo termine può essere interpretato come l'attesa dell'evento B in termini dell'evento A. E il DKL descrive quanto B sia diversa da A dal punto di vista di A.

Per mettere in relazione l'entropia crociata con l'entropia e la divergenza di KL, formalizziamo l'entropia crociata in termini di eventi A e B come

H(A,B)=ipA(vi)logpB(vi).
Dalle definizioni, possiamo facilmente vedere
H(A,B)=DKL(AB)+SA.
Se SA è una costante, quindi minimizzante H(A,B) equivale a minimizzare DKL(AB).

Un'ulteriore domanda segue naturalmente come l'entropia può essere una costante. In un'attività di apprendimento automatico, iniziamo con un set di dati (indicato comeP(D)) che rappresentano il problema da risolvere e lo scopo dell'apprendimento è quello di realizzare la distribuzione stimata del modello (indicata come P(model)) il più vicino possibile alla vera distribuzione del problema (indicato come P(truth)). P(truth) è sconosciuto e rappresentato da P(D). Pertanto, in un mondo ideale, ci aspettiamo

P(model)P(D)P(truth)
e minimizzare DKL(P(D)P(model)). E per fortuna, in praticaD è dato, il che significa che è la sua entropia S(D) è fissato come costante.


La ringrazio per la risposta. Ha approfondito la mia comprensione. Quindi, quando abbiamo un set di dati, è più efficace ridurre al minimo l'entropia incrociata piuttosto che KL, giusto? Tuttavia, non riesco a capire il loro corretto utilizzo. In altre parole, quando dovrei minimizzare KL o cross entropia?
Jourd

1
Dopo aver letto la tua risposta, penso che sia inutile minimizzare KL perché abbiamo sempre un set di dati, P (D).
Jourd

Idealmente, si sceglierebbe la divergenza di KL per misurare la distanza tra due distribuzioni. Nel contesto della classificazione, la perdita di entropia di solito deriva dalla probabilità di log negativa, ad esempio, quando si sceglie la distribuzione di Bernoulli per modellare i dati.
Doppio il

Potresti voler dare un'occhiata a questo fantastico post . La simmetria non è un problema nella classificazione poiché l'obiettivo dei modelli di apprendimento automatico è quello di rendere la distribuzione prevista il più vicino possibile alla P fissa (D), sebbene le regolarizzazioni vengano solitamente aggiunte per evitare un eccesso di adattamento.
Doppio il

Ho capito l'asimmetria di KL. Tuttavia, non ho ancora capito come usare la minimizzazione di KL o Cross-Entropy in modo diverso. Significa che quando dovrei minimizzare KL e quando dovrei minimizzare Cross-Entropy. pensoSAè sempre una costante, no?
Jourd

7

Suppongo sia perché i modelli di solito funzionano con i campioni confezionati in mini-lotti. Per la divergenza di KL e l'entropia incrociata, la loro relazione può essere scritta come

H(q,p)=DKL(p,q)+H(p)=ipilog(qi)
Dall'equazione, abbiamo potuto vedere che la divergenza di KL può discostarsi da un'entropia incrociata di p e q (la prima parte) e un'entropia globale della verità di base p (la seconda parte).

In molti progetti di machine learning, minibatch è coinvolto per accelerare la formazione, in cui il p di un minibatch può essere diverso dal globale p. In tal caso, l'entropia incrociata è relativamente più robusta nella pratica, mentre la divergenza di KL ha bisogno di una H (p) più stabile per completare il suo lavoro.


1
Questa risposta è ciò che stavo cercando. Nella mia attuale esperienza, che prevede l'apprendimento delle probabilità target, BCE è molto più robusto di KL. Fondamentalmente, KL era inutilizzabile. KL e BCE non sono funzioni di perdita "equivalenti".
Nicholas Leonard,

Quando hai detto "la prima parte" e "la seconda parte", quale era quale?
Josh

La "prima parte" indica DKL(p, q) e la 'seconda parte' significa H (p).
zewen liu

1

Ecco come ci penso:

(1)DKL(p(yi|xi)||q(yi|xi,θ))=H(p(yi|xi,θ),q(yi|xi,θ))H(p(yi|xi,θ))

dove p e qsono due distribuzioni di probabilità. Nell'apprendimento automatico, generalmente lo sappiamop, che è la distribuzione del target. Ad esempio, in un problema di classificazione binaria,Y={0,1}, quindi se yi=1, p(yi=1|x)=1 e p(yi=0|x)=0, e viceversa. Dato ciascunoyii=1,2,,N, dove N è il numero totale di punti nel set di dati, in genere vogliamo ridurre al minimo la divergenza di KL DKL(p,q) tra la distribuzione del bersaglio p(yi|x) e la nostra distribuzione prevista q(yi|x,θ), mediata su tutto i. (Lo facciamo sintonizzando i parametri del nostro modelloθ. Pertanto, per ciascun esempio di addestramento, il modello sta distribuendo una distribuzione sulle etichette delle classi0 e 1.) Per ogni esempio, poiché il target è fisso, la sua distribuzione non cambia mai. Così,H(p(yi|xi)) è costante per ciascuno i, indipendentemente dai parametri del nostro attuale modello θsiamo. Pertanto, il minimizzatore diDKL(p,q) è uguale al minimizzatore di H(p,q).

Se hai avuto una situazione in cui p e q erano entrambi variabili (diciamo, in cui x1p e x2q erano due variabili latenti) e volevo abbinare le due distribuzioni, quindi dovresti scegliere tra minimizzare DKL e minimizzare H(p,q). Questo perché minimizzareDKL implica massimizzare H(p) minimizzando H(p,q) implica minimizzare H(p). Per vedere quest'ultimo, possiamo risolvere l'equazione (1) per H(p,q):

(2)H(p,q)=DKL(p,q)+H(p)
Il primo produrrebbe un'ampia distribuzione per pmentre quest'ultimo produrrebbe uno che è concentrato in una o poche modalità. Nota che è una tua scelta come professionista della ML se vuoi minimizzareDKL(p,q) o DKL(q,p). Una piccola discussione di questo è data nel contesto dell'inferenza variazionale (VI) di seguito.

In VI, devi scegliere tra minimizzare DKL(p,q) e DKL(q,p), che non sono uguali poiché la divergenza di KL non è simmetrica. Se trattiamo ancora una voltap come noto, quindi minimizzando DKL(p,q) comporterebbe una distribuzione q che è nitido e focalizzato su una o poche aree mentre minimizza DKL(q,p) comporterebbe una distribuzione q che è ampio e copre una vasta gamma del dominio di q. Ancora una volta, quest'ultimo è perché minimizzareDKL(q,p) implica massimizzare l'entropia di q.


Nell'equazione (1) sul lato sinistro non hai θ in p(yi|xi), mentre sul lato destro hai p(yi|xi,θ). Perché? Anche nella 5a fila dovresti usarexi invece di x.
Rodvi,

Inoltre, sarà l'entropia H(p) essere tipicamente costanti nel caso di classificatori generativi q(y,x|θ), nel caso di modelli di regressione e nel caso di modelli non parametrici (non assumendo il caso variabile latente)?
Rodvi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.