Je choisis la fonction d'activation pour la couche de sortie en fonction de la sortie dont j'ai besoin et des propriétés de la fonction d'activation que je connais. Par exemple, je choisis la fonction sigmoïde lorsque je traite des probabilités, une ReLU lorsque je traite des valeurs positives et une fonction linéaire lorsque je traite des valeurs générales.
Dans les couches cachées, j'utilise un ReLU qui fuit pour éviter les neurones morts au lieu du ReLU et le tanh au lieu du sigmoïde. Bien sûr, je n'utilise pas de fonction linéaire dans les unités cachées.
Cependant, le choix pour eux dans la couche cachée est principalement dû à des essais et erreurs.
Existe-t-il une règle empirique indiquant quelle fonction d'activation est susceptible de fonctionner correctement dans certaines situations? Prenez le terme situations aussi général que possible: cela pourrait se référer à la profondeur de la couche, à la profondeur du NN, au nombre de neurones pour cette couche, à l'optimiseur que nous avons choisi, au nombre de caractéristiques d'entrée de cette couche, à l'application de ce NN, etc.
Dans sa réponse , cantordust fait référence à d'autres fonctions d'activation que je n'ai pas mentionnées, comme ELU et SELU. Ces informations sont plus que bienvenues. Cependant, plus je découvre de fonctions d'activation, plus je suis confus dans le choix de la fonction à utiliser dans les couches cachées. Et je ne pense pas que lancer une pièce soit un bon moyen de choisir une fonction d'activation.
Je ne sais pas sur quel type de réseaux de neurones vous travaillez. Mais il faut également considérer les fonctions d'activation de tanh lorsqu'il s'agit d'un réseau neuronal récurrent. La raison est d'éviter d'exploser les problèmes de gradient puisque la fonction tanh est limitée à la différence de la fonction RELU par exemple.
la source