Perché non esiste una sola funzione di attivazione "chiave di volta" nelle reti neurali?

Aug 20 2020

Questo articolo dice quanto segue:

Decidere tra il sigmoide o il tanh dipenderà dal tuo requisito di intensità del gradiente.

Ho visto (finora nel mio apprendimento) 7 funzioni / curve di attivazione. Ognuno sembra costruire sull'ultimo . Ma poi, come la citazione sopra, ho letto in molti posti essenzialmente che "in base alle tue esigenze, seleziona la tua funzione di attivazione e adattala al tuo caso d'uso specifico".

Questo non sembra scalabile . Da una prospettiva ingegneristica, un essere umano deve entrare e armeggiare con ciascuna rete neurale per trovare la funzione di attivazione giusta o ottimale, il che sembra richiedere molto tempo e impegno. Ho visto articoli che sembrano descrivere persone che lavorano per trovare automaticamente la funzione di attivazione "migliore" anche per un particolare set di dati. Dal punto di vista dell'astrazione, è come scrivere codice per gestire ogni utente individualmente su un sito Web, indipendentemente dagli altri, piuttosto che scrivere un solo sistema di autenticazione utente che funzioni per tutti (come analogia).

Ciò che manca a tutti questi documenti / articoli è una spiegazione del perché . Perché non puoi avere solo una funzione di attivazione che funziona in tutti i casi in modo ottimale? Ciò consentirebbe agli ingegneri di non dover armeggiare con ogni nuovo set di dati e rete neurale, ma creano semplicemente una rete neurale generalizzata e funziona bene per tutte le attività comuni a cui vengono applicate le reti neurali di oggi e di domani. Se qualcuno ne trova uno più ottimale, allora sarebbe utile, ma fino a quando non viene trovato quello ottimale successivo, perché non puoi usare solo una funzione di attivazione della rete neurale per tutte le situazioni? Mi manca questa informazione chiave dalle mie letture attuali.

Quali sono alcuni esempi del motivo per cui non è possibile avere una funzione di attivazione della chiave di volta?

Risposte

3 D.W. Aug 20 2020 at 03:58

Quelli sono vecchi articoli. Armeggiare con le funzioni di attivazione probabilmente non è il miglior uso del tempo, nella maggior parte dei casi. Oggi, la pratica ingegneristica standard è (al primo ordine di approssimazione): usa ReLU e non stressarti. ReLU è chiaramente superiore a sigmoide e tanh per la maggior parte dei casi, quindi se leggi articoli più vecchi parleranno di sigmoide e tanh, ma oggi ReLU li ha sostituiti. Ci sono nuove funzioni di attivazione più elaborate che in alcuni casi sono leggermente migliori di ReLU e in alcuni casi sono leggermente peggiori, ma la versione breve è che ReLU è abbastanza buono e non preoccuparti per gli altri in questa fase del tuo apprendimento e conoscenza; usa ReLU e chiamalo un giorno.

Questa è una semplice semplificazione e ci sono assolutamente delle eccezioni, ma ti sto dando una regola pratica che sarà abbastanza ragionevole nella pratica.

Perché? La mia risposta principale è che dovrai abituarti al fatto che quando lavori con reti neurali, non conosciamo veramente la risposta alla maggior parte delle domande sul "perché". A volte abbiamo intuizioni e teorie, ma in fondo questa è una scienza empirica: non capiamo davvero perché le reti neurali funzionano bene. Ci sono documenti che danno qualche spiegazione del motivo per cui ReLU sembra fare meglio di sigmoide / tanh - in particolare, sigmoide / tanh soffrono di sfumature di fuga quando i loro input sono nelle code del sigmoide / tanh (poiché allora il loro output è esponenzialmente piccolo , quindi il gradiente è essenzialmente zero), quindi l'allenamento si blocca o procede molto lentamente, ma non aspettarti una grande teoria che ti dirà cosa fare. Invece, questa è in gran parte una scienza empirica e, se siamo fortunati, abbiamo esperimenti e teorie che ci aiutano a comprendere i dati empirici che vediamo.

Non vedo alcun motivo per aspettarmi che ci sia una singola funzione di attivazione ottimale per tutte le attività, quindi non mi preoccupo se ciò non è vero e non sento che abbiamo bisogno di una "ragione" per farlo essere falso.