Les réseaux de neurones artificiels (ANN) sont un outil couramment utilisé dans l’apprentissage en profondeur. Dans ce didacticiel, vous pouvez apprendre ce qu’ils sont, apprendre leur structure de base et coder un réseau de neurones simple avec un seul neurone. Lorsque vous concevez vos propres réseaux de neurones, vous devez prendre en compte un certain nombre de considérations. Cet article en décrira quelques-uns.
Disposition des couches réseau
Les réseaux de neurones sont rarement, voire jamais, aussi simples qu’un seul neurone. Par exemple, la majorité des réseaux de neurones ont au moins plusieurs couches. Vous aurez besoin de couches cachées, de couches de neurones artificiels entre les couches de neurones d’entrée et de sortie si les données doivent être séparées de manière non linéaire.
Vous voudrez peut-être considérer chaque neurone caché comme un classificateur linéaire. Le nombre de neurones dans la première couche cachée doit être égal au nombre de lignes que vous auriez besoin de dessiner pour classer vos données. Les couches cachées ultérieures et la couche de sortie relient les différents classificateurs linéaires.
Fonctions d’activation
Dans les réseaux de neurones, un fonction d’activation est une fonction qui détermine la sortie du neurone artificiel, en fonction d’entrées spécifiques. Dans mon tutoriel précédent, nous avons utilisé une fonction sigmoïde, qui a l’avantage de forcer les sorties à se situer dans une plage spécifique. Un autre avantage est qu’une fonction sigmoïde est monotone – en d’autres termes, l’ordre des valeurs des entrées est le même que l’ordre des valeurs des sorties. Un inconvénient des fonctions sigmoïdes est que, en particulier lorsque la courbe sigmoïde est relativement plate, l’apprentissage peut être lent.
Un autre type populaire de fonction d’activation est appelé le unité linéaire rectifiée (ReLU). La valeur de cette fonction est simplement 0 si X est inférieur à 0. Sinon, il est X. Les ReLU permettent un processus d’apprentissage plus rapide, même s’ils créent une distinction arbitraire entre les valeurs négatives et positives de X. Dans leurs avantages et leurs inconvénients, les fonctions d’activation tangente hyperbolique ou tanh ont tendance à être un juste milieu entre sigmoïde et ReLU.
Fonctions de perte
Perte est simplement l’erreur de prédiction du réseau de neurones, déterminée dans chaque pass-through. Idéalement, il devrait être minimisé. La fonction de perte, ou la fonction de perte par rapport à la sortie et à la valeur prédite, est utilisée pour mettre à jour les poids du réseau neuronal pour le prochain passage. Le calcul des nouveaux poids est basé en quelque sorte sur la pente, une fonction représentant la pente de la fonction de perte en chaque point. Différents types de fonctions de perte doivent être utilisés pour différents types de tâches de régression ou de classification, comme décrit plus en détail ici.
Règles d’optimisation
Un optimiseur est un algorithme ou une autre méthode qui mettra à jour les attributs du réseau de neurones, afin de minimiser les pertes. Par exemple, il peut tenir compte de l’historique des mises à jour du dégradé, plutôt que de mettre à jour uniquement le dégradé à partir d’un seul ensemble – ou grouper — d’échantillons de données. Il peut incorporer élan — en d’autres termes, la mise à jour la plus récente sera la moyenne pondérée de toutes les mises à jour précédentes, les poids les plus anciens diminuant de façon exponentielle.
Conclusion
Ce sont quelques-unes des nombreuses considérations que vous devrez prendre en compte lors du développement de votre modèle de réseau neuronal. Heureusement, bon nombre des fonctionnalités de réseau de neurones les plus courantes sont prises en charge par les principales bibliothèques d’apprentissage automatique, telles que TensorFlow et PyTorch. Ainsi, tant que vous ne faites rien de trop inhabituel, la mise en œuvre ne devrait pas être un problème.