Il costo dell'entropia incrociata ha senso nel contesto della regressione?


13

Il costo dell'entropia incrociata ha senso nel contesto della regressione (al contrario della classificazione)? In tal caso, potresti dare un esempio di giocattolo attraverso TensorFlow? In caso contrario, perché no?

Stavo leggendo l'entropia incrociata in Neural Networks e Deep Learning di Michael Nielsen e sembra qualcosa che potrebbe essere naturalmente usato per la regressione e la classificazione, ma non capisco come lo applicheresti in modo efficiente in TensorFlow dal le funzioni di perdita accettano log (che non capisco neanche io) e sono elencate sotto la classificazione qui


2
Ho trovato qui su quora che afferma diverso da ciò che è accettato come risposta a questa domanda
Siddharth Shakya,

Se leggi l'intera risposta, vedi che fornisce una "versione continua" dell'entropia incrociata che è piuttosto interessante, ma si rivela essere solo il Mean Squared Error (MSE).
JacKeown,

Risposte:


11

No, non ha senso usare le funzioni TensorFlow come tf.nn.sigmoid_cross_entropy_with_logitsper un'attività di regressione. In TensorFlow, "entropia incrociata" è una scorciatoia (o gergo) per "entropia incrociata categorica". L'entropia incrociata categorica è un'operazione sulle probabilità. Un problema di regressione tenta di prevedere risultati continui, piuttosto che classificazioni.

Il gergo "entropia incrociata" è un po 'fuorviante, poiché esistono numerose funzioni di perdita dell'entropia incrociata; tuttavia, è una convenzione nell'apprendimento automatico riferirsi a questa perdita particolare come perdita di "entropia incrociata".

Se guardiamo oltre le funzioni di TensorFlow a cui ti colleghi, ovviamente ci sono un numero qualsiasi di possibili funzioni di entropia. Questo perché il concetto generale di entropia incrociata riguarda il confronto tra due distribuzioni di probabilità. A seconda delle due distribuzioni di probabilità che si desidera confrontare, è possibile che si verifichi una perdita diversa rispetto alla tipica perdita di entropia categorica categorica. Ad esempio, l'entropia crociata di un bersaglio gaussiano con una media variabile ma una covarianza diagonale fissa riduce l'errore quadratico medio. Il concetto generale di entropia incrociata è delineato più in dettaglio in queste domande:


5
Tuttavia, va detto che l'uso della crossentropia binaria come funzione di perdita in un'attività di regressione in cui i valori di output sono valori reali nell'intervallo [0,1] è una cosa abbastanza ragionevole e valida da fare.
oggi

Oggi penso che questa sia una pratica che alcune persone adottano per motivi pratici (ad esempio la rete neurale converge più rapidamente), ma non sono sicuro che questo modello abbia alcuna relazione con il confronto tra due distribuzioni di probabilità. Forse potresti dimostrare che esiste una relazione tra un obiettivo a valore continuo in[0,1] e entropia binaria?
Sycorax dice di ripristinare Monica

5

La risposta data da @Sycorax è corretta. Tuttavia, vale la pena ricordare che l'utilizzo dell'entropia incrociata (binaria) in un'attività di regressione in cui i valori di output sono compresi nell'intervallo [0,1] è una cosa valida e ragionevole da fare. In realtà, viene utilizzato negli auto codificatori di immagini (ad es. Qui e in questo documento ). Potresti essere interessato a vedere una semplice prova matematica del perché funziona in questo caso in questa risposta .


[0,1]

@InfProbSciX "potrebbe non essere un approccio ragionevole affrontare qualsiasi regressione in cui gli output si trovano in un intervallo di [0,1]." Quindi "ragionevole" in che senso? O come si definisce la ragionevolezza della funzione di perdita per un'attività specifica? Sospetto che questa affermazione possa essere vera per qualsiasi funzione di perdita. Esiste una funzione di perdita che sarebbe ragionevole usare per tutti i tipi di attività di regressione, ovviamente dopo aver definito il "ragionevole"?
oggi

Y=fθ(X)+ϵϵYBernoulli(pθ)l'entropia della croce binaria. Laddove la legge è una regressione lineare con un precedente normale sui coef, la perdita corrisponde alla penalità L2 e così via. Ove possibile, costruirò una legge e quindi ne deriverei una perdita.
InfProbSciX,

