Quelle est la différence entre les neurones hyperboliques tangents et sigmoïdes?

8

Deux fonctions d'activation courantes utilisées dans l'apprentissage en profondeur sont la fonction tangente hyperbolique et la fonction d'activation sigmoïde. Je comprends que la tangente hyperbolique est juste une mise à l'échelle et une traduction de la fonction sigmoïde:

tanh(z)=2σ(z)-1.

Existe-t-il une différence significative entre ces deux fonctions d'activation, et en particulier, quand est-ce que l'une est préférable à l'autre ?

Je me rends compte que dans certains cas (comme lors de l’estimation des probabilités), des sorties [0,1] sont plus pratiques que les sorties allant de [-1,1]. Je veux savoir s'il existe des différences autres que la commodité qui distinguent les deux fonctions d'activation.

bpachev
la source

Réponses:

3

Je ne pense pas qu'il soit logique de décider des fonctions d'activation en fonction des propriétés souhaitées de la sortie; vous pouvez facilement insérer une étape d'étalonnage qui mappe le «score du réseau neuronal» sur les unités que vous souhaitez réellement utiliser (dollars, probabilité, etc.).

Je pense donc que la préférence entre les différentes fonctions d'activation se résume principalement aux différentes propriétés de ces fonctions d'activation (comme si elles sont ou non continuellement différenciables). Parce qu'il n'y a qu'une transformation linéaire entre les deux, je pense que cela signifie qu'il n'y a pas de différence significative entre eux.

Matthew Graves
la source
2

Sigmoïde> Tangente hyperbolique:

Comme vous l'avez mentionné, l'application de Sigmoid pourrait être plus pratique que la tangente hyperbolique dans les cas où nous avons besoin d'une valeur de probabilité en sortie (comme le dit @ matthew-graves, nous pouvons résoudre ce problème avec une simple étape de cartographie / étalonnage). Dans d'autres couches, cela n'a aucun sens.

Tangente hyperbolique> Sigmoïde:

La tangente hyperbolique possède une propriété appelée "approximation de l'identité près de l'origine" qui signifie tanh(0)=0, tanh(0)=1, et tanh(z) est continu autour z=0 (par opposition à σ(0)=0,5 et σ(0)=0,25). Cette fonctionnalité (qui existe également dans de nombreuses autres fonctions d'activation telles que l' identité , l' arctan et la sinusoïde ) permet au réseau d'apprendre efficacement même lorsque ses poids sont initialisés avec de petites valeurs. Dans d'autres cas (par exemple Sigmoid et ReLU ), ces petites valeurs initiales peuvent être problématiques.

Lectures complémentaires:

Initialisation de marche aléatoire pour la formation de réseaux de feedforward très profonds

Borhan Kazimipour
la source