funzione di attivazione tanh vs funzione di attivazione sigmoid


82

La funzione di attivazione tanh è:

tanh(x)=2σ(2x)1

Dove σ(x) , la funzione sigmoide, è definita come:

σ(x)=ex1+ex
.

Domande:

  • Importa davvero tra l'uso di queste due funzioni di attivazione (tanh vs. sigma)?
  • Quale funzione è migliore in quali casi?

12
tanh(x)=2σ(2x)1
Roman Shapovalov,

Le reti neurali profonde sono passate. La preferenza corrente è la funzione RELU.
Paul Nord,

7
@PaulNord Sia tanh che sigmoid sono ancora usati insieme ad altre attivazioni come RELU, dipende da cosa stai cercando di fare.
Tahlor,

Risposte:


80

Sì, è importante per motivi tecnici. Fondamentalmente per l'ottimizzazione. Vale la pena leggere Efficient Backprop di LeCun et al.

Ci sono due ragioni per quella scelta (supponendo che tu abbia normalizzato i tuoi dati, e questo è molto importante):

  1. Avere gradienti più forti: poiché i dati sono centrati attorno a 0, le derivate sono più alte. Per vedere questo, calcola la derivata della funzione tanh e nota che il suo intervallo (valori di output) è [0,1].

L'intervallo della funzione tanh è [-1,1] e quello della funzione sigmoide è [0,1]

  1. Evitare distorsioni nei gradienti. Questo è spiegato molto bene nel documento, e vale la pena leggerlo per capire questi problemi.

Ho un piccolo dubbio nel documento che hai suggerito. Nella pagina 14, "Quando MLP ha pesi condivisi (ad esempio: reti convoluzionali), la velocità di apprendimento deve essere scelta in modo tale da essere proporzionale alla radice quadrata del numero di connessioni che condividono il peso". Puoi spiegare perché?
satya,

a questa domanda è già stata data una risposta qui stats.stackexchange.com/questions/47590/…
jpmuc

1
Questa è una domanda molto generale. Per farla breve: la funzione di costo determina cosa dovrebbe fare la rete neurale: classificazione o regressione e come. Se potessi ottenere una copia di "Neural Networks for Pattern Recognition" di Christopher Bishop, sarebbe fantastico. Anche "Machine Learning" di Mitchell ti dà una buona spiegazione a un livello più elementare.
jpmuc,

1
Mi dispiace, Satya, di solito sono piuttosto impegnato durante la settimana. Come normalizzi esattamente i tuoi dati? en.wikipedia.org/wiki/Whitening_transformation Non sono davvero sicuro di quale possa essere il tuo problema. Il modo più semplice è sottrarre la media e quindi equalizzare con la matrice di covarianza. Evtl. è necessario aggiungere alcuni componenti per le alte frequenze (vedere la trasformazione ZCA nel riferimento sopra)
jpmuc

1
Grazie mille juampa. Mi stai davvero aiutando molto. La lettura suggerita è molto buona. Sto effettivamente facendo un progetto sul data mining del clima. Il 50% delle mie funzioni di input sono la temperatura (intervallo 200K-310K) e il 50% delle mie funzionalità di input sono valori di pressione (intervallo da 50000 pa a 100000 pa). Sto facendo lo sbiancamento. Prima di pca, c'è bisogno di normalizzarlo ... Se sì, come dovrei normalizzarlo? Devo normalizzare prima di sottrarre per mezzo o dopo aver sottratto per mezzo? Sto ottenendo risultati diversi se mi sto normalizzando con metodi diversi ...
satya,

32

Grazie mille @jpmuc! Ispirato dalla tua risposta, ho calcolato e tracciato separatamente la derivata della funzione tanh e della funzione sigmoide standard. Mi piacerebbe condividere con tutti voi. Ecco cosa ho ottenuto. Questo è il derivato della funzione tanh. Per input tra [-1,1], abbiamo derivata tra [0.42, 1]. inserisci qui la descrizione dell'immagine

Questa è la derivata della funzione sigmoide standard f (x) = 1 / (1 + exp (-x)). Per input tra [0,1], abbiamo derivata tra [0,20, 0,25]. inserisci qui la descrizione dell'immagine

Apparentemente la funzione tanh offre gradienti più forti.


6
Un altro modo di vedere questo è che σ (2x) è lo stesso di σ (x), ma con un allungamento orizzontale applicato, fattore di scala 1/2 (cioè è lo stesso grafico ma con tutto schiacciato verso l'asse y). Quando lo schiacci dentro, la pendenza diventa più ripida
rbennett485

2
Non vedo perché questo farebbe la differenza. La scala e lo schiacciamento saranno casuali per ciascun nodo e (con offset e pesi in ingresso e in uscita) entrambi saranno approssimatori universali, convergendo allo stesso risultato.
endolito il
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.