@InfProbSciX Grazie per la risposta. Quindi, come hai detto, a seconda dell'attività di regressione (e delle ipotesi sulla distribuzione di dati, errori, ecc.) Una funzione di perdita potrebbe non essere ragionevole da usare. E, come ho già detto, questo è vero per tutte le funzioni di perdita, inclusa la crossentropia. Ovviamente, vedo il tuo punto che solo perché i valori di output sono nell'intervallo [0,1] non garantisce che la crossentropia sia la funzione di perdita di scelta ottimale e non stavo cercando di comunicare il contrario nella mia risposta.
oggi

5

I framework di deep learning mescolano spesso modelli e perdite e si riferiscono all'entropia incrociata di un modello multinomiale con non linearità softmax di cross_entropy, che è fuorviante. In generale, è possibile definire l' entropia incrociata per modelli arbitrari .

fθ(x)ylogfθ(x),
y


2

Sfortunatamente, la risposta ora accettata da @Sycorax, sebbene dettagliata, non è corretta.

In realtà, un primo esempio di regressione attraverso l'entropia incrociata categorica - Wavenet - è stato implementato in TensorFlow .

Il principio è che discretizzi il tuo spazio di output e quindi il tuo modello prevede solo il rispettivo bin; vedere la Sezione 2.2 del documento per un esempio nel dominio della modellazione del suono. Quindi, mentre tecnicamente il modello esegue la classificazione, l'eventuale compito risolto è la regressione.

Un aspetto negativo evidente è che si perde la risoluzione di output. Tuttavia, questo potrebbe non essere un problema (almeno penso che l'assistente artificiale di Google abbia parlato in modo molto umano ) o puoi giocare con un po 'di post-elaborazione, ad esempio l'interpolazione tra il cestino più probabile e i suoi due vicini.

D'altro canto, questo approccio rende il modello molto più potente rispetto al solito output a unità singola lineare, ovvero consentendo di esprimere previsioni multimodali o di valutarne la fiducia. Si noti tuttavia che quest'ultimo può essere naturalmente ottenuto con altri mezzi, ad esempio avendo un output di varianza esplicito (log) come nei codificatori automatici variabili.

Ad ogni modo, questo approccio non si adatta bene all'output tridimensionale, perché quindi la dimensione del layer di output cresce esponenzialmente, rendendolo un problema sia computazionale che di modellazione.


1
Capisco quello che stai dicendo, ma personalmente non prenderei in considerazione la discretizzazione del tuo spazio di output come una "regressione" tanto quanto sta approssimando un problema di regressione usando la classificazione ... ma immagino sia solo una questione di terminologia / convenzione.
JacKeown,

1
Concordato. Lo spazio float a 32 bit è comunque discreto :-)
dedObed il

-1

Ho rivisitato questa domanda poiché ora non sono d'accordo con la risposta che ho precedentemente accettato. La perdita di entropia incrociata PUO 'essere utilizzata nella regressione (sebbene non sia comune).

Dipende dal fatto che l'entropia incrociata è un concetto che ha senso solo quando si confrontano due distribuzioni di probabilità. Potresti considerare una rete neurale che genera una deviazione media e standard per una distribuzione normale come sua previsione. Sarebbe quindi punito più duramente per essere più fiducioso nelle previsioni sbagliate. Quindi sì, ha senso, ma solo se stai producendo una distribuzione in un certo senso. Il link di @SiddharthShakya in un commento alla mia domanda originale mostra questo.


1
Questa risposta sembra rispondere alla domanda in un modo diverso rispetto a quello che viene chiesto. Le funzioni a cui sei collegato nella domanda riguardano uno specifico tipo di perdita tra le entropie e la tua domanda sembra chiederti se quelle funzioni possano essere usate in regressione, e la mia risposta è scritta come se stessi chiedendo come usare quelle funzioni ti colleghi a. La risposta qui sembra rispondere alla domanda "L'entropia incrociata può essere generalizzata oltre la classificazione?" Modificare la Q chiarirebbe che il focus è su come sono definiti i concetti matematici, piuttosto che su come usare le funzioni di Tensorflow.
Sycorax dice di reintegrare Monica il

Capisco la tua obiezione, ma ho intenzione di lasciare la domanda così com'è perché rappresenta la mia domanda originale che ritengo possa aiutare le persone con la stessa domanda che avevo. Ad ogni modo, l'intero post dovrebbe contenere abbastanza informazioni complessive.
JacKeown,
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.