C’est pourquoi il est probablement préférable d’utiliser PReLU, ELU ou d’autres activations qui ressemblent à celles de ReLU mais qui ne meurent pas à 0, mais tombent à quelque chose comme 0.1 * x lorsque x devient négatif pour continuer à apprendre. Il me semblait depuis longtemps que les ReLU sont une histoire comme le sigmoïde, bien que, pour une raison quelconque, les gens publient encore des articles avec ceux-ci. Pourquoi? Je ne sais pas.
Dmytro Mishkin et d’autres gars ont en fait testé un réseau comportant de nombreux types d’activation; vous devriez donc consulter leurs conclusions sur les performances de différentes fonctions d’activation et autres éléments.. Certaines fonctions, comme XOR, sont cependant mieux apprises avec Plain ReLU. Ne pensez à aucune substance neurale en termes de dogme, car les réseaux de neurones sont en constante évolution. Personne au monde ne les connaît et ne les comprend suffisamment pour dire la vérité divine. Personne. Essayez des choses, faites vos propres découvertes. Rappelez-vous que l'utilisation de ReLU elle-même est un développement très récent et que, depuis des décennies, tous les doctorants sur le terrain ont utilisé des fonctions d'activation trop compliquées dont nous ne pouvons que rire. Trop souvent, en savoir trop peut vous donner de mauvais résultats. Il est important de comprendre que les réseaux de neurones ne sont pas une science exacte. Rien en maths ne dit que les réseaux de neurones fonctionneront aussi bien qu’ils le font. C'est heuristique. Et donc c'est très malléable.
Pour votre information, même l'activation en valeur absolue donne de bons résultats sur certains problèmes, par exemple des problèmes de type XOR. Différentes fonctions d'activation sont mieux adaptées à différents objectifs. J'ai essayé Cifar-10 avec abs () et il semblait avoir de moins bonnes performances. Bien que je ne puisse pas dire que "c'est une fonction d'activation plus mauvaise pour la reconnaissance visuelle", parce que je ne suis pas sûr, par exemple, si ma pré-initialisation était optimale pour elle, etc. Le fait même qu'elle apprenait relativement bien m'a surpris.
En outre, dans la vraie vie, les «dérivés» que vous passez à l’arrière-plan ne doivent pas nécessairement correspondre aux dérivés mathématiques réels.
J'irais même jusqu'à dire que nous devrions interdire de les appeler "dérivés" et commencer à les appeler autrement, par exemple: error activation functions
ne pas fermer notre esprit aux possibilités de bricoler avec eux. Vous pouvez en fait, par exemple, utiliser l’activation ReLU, mais en fournissant un 0,1 ou quelque chose comme cela au lieu de 0 en tant que dérivé pour x <0. D'une certaine manière, vous avez alors un ReLU simple, mais les neurones ne peuvent pas "mourir de capacité d'adaptation". J'appelle cela NecroRelu, parce que c'est un ReLU qui ne peut pas mourir. Et dans certains cas (certainement pas dans la plupart des cas), cela fonctionne mieux que LeakyReLU ordinaire, qui a en fait 0,1 dérivé à x <0 et meilleur que ReLU habituel. Je ne pense pas que beaucoup d'autres aient étudié une telle fonction, cependant, ceci, ou quelque chose de similaire, pourrait en fait être une fonction d'activation généralement cool que personne ne considérait juste parce qu'ils étaient trop concentrés sur les mathématiques.
En ce qui concerne ce qui est généralement utilisé, pour la fonction d’activation tanH (x), il est habituel de passer 1 - x² au lieu de 1 - tanH (x) ² en tant que dérivé afin de calculer les choses plus rapidement.
De plus, rappelez-vous que ReLU n'est pas si "manifestement meilleur" que TanH, par exemple. TanH peut probablement être mieux dans certains cas. Juste, semble-t-il, pas en reconnaissance visuelle. Cependant, ELU, par exemple, possède un peu de douceur sigmoïde et constitue l'une des fonctions d'activation les plus connues pour la reconnaissance visuelle du moment. Je n'ai pas vraiment essayé, mais je parie que l'on peut configurer plusieurs groupes avec des fonctions d'activation différentes sur le même niveau de couche. Parce que différentes logiques sont mieux décrites avec différentes fonctions d'activation. Et parfois, vous avez probablement besoin de plusieurs types d’évaluations.
Notez qu’il est important d’avoir une initialisation qui correspond au type de votre fonction d’activation. Les ReLU qui fuient ont besoin d'un autre init que les ReLU simples, par exemple.
EDIT: En fait, le ReLU standard semble moins enclin à sur-équiper que ceux qui fuient avec des architectures modernes. Au moins en reconnaissance d'image. Il semble que si vous optez pour un filet de très haute précision avec une énorme charge de paramètres, il serait peut-être préférable de vous en tenir aux options simples ReLU vs leaky. Mais, bien sûr, testez tout cela par vous-même. Peut-être que certaines choses qui fuiront fonctionneront mieux si plus de régularisation est donnée.