Allumer les neurones: tout sur les fonctions d’activation
Tout ce que vous devez savoir sur les fonctions d’activation du Deep Learning!
« Notre intelligence est ce qui nous rend humains, et l’IA est une extension de cette qualité. »
–
WEn étudiant le deep learning, il est important de comprendre les concepts sous-jacents des réseaux de neurones et de leurs composants. Il sera plus facile de coder le modèle après avoir compris ces concepts. Même si vous avez une certaine connaissance de l’apprentissage en profondeur et avez formé quelques modèles, cet article sera utile. Dans mon, tout en décrivant les réseaux de neurones profonds, j’ai mentionné «fonction d’activation« À plusieurs reprises, mais je n’ai pas expliqué le concept de fonctions d’activation en détail. Aujourd’hui, nous allons en discuter! Si vous avez un dilemme, quelle fonction d’activation dois-je utiliser après cette couche? Quels sont les avantages et les inconvénients de celui-ci? Faut-il utiliser une fonction d’activation? Quelle est la logique derrière l’utilisation d’une fonction d’activation ‘x’ ici?
J’essaierai de répondre à toutes ces questions ci-dessous. Néanmoins, si vous avez un autre doute concernant la fonction d’activation, postez-les ci-dessous dans la section des commentaires.
Décrivant brièvement, une fonction d’activation est une fonction mathématique qui aide un réseau neuronal à apprendre des schémas complexes dans les données.
Le titre de cet article, «Mettre le feu aux neurones» est né d’une analogie entre les neurones du cerveau humain et les neurones d’un réseau de neurones. En comparant avec un modèle basé sur les neurones qui est dans notre cerveau, la fonction d’activation est à la fin décisive ce qui doit être envoyé au prochain neurone. C’est exactement ce que fait également une fonction d’activation dans un ANN. Il prend le signal de sortie de la cellule précédente et le convertit en une forme qui peut être prise comme entrée dans la cellule suivante. Le terme «activation» est utilisé parce qu’il active en quelque sorte le neurone, tout comme lorsque vous touchez accidentellement une casserole chaude et que les neurones se mettent en marche et envoient le signal à votre cerveau, et ainsi vous pouvez réagir rapidement.
Bien que je ne trouve pas cette analogie très agréable parce que même les neuroscientifiques ne peuvent pas vraiment parler du fonctionnement des neurones dans le cerveau humain. Mais de nombreux livres et cours d’apprentissage approfondi donnent cette analogie, alors j’ai pensé que peut-être je la partage ici aussi.
Tout ce que vous devez savoir, les fonctions d’activation sont différents types de fonctions mathématiques qui sont principalement utilisées pour apprendre des modèles complexes dans les données. Bien que différents types d’activations aient d’autres utilisations différentes, nous en discuterons dans une minute.
Les fonctions d’activation apprennent des motifs complexes en ajoutant une non-linéarité. Les fonctions d’activation linéaires sont rarement utilisées (uniquement dans les problèmes de régression), mais nous utilisons principalement des fonctions d’activation non linéaires en apprentissage profond.
Jetez un oeil dans l’image ci-dessous:
Le premier graphique est une classification linéaire, mais cette distribution de données est trop belle pour être vraie dans le deep learning. Rappelez-vous quand je vous ai parlé des données structurées et non structurées. Ce graphique semble avoir distribué des données structurées.
Le deuxième graphique montre une classification non linéaire, mais il convient parfaitement! (J’en parlerai plus tard).
Mais le troisième inséparable ne peut pas être classé avec précision avec des fonctions d’activation linéaires. Nous avons donc besoin de fonctions d’activation pour ajouter de la non-linéarité à nos données. Il a également une preuve mathématique qui conclut la même chose, mais j’ai pensé que cette comparaison de graphiques sera plus facile à comprendre au début.
Certaines des propriétés générales des fonctions d’activation sont:
- Différenciable: Nous devons différencier tous les neurones lors de la rétropropagation pour optimiser la fonction de perte. C’est pourquoi toutes les fonctions d’activation sont différenciables.
- Frais de calcul: Les fonctions d’activation sont appliquées après chaque couche et doivent être calculées des millions de fois dans les réseaux profonds. Par conséquent, ils devraient être peu coûteux à calculer.
- Problème de gradient en voie de disparition: Certaines fonctions d’activation posent le problème du gradient de fuite. Nous en discuterons plus tard en détail lorsque nous discuterons d’autres problèmes dans les modèles d’apprentissage en profondeur. Pour une compréhension intuitive, vous pouvez penser qu’au fur et à mesure que nous contenons le réseau neuronal, au lieu de faire converger la perte vers sa valeur optimale, les gradients se déplacent vers zéro. Cela fait que les gradients sont si petits qu’il faut beaucoup de temps pour converger vers l’optimum global, sinon il ne peut même pas atteindre ce point.
-
Monotonicité: La plupart des fonctions d’activation sont de nature monotone, c’est-à-dire qu’elles sont entièrement non décroissantes ou entièrement non croissantes.
Remarque: les fonctions d’activation sont monotones et non leurs dérivés.
Si vous n’êtes pas familier avec le calcul, les propriétés ci-dessus peuvent être difficiles à comprendre.
Mais……
Les propriétés des fonctions d’activation importent peu. Il vous suffit de savoir comment utiliser les fonctions d’activation et ce qu’elles font.
Parlons maintenant des différents types de fonctions d’activation:
1. Unité linéaire rectifiée (ReLU):
L’unité linéaire rectifiée ou simplement ReLU est l’une des fonctions d’activation les plus utilisées. Il émet simplement l’entrée telle qu’elle est, s’il s’agit d’un nombre positif et s’il s’agit d’un nombre négatif, il émet zéro.
Mathématiquement:
Où utiliser ReLU:
Il est principalement utilisé dans toutes les couches du réseau neuronal au lieu de la dernière (pour les problèmes de classification). Alors commencez à construire votre réseau neuronal avec cette fonction d’activation.
2. Leaky ReLU:
Cette fonction d’activation génère la même valeur que les entrées pour les entrées positives, tout comme la fonction d’activation ReLU. Mais là où il diffère de ReLU, ce sont les valeurs d’entrée négatives. Au lieu de retourner zéro pour tous les nombres négatifs, il donne un petit nombre en sortie. Ce petit nombre est généralement 0,01 fois la valeur d’entrée.
Quand utiliser ReLU qui fuit:
Leaky ReLU est utilisé lorsque le problème «mourant ReLU» se produit. Le Dying ReLU, parfois appelé problème de neurone mort, est un état où la fonction d’activation ReLU génère le même nombre à chaque fois (en particulier zéro). Cela se produit lorsque vos données ou biais ont un grand nombre de nombres négatifs. ReLU les délivre donc à zéro. Dans ce cas, il est préférable d’utiliser ReLU qui fuit.
3. Sigmoïde:
La fonction d’activation sigmoïde traduit l’entrée allant de (-inf, + inf) à [0,1].
Quand utiliser Sigmoid:
Remarquez dans le graphique ci-dessus, comment la sortie de la fonction varie entre 0 et 1. Cette spécialité de la fonction sigmoïde la rend unique pour les problèmes de classification binaire. En classification binaire, nous classons entre 2 classes. Par exemple, problème de chat et de non-chat. Après avoir vu une image, votre machine doit indiquer si l’image contient du chat ou non. Étant donné que ces types de problèmes n’ont que 2 classes, ils sont codés à chaud, c’est-à-dire codés 1 (pour chat) et 0 (pour non-chat). Et la dernière couche du réseau neuronal profond, qui prédit la sortie, se voit attribuer la fonction sigmoïde qui donne un nombre compris entre 0 et 1 qui aide à prédire la sortie.
Une autre fonction d’activation Softmax est utilisé pour les problèmes de classification multi-classes. Softmax est également appliqué dans la dernière couche du réseau neuronal, mais le nombre de neurones dans la dernière couche doit être égal au nombre de classes. Softmax donne la distribution de probabilité de toutes les classes et la classe avec la probabilité la plus élevée sera prédite.
4. Tanh:
La fonction tanh est définie comme suit:
- Il est de nature non linéaire, nous pouvons donc empiler des couches
- Il est lié à la plage (-1, 1)
- Le gradient est plus fort pour tanh que sigmoïde (les dérivés sont plus raides)
- Comme sigmoïde, tanh a également un problème de gradient qui disparaît.
En pratique, l’optimisation est plus facile dans cette méthode, donc en pratique, elle est toujours préférée à la fonction Sigmoïde. Et il est également courant d’utiliser la fonction tanh dans un modèle de transition d’état à état (réseaux de neurones récurrents).
L’activation décrite ci-dessus fonctionne comme celles qui sont principalement utilisées dans les projets d’apprentissage en profondeur. Il existe de nombreuses autres fonctions d’activation avec différentes utilisations et propriétés.
Si vous souhaitez en savoir plus sur les différentes fonctions d’activation, jetez un œil à ceci:
Continuez à apprendre par vous-même car il n’est pas possible de tout expliquer dans les articles. Ces articles vous guident et vous aident à démarrer, mais vous devez travailler et étudier par vous-même. Si vous avez une requête, n’hésitez pas à commenter vos requêtes.
Bon apprentissage!!!