Scelta della funzione di attivazione nascosta della rete neurale


14

Ho letto altrove che la scelta della funzione di attivazione del livello nascosto in un NN dovrebbe essere basata sul bisogno di uno , cioè se hai bisogno di valori nell'intervallo da -1 a 1 usa tanh e usa sigmoid per l'intervallo da 0 a 1.

La mia domanda è: come si fa a sapere qual è il proprio bisogno ? Si basa sull'intervallo del livello di input, ad esempio utilizzare la funzione che può comprendere l'intero intervallo di valori del livello di input o in qualche modo riflette la distribuzione del livello di input (funzione gaussiana)? O il bisogno è un problema / dominio specifico e per fare questa scelta è necessaria la propria esperienza / giudizio? O è semplicemente "utilizzare ciò che dà il miglior errore di addestramento minimo convalidato in modo incrociato?"


3
Questo argomento è bs perché (tanh + 1) / 2 è anche in 0-1, per non parlare del fatto che "sigmoide" è un termine così vago che abbastanza spesso copre tanh.

Vale probabilmente la pena ricordare che qualsiasi set di dati può essere normalizzato su 0-> 1 e fatto per usare un'attivazione sigmoid 1 + (1 / exp(-sum)). Rendere la necessità molto difficile da capire senza provare entrambi su ciascun set di dati. La necessità così come la descrivi qui è legata alla relazione effettiva che si sta imparando, cioè un set di dati binari imparerà più velocemente o per niente date diverse attivazioni.
Adrian Seeley,

Risposte:


12

LeCun ne discute nella sezione 4.4 del Backprop efficiente . La motivazione è simile alla motivazione per normalizzare l'input a media zero (Sezione 4.3). Le uscite medie della funzione di attivazione tanh hanno più probabilità di essere vicine allo zero rispetto al sigmoide, la cui uscita media deve essere positiva.


Una lettura molto istruttiva!
babelproofreader,

6

La necessità menzionata nel primo paragrafo della domanda riguarda la funzione di attivazione del livello di output , piuttosto che la funzione di attivazione del livello nascosto. Avere uscite che vanno da 0 a 1 è conveniente in quanto significa che possono rappresentare direttamente le probabilità. Tuttavia, IIRC, una rete con funzioni di attivazione del livello di uscita tanh può essere banalmente trasformata in una rete con funzione di attivazione del livello di uscita logistica, quindi nella pratica non ha molta importanza.

IIRC il motivo per cui si utilizza tanh anziché la funzione di attivazione logistica nelle unità nascoste, ovvero che la modifica apportata a un peso mediante backpropagation dipende sia dall'output del neurone a strato nascosto sia dalla derivata della funzione di attivazione, quindi utilizzando l'attivazione logistica È possibile portare entrambi a zero contemporaneamente, il che può finire con il congelamento dell'unità di livello nascosta.

In breve, utilizzare tanh per le funzioni di attivazione del livello nascosto, scegliere la funzione di attivazione del livello di output per applicare i vincoli desiderati sull'output (scelte comuni: lineare - nessun vincolo, logistico - l'output è compreso tra 0 e 1 ed esponenziale - output strettamente positivo).


Non capisco il "... sono entrambi andati a zero ...". Vedo che l'output potrebbe essere zero ma come è possibile che la derivata della funzione logistica vada a zero come tanh no.
erogol

non va esattamente a zero, per la funzione logistica, diventa solo molto piccolo. Per la funzione tanh, la derivata è al suo massimo quando l'uscita è zero e l'uscita al suo massimo quando la derivata è più piccola. Il documento originale è stato scritto alla fine degli anni '80, vedrò se riesco a ricordare i dettagli.
Dikran Marsupial,

2
Non riesco a trovare il documento originale, ma alcuni articoli nel libro "Neural Networks - Tricks of the Trade" suggeriscono che l'abbronzatura è migliore nei livelli nascosti poiché le reti funzionano meglio se le attivazioni del livello nascosto sono centrate (ovvero zero media ).
Dikran Marsupial,

2

1,7159×tanh(X×(2/3))-1+1[-1.5,+1.5]

Il concetto generale di scegliere sigmoid per il tuo scopo è quello di scegliere quello secondo la regola, i tuoi valori di output sono nell'intervallo di punti, rende massima la seconda derivata della funzione sigmoid.

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.