J'ai lu ailleurs que le choix d'une fonction d'activation de couche cachée dans un NN devrait être basé sur ses besoins , c'est-à-dire que si vous avez besoin de valeurs dans la plage -1 à 1, utilisez tanh et utilisez sigmoid pour la plage 0 à 1.
Ma question est de savoir comment sait-on quels sont ses besoins ? Est-il basé sur la plage de la couche d'entrée, par exemple utiliser la fonction qui peut englober toute la plage de valeurs de la couche d'entrée, ou reflète en quelque sorte la distribution de la couche d'entrée (fonction gaussienne)? Ou le besoin / domaine est-il spécifique et son expérience / jugement est-il nécessaire pour faire ce choix? Ou est-ce simplement "utiliser ce qui donne la meilleure erreur de formation minimale validée de façon croisée?"
la source
1 + (1 / exp(-sum))
. Rendre le besoin très difficile à comprendre sans essayer les deux sur chaque ensemble de données. Le besoin tel que vous le décrivez ici est lié à la relation réelle apprise, c'est-à-dire qu'un ensemble de données binaires apprendra plus rapidement ou pas du tout compte tenu des différentes activations.Réponses:
LeCun en discute dans Efficient Backprop Section 4.4. La motivation est similaire à la motivation pour normaliser l'entrée à une moyenne nulle (section 4.3). Les sorties moyennes de la fonction d'activation tanh sont plus susceptibles d'être proches de zéro que la sigmoïde, dont la sortie moyenne doit être positive.
la source
Le besoin mentionné au premier paragraphe de la question concerne la fonction d'activation de la couche de sortie , plutôt que la fonction d'activation de la couche cachée. Avoir des sorties allant de 0 à 1 est pratique car cela signifie qu'elles peuvent représenter directement les probabilités. Cependant, IIRC, un réseau avec des fonctions d'activation de la couche de sortie tanh peut être transformé de manière triviale en un réseau avec une fonction d'activation de la couche de sortie logistique, donc cela n'a pas vraiment beaucoup d'importance dans la pratique.
IIRC la raison d'utiliser tanh plutôt que la fonction d'activation logistique dans les unités cachées, qui est que le changement apporté à un poids en utilisant la rétropropagation dépend à la fois de la sortie du neurone de la couche cachée et du dérivé de la fonction d'activation, donc en utilisant l'activation logistique fonction, vous pouvez avoir à la fois aller à zéro en même temps, ce qui peut entraîner le gel de l'unité de couche cachée.
En bref, utilisez tanh pour les fonctions d'activation de la couche cachée, choisissez la fonction d'activation de la couche de sortie pour appliquer les contraintes souhaitées sur la sortie (choix courants: linéaire - pas de contraintes, logistique - la sortie se situe entre 0 et 1 et exponentielle - la sortie strictement positive).
la source
Le concept général pour choisir sigmoïde pour votre but est de choisir celui selon la règle, vos valeurs de sortie sont dans la plage de points, rend la dérivée seconde de la fonction sigmoïde maximale.
la source