Non capisco perché una funzione sigmoide sia vista come più utile (per reti neurali) di una funzione a gradino ... sperando che qualcuno possa spiegarlo per me. Grazie in anticipo.Funzione Step contro Funzione sigmoide
risposta
Il (Heaviside) step function è in genere utile solo all'interno di single-layer perceptrons, un tipo iniziale di reti neurali che può essere utilizzato per la classificazione nei casi in cui i dati di input sono linearly separable.
Tuttavia, multi-layer neural networks or multi-layer perceptrons sono di maggiore interesse in quanto sono approssimatori di funzione generale e sono in grado di distinguere i dati che non sono linearmente separabili.
I percettori multistrato vengono addestrati utilizzando backpropapagation. Un requisito per il backpropagation è una funzione di attivazione differentiable. Questo perché backpropagation utilizza gradient descent su questa funzione per aggiornare i pesi della rete.
La funzione gradino di Heaviside non è derivabile in x = 0 e la sua derivata è altrove. Ciò significa che la discesa del gradiente non sarà in grado di fare progressi nell'aggiornamento dei pesi e la backpropagation fallirà.
Il sigmoid or logistic function non presenta questa mancanza e questo spiega la sua utilità come funzione di attivazione nel campo delle reti neurali.
Dipende dal problema che si sta trattando. In caso di semplice classificazione binaria, una funzione di passaggio è appropriata. I sigmoidi possono essere utili quando si costruiscono reti biologicamente più realistiche introducendo rumore o incertezza. Un altro uso, ma decisamente diverso, dei sigmoidi è per la continuazione numerica, cioè quando si eseguono analisi di biforcazione rispetto ad alcuni parametri nel modello. La continuazione numerica è più semplice con sistemi fluidi (e molto difficile con quelli non uniformi).
Penso che il caso più comune per l'attivazione sigmoide sia semplicemente la regressione. – runDOSrun