tanh vs sigmoid dans le réseau neuronal

16

Je m'excuse à l'avance pour le fait que j'arrive toujours à ce sujet. J'essaie de comprendre les avantages et les inconvénients de l'utilisation de tanh (carte -1 à 1) par rapport à sigmoïde (carte 0 à 1) pour ma fonction d'activation des neurones. D'après ma lecture, cela ressemblait à une chose mineure avec des différences marginales. Dans la pratique pour mes problèmes, je trouve que le sigmoïde est plus facile à entraîner et étrangement, le sigmoïde semble mieux trouver une solution générale. J'entends par là que lorsque la version sigmoïde est terminée, elle fonctionne bien sur l'ensemble de données de référence (non formé), où la version tanh semble être en mesure d'obtenir les bonnes réponses sur les données de formation tout en faisant mal sur la référence. C'est pour la même architecture de réseau.

Une intuition que j'ai est qu'avec le sigmoïde, il est plus facile pour un neurone de s'éteindre presque complètement, ne fournissant ainsi aucune entrée aux couches suivantes. Le tanh a plus de mal ici car il doit annuler parfaitement ses entrées, sinon il donne toujours une valeur à la couche suivante. Peut-être que cette intuition est fausse.

Long courrier. En fin de compte, quel est le métier, et cela devrait-il faire une grande différence?

Mastiff
la source

Réponses:

23

Dans le livre "Neural Networks: A Comprehensive Foundation" de Symon Haykin, il y a l'explication suivante dont je cite:

Pour que le temps d'apprentissage soit minimisé, l'utilisation d'entrées moyennes non nulles doit être évitée. Maintenant, en ce qui concerne le vecteur de signal appliqué à un neurone dans la première couche cachée d'un perceptron multicouche, il est facile de supprimer la moyenne de chaque élément de x avant son application au réseau. Mais qu'en est-il des signaux appliqués aux neurones dans les couches cachées et de sortie restantes du réseau? La réponse à cette question réside dans le type de fonction d'activation utilisée dans le réseau. Si la fonction d'activation n'est pas symétrique, comme dans le cas de la fonction sigmoïde, la sortie de chaque neurone est limitée à l'intervalle [ 0 , 1 ] . Un tel choix introduit une source de biais systématiquexx[0,1]pour les neurones situés au-delà de la première couche du réseau. Pour surmonter ce problème, nous devons utiliser une fonction d'activation antisymétrique telle que la fonction tangente hyperbolique. Avec ce dernier choix, la sortie de chaque neurone peut prendre à la fois des valeurs positives et négatives dans l'intervalle , auquel cas il est probable que sa moyenne soit nulle. Si la connectivité réseau est importante, l'apprentissage par rétropropagation avec des fonctions d'activation antisymétriques peut produire une convergence plus rapide qu'un processus similaire avec des fonctions d'activation non symétriques, pour lequel il existe également des preuves empiriques (LeCun et al.1991).[1,1]

La référence citée est:

  • Y. LeCun, I. Kanter et SASolla: "Propriétés du second ordre des surfaces d'erreur: temps d'apprentissage et généralisation", Advances in Neural Information Processing Systems, vol. 3, p. 918-924, 1991.

Une autre référence intéressante est la suivante:

  • Y. LeCun, L. Bottou, G. Orr et K. Muller: " Efficient BackProp ", dans Orr, G. et Muller K. (Eds), Neural Networks: Tricks of the trade, Springer, 1998
tiagotvv
la source
Les neurones ReLU semblent fonctionner assez bien malgré leur biais. Avez-vous des réflexions à ce sujet?
Ark-kun
@ Ark-kun, je ne connais pas grand-chose aux neurones ReLU mais je peux vous renvoyer à cet article où les auteurs expliquent les avantages d'une telle fonction d'activation. X. Glorot, A. Bordes et Y. Bengio "Réseaux de neurones à redresseur clairsemé profond AISTATS 2011. jmlr.org/proceedings/papers/v15/glorot11a/glorot11a.pdf
tiagotvv
1

Ces deux fonctions d'activation sont très similaires, mais sont décalées. Mon réseau d'origine n'avait pas de termes biaisés. Depuis l'ajout de biais, tout est beaucoup plus stable. D'après mon expérience, je dirais que l'un ou l'autre de ces éléments peut mieux fonctionner pour une application spécifique pour des raisons complexes, peut-être inconnaissables, mais la bonne approche consiste à inclure des termes de biais afin que la dépendance à l'égard du décalage d'activation puisse être diminuée ou éliminée.

Mastiff
la source
0

tanh les activations aux nœuds de sortie ne fonctionnent pas avec la perte d'entropie croisée (binaire):

L=-1nje(yjeJournal(pje)+(1-yje)Journal(1-pje))

yje est la valeur cible pour l'échantillon je et pje est la sortie du réseau pour l'échantillon je.

Si pje est la sortie d'un tanhfonction vous finissez par prendre des logarithmes de valeurs négatives. Les fonctions d'activation sigmoïde à la sortie sont donc un meilleur choix pour ces cas.

Andre Holzner
la source
Vous pouvez cependant les mettre à l'échelle. tanh (X) -1 partage le dérivé, et n'a pas le problème des logs négatifs
Pablo Arnau González