Quanto è flessibile il collegamento tra la funzione obiettivo e la funzione di attivazione del livello di output?


10

Sembra standard in molti pacchetti di reti neurali accoppiare la funzione obiettivo da minimizzare con la funzione di attivazione nel livello di output.

Ad esempio, per uno strato di output lineare utilizzato per la regressione è standard (e spesso solo scelta) avere una funzione di obiettivo di errore al quadrato. Un altro consueto accoppiamento è l'output logistico e la perdita di log (o cross-entropia). E ancora un altro è softmax e perdita multi log.

Usando la notazione, per il valore di pre-attivazione (somma dei pesi per le attivazioni dal livello precedente), per l'attivazione, per la verità di base utilizzata per l'allenamento, i per l'indice del neurone in uscita.a y izun'yio

  • Attivazione lineare un'io=zio va con errore al quadrato 12Σio(yio-un'io)2

  • L'attivazione sigmoide un'io=11+e-zio si accompagna all'obiettivo logloss / cross-entropia -Σio(yio*log(un'io)+(1-yio)*log(1-un'io))

  • L'attivazione di Softmax un'io=ezioΣjezj va con l'obiettivo logloss multiclasse -Σio(yio*log(un'io))

Sono quelli che conosco e mi aspetto che ce ne siano molti di cui non ho ancora sentito parlare.

Sembra che la perdita di log funzionerebbe e sarebbe numericamente stabile quando l'output e gli obiettivi sono nel range [0,1]. Quindi potrebbe non avere senso provare un layer di output lineare con una funzione obiettivo logloss. A meno che non esista una funzione logloss più generale in grado di far fronte a valori di y che sono al di fuori dell'intervallo?

Tuttavia, non sembra così male provare l'output sigmoid con un obiettivo di errore quadrato. Dovrebbe essere stabile e convergere almeno.

Capisco che parte del design dietro questi accoppiamenti è che rende la formula per - dove è il valore della funzione obiettivo - facile per la propagazione posteriore. Ma dovrebbe essere ancora possibile trovare quel derivato usando altri accoppiamenti. Inoltre, ci sono molte altre funzioni di attivazione che non sono comunemente viste nei livelli di output, ma che potrebbero essere fattibili, come , e dove non è chiaro quale funzione oggettiva possa essere applicata.δEδzEtanh

Ci sono delle situazioni durante la progettazione dell'architettura di una rete neurale, che dovresti o dovresti usare accoppiamenti "non standard" di attivazione dell'output e funzioni oggettive?

Risposte:


4

Non è tanto la funzione di attivazione che usi che determina quale funzione di perdita dovresti usare, ma piuttosto quale interpretazione hai dell'output.

Se si suppone che l'output sia una probabilità, la perdita di log è la strada da percorrere.

Se l'output è un valore generico, significa che l'errore al quadrato è il modo predefinito di procedere. Quindi, ad esempio, se l'output fosse un pixel in scala di grigi con scala di grigi etichettata da un numero compreso tra 0 e 1, potrebbe avere senso utilizzare una funzione di attivazione sigmoid con una funzione obiettivo di errore quadratico medio.

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.