Choix de la fonction d'activation cachée du réseau neuronal

14

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?"

babelproofreader
la source
3
Cet argument est bs car (tanh + 1) / 2 est également en 0-1, sans compter que "sigmoïde" est un terme si vague qu'il couvre assez souvent tanh.
Il convient probablement de mentionner que tout ensemble de données peut être normalisé à 0-> 1 et conçu pour utiliser une activation sigmoïde 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.
Adrian Seeley

Réponses:

12

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.

user1149913
la source
Une lecture très informative!
babelproofreader
6

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).

Dikran Marsupial
la source
Je ne reçois pas le "... les deux doivent aller à zéro ...". Je vois que la sortie pourrait être nulle, mais comment est-il possible que la dérivée de la fonction logistique soit nulle comme non.
erogol
il ne va pas exactement à zéro, pour la fonction logistique, il devient juste très petit. Pour la fonction tanh, la dérivée est à son maximum lorsque la sortie est nulle et la sortie à son maximum lorsque la dérivée est la plus petite. Le document original a été écrit à la fin des années 80, je vais voir si je me souviens des détails.
Dikran Marsupial
2
Je ne trouve pas l'article original, mais certains articles du livre "Neural Networks - Tricks of the Trade" suggèrent que tanh est meilleur dans les couches cachées car les réseaux fonctionnent mieux si les activations des couches cachées sont centrées (c.-à-d. La moyenne zéro ).
Dikran Marsupial
2

1.7159×tanh(X×(2/3))-1+1[-1,5,+1,5]

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.

erogol
la source