Cos'è l'entropia incrociata?


92

So che ci sono molte spiegazioni su cosa sia l'entropia incrociata, ma sono ancora confuso.

È solo un metodo per descrivere la funzione di perdita? Possiamo usare l'algoritmo di discesa del gradiente per trovare il minimo usando la funzione di perdita?


10
Non è una buona misura per SO. Ecco una domanda simile sul sito gemello di datascience
Metropolis

Risposte:


230

L'entropia incrociata è comunemente usata per quantificare la differenza tra due distribuzioni di probabilità. Di solito la distribuzione "vera" (quella che il tuo algoritmo di apprendimento automatico sta cercando di abbinare) è espressa in termini di distribuzione one-hot.

Ad esempio, supponiamo che per una specifica istanza di addestramento, l'etichetta sia B (fuori dalle possibili etichette A, B e C). La distribuzione one-hot per questa istanza di addestramento è quindi:

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

È possibile interpretare la distribuzione "vera" di cui sopra per indicare che l'istanza di addestramento ha lo 0% di probabilità di essere di classe A, il 100% di probabilità di essere di classe B e lo 0% di probabilità di essere di classe C.

Supponiamo ora che il tuo algoritmo di apprendimento automatico preveda la seguente distribuzione di probabilità:

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

Quanto è vicina la distribuzione prevista alla distribuzione reale? Questo è ciò che determina la perdita di entropia incrociata. Usa questa formula:

Formula di perdita di entropia incrociata

Dov'è p(x)la probabilità desiderata e q(x)la probabilità effettiva. La somma è superiore alle tre classi A, B e C.In questo caso la perdita è di 0,479 :

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

Quindi è così che la tua previsione è "sbagliata" o "lontana" dalla vera distribuzione.

L'entropia incrociata è una delle tante possibili funzioni di perdita (un'altra popolare è la perdita della cerniera SVM). Queste funzioni di perdita sono tipicamente scritte come J (theta) e possono essere utilizzate all'interno della discesa del gradiente, che è un algoritmo iterativo per spostare i parametri (o coefficienti) verso i valori ottimali. Nell'equazione seguente, sostituiresti J(theta)con H(p, q). Ma nota che devi prima calcolare la derivata di H(p, q)rispetto ai parametri.

discesa in pendenza

Quindi, per rispondere direttamente alle tue domande originali:

È solo un metodo per descrivere la funzione di perdita?

Corretta, l'entropia incrociata descrive la perdita tra due distribuzioni di probabilità. È una delle tante possibili funzioni di perdita.

Quindi possiamo usare, ad esempio, l'algoritmo di discesa del gradiente per trovare il minimo.

Sì, la funzione di perdita di entropia incrociata può essere utilizzata come parte della discesa del gradiente.

Ulteriori letture: una delle mie altre risposte relative a TensorFlow.


quindi, l'entropia incrociata descrive la perdita per somma di probabilità per ogni esempio X.
theateist

quindi, possiamo invece di descrivere l'errore come entropia incrociata, descrivere l'errore come un angolo tra due vettori (somiglianza coseno / distanza angolare) e cercare di minimizzare l'angolo?
theateist

1
a quanto pare non è la soluzione migliore, ma volevo solo sapere, in teoria, se potessimo usare cosine (dis)similarityper descrivere l'errore attraverso l'angolo e quindi provare a minimizzare l'angolo.
theateist

2
@Stephen: Se guardi l'esempio che ho fornito, p(x)sarebbe l'elenco delle probabilità di verità fondamentale per ciascuna delle classi, che sarebbe [0.0, 1.0, 0.0. Allo stesso modo, q(x)l'elenco dei probabilità prevista per ciascuna delle classi, [0.228, 0.619, 0.153]. H(p, q)è quindi - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153)), che risulta essere 0,479. Nota che è comune usare la np.log()funzione di Python , che in realtà è il logaritmo naturale; non importa.
stackoverflowuser2010

1
@HAr: Per la codifica one-hot della vera etichetta, c'è solo una classe diversa da zero che ci interessa. Tuttavia, l'entropia incrociata può confrontare due distribuzioni di probabilità qualsiasi; non è necessario che uno di loro abbia probabilità di uno caldo.
stackoverflowuser2010

2

In breve, l'entropia incrociata (CE) è la misura di quanto è lontano il valore previsto dalla vera etichetta.

La croce qui si riferisce al calcolo dell'entropia tra due o più caratteristiche / etichette vere (come 0, 1).

E il termine entropia stesso si riferisce alla casualità, quindi un valore elevato significa che la tua previsione è lontana dalle etichette reali.

Quindi i pesi vengono modificati per ridurre il CE e quindi alla fine porta a una differenza ridotta tra la previsione e le etichette vere e quindi una migliore precisione.


1

In aggiunta ai post precedenti, la forma più semplice di perdita di entropia incrociata è nota come entropia incrociata binaria (usata come funzione di perdita per la classificazione binaria, ad esempio con regressione logistica), mentre la versione generalizzata è entropia incrociata categoriale (usata come funzione di perdita per problemi di classificazione multi-classe, ad esempio con reti neurali).

L'idea rimane la stessa:

  1. quando la probabilità di classe calcolata dal modello (softmax) diventa prossima a 1 per l'etichetta di destinazione per un'istanza di addestramento (rappresentata con una codifica a caldo, ad esempio), la corrispondente perdita CCE diminuisce a zero

  2. altrimenti aumenta al diminuire della probabilità prevista corrispondente alla classe target.

La figura seguente mostra il concetto (notare dalla figura che BCE diventa basso quando entrambi yep sono alti o entrambi sono bassi contemporaneamente, cioè, c'è un accordo):

inserisci qui la descrizione dell'immagine

L'entropia incrociata è strettamente correlata all'entropia relativa o divergenza KL che calcola la distanza tra due distribuzioni di probabilità. Ad esempio, tra due pmf discreti, la relazione tra loro è mostrata nella figura seguente:

inserisci qui la descrizione dell'immagine

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.