Pourquoi utiliser tanh pour la fonction d'activation de MLP?
Im personnellement étudier les théories de réseau de neurones et ai quelques questions.
Dans de nombreux livres et références, pour la fonction d'activation de couche cachée, hyper-tangente fonctions ont été utilisées.
Livres est venu avec vraiment simple raison que des combinaisons linéaires de tanh fonctions peuvent décrire presque tous de la forme des fonctions d'erreur donné.
Mais, il est venu une question.
- Est-ce une raison réelle pourquoi la fonction tanh est-il utilisé?
- Si alors, est-ce la seule raison pourquoi la fonction tanh est-il utilisé?
- si alors, est fonction tanh la seule fonction qui peut le faire?
- si non, quelle est la vraie raison?..
J'ai en stock ici continue à penser... merci de m'aider à sortir de ce mental(?...) piège!
source d'informationauteur forsythia
Vous devez vous connecter pour publier un commentaire.
En vérité, les deux tanh et des fonctions logistiques peuvent être utilisés. L'idée est que vous pouvez mapper n'importe quel nombre réel ( [-Inf, Inf] ) à un nombre entre [-1 1] ou [0 1] pour la tanh et de la logistique, respectivement. De cette façon, il peut être démontré qu'une combinaison de ces fonctions peut approximer toute fonction non-linéaire.
Maintenant en ce qui concerne la préférence pour la tanh plus de la fonction logistique est que le premier est symétrique concernant l'0 tandis que le second ne l'est pas. Cela fait la deuxième plus sujettes à la saturation des couches ultérieures, de rendre l'exercice plus difficile.
La plupart du temps tanh est rapidement converger que sigmoïde et de la fonction logistique, et effectue une meilleure précision [1]. Cependant, récemment, rectifié unité linéaire (ReLU) est proposé par Hinton [2] qui montre ReLU le train de six fois plus vite que les tanh [3] pour atteindre même l'erreur d'entraînement. Et vous pouvez vous référer à [4] pour voir quels avantages ReLU fournit.
Accordining à environ 2 ans d'apprentissage de la machine de l'expérience. Je voudrais partager quelques-stratrgies le plus de papier utilisé et de mon expérience à propos de la vision par ordinateur.
Normalisation d'entrée est très important
Normalisation pourrait bien obtenir de meilleures performances et converge rapidement. La plupart du temps, nous allons soustraire la valeur moyenne de contribuer moyenne à zéro, afin d'éviter le poids de changement mêmes directions, de sorte que convergent lentement [5] .Récemment, google indique également que le phénomène interne comme covariable changement lors de la formation de l'apprentissage profond, et ils ont proposé à la normalisation de lots [6] afin de normaliser chaque vecteur ayant de moyenne nulle et de variance unité.
Plus de données de plus de précision
Plus de données sur la formation pourrait generize fonctionnalité de l'espace de bien et d'éviter le surajustement. En vision par ordinateur si les données d'entraînement n'est pas assez, plus de servir de compétence afin d'augmenter la formation d'un dataset de données de l'argumentation et de synthèse des données d'entraînement.
Le choix d'une bonne fonction d'activation permet la formation de mieux et de manière efficace.
ReLU non linéaire acitivation mieux travaillé et effectué de l'état de l'art des résultats dans l'apprentissage en profondeur et MLP. En outre, il a quelques avantages, par exemple simple de mise en œuvre et le moins cher de calcul dans le back-propagation efficace de former plus de neurones profonds net. Cependant, ReLU obtiendrez zéro dégradé et ne pas former lorsque l'unité est égale à zéro actif. Par conséquent, certains modifié ReLUs sont proposées, par exemple, qui Fuit ReLU, et le Bruit ReLU, et la méthode la plus connue est PReLU [7] proposé par Microsoft, qui a généralisé la traditionnelle recitifed unité.
Autres
Pour ajouter à la déjà répondrela préférence pour la symétrie autour de 0 n'est pas seulement une question d'esthétique. Un excellent texte par LeCun et al "Efficace BackProp" montre en détails pourquoi il est une bonne idée que l'entrée, la sortie et les calques masqués ont des valeurs moyennes de 0 et l'écart-type de 1.
Mise à jour dans le but d'apaiser les commentateurs: purement basée sur l'observation, plutôt que de la théorie qui est visé ci-dessus, Tanh et ReLU fonctions d'activation sont plus performants que sigmoïde. Sigmoïde semble également plus sujettes à des optima locaux, ou moins étendu de "ligne droite". Par exemple, essayez de limiter le nombre de fonctionnalités à force de logique dans les nœuds de réseau dans XOR et sigmoïde réussit rarement alors que Tanh et ReLU avoir plus de succès.
Tanh semble peut-être plus lent que ReLU, pour de nombreux exemples donnés, mais produit plus naturelle qui s'adapte pour les données en utilisant uniquement linéaire des entrées, comme vous le décrivez. Pour exemple d'un cercle vs un carré/hexagone chose.
http://playground.tensorflow.org/ <- ce site est une excellente visualisation des fonctions d'activation et d'autres paramètres de réseau de neurones. Pas une réponse directe à votre question, mais l'outil "fournit de l'intuition" comme Andrew Ng dirais.
En théorie j'en accord avec les réponses ci-dessus. Dans mon expérience, certains problèmes ont une préférence pour sigmoïde plutôt que tanh, probablement en raison de la nature de ces problèmes (car il y a des effets non-linéaires, il est difficile de comprendre pourquoi).
Donné un problème, je suis généralement d'optimiser les réseaux à l'aide d'un algorithme génétique. L'activation de la fonction de chaque élément de la population est choisi randonm entre un ensemble de possibilités (sigmoïde, tanh, linéaire, ...). Pour 30% des problèmes de classification, le meilleur élément trouvé par l'algorithme génétique a sigmoïde comme fonction d'activation.
Beaucoup de réponses ici de décrire pourquoi tanh (c'est à dire (1 - e^2x) /(1 + e^2x)) est préférable à la sigmoïde/fonction logistique (1 /(1 + e^-x)), mais il faut noter qu'il existe une bonne raison pour laquelle ce sont les deux plus courantes des solutions de rechange qui doivent être compris, c'est que lors de la formation d'une SCM en utilisant le dos de propagation de l'algorithme, l'algorithme nécessite que la valeur de la dérivée de la fonction d'activation au moment de l'activation de chaque nœud dans le réseau. Si cela peut généralement être calculé pour plus plausible fonctions d'activation (à l'exception de ceux présentant des discontinuités, ce qui est un peu un problème pour les personnes), faisant souvent nécessite des calculs et/ou stocker des données supplémentaires (par exemple, la valeur de l'entrée à la fonction d'activation, ce qui n'est pas requis après la sortie de chaque nœud est calculé). Tanh et de la fonction logistique, cependant, les deux ont très simple et efficace pour les calculs de leurs dérivés qui peuvent être calculés à partir de la sortie des fonctions; c'est à dire si le nœud est la somme pondérée des entrées est v et sa sortie est u, nous avons besoin de savoir du/dv, qui peut être calculée à partir de u plutôt que les plus traditionnels v: pour tanh, il est 1 - u^2 et de la fonction logistique, il est u * (1 - u). Ce fait rend ces deux fonctions plus efficace à utiliser dans le cas d'une propagation de réseau que la plupart des alternatives, donc une raison impérieuse serait normalement requis pour y déroger.