Réseau neuronal simplifié partie 2 : Les types de réseaux
Dans mon dernier article, j’ai brièvement présenté les réseaux de neurones et la façon dont ils prennent des décisions. Mais le sujet est évidemment assez complexe et j’ai utilisé un réseau de base comme exemple. Dans ce deuxième article de ma série sur les réseaux de neurones, je vais vous montrer les principaux types de réseau qui existent. Le but n’est pas de vous faire comprendre mais, je l’espère, de vous émerveiller devant la beauté de certains de ces concepts.
Réseau de neurones à propagation avant
La forme la plus simple de réseaux de neurones que j’ai présentée dans le dernier article est appelée réseaux de neurones à propagation avant. Ce type de réseau est très général, il reçoit des nombres et renvoie d’autres nombres. J’ai expliqué leur fonctionnement interne dans cet article.
Ces réseaux peuvent résoudre un grand nombre de problèmes, mais cette flexibilité les rend lourds. Cela signifie une plus grande utilisation de la mémoire et plus de temps pour les entraîner. En effet, ces réseaux ont tendance à comprendre beaucoup plus de paramètres que les autres type.
Réseaux de neurones à convolution
Les réseaux neuronaux convolutifs (CNN) sont conçus pour traiter des images. Pour ce faire, les CNN tirent parti de la structure de l’image : les pixels les plus proches sont plus apparentés. Cette relation entre les pixels est saisie grâce à l’utilisation de couches dites de convolution et de pooling. Cette hypothèse sur la structure d’entrée réduit considérablement le nombre de paramètres que le réseau doit apprendre, ce qui le rend plus facile à former et plus léger en mémoire.
Les couches de convolution modélisent la relation entre les pixels proches et les couches de pooling réduisent la taille de l’image. Le pooling réduit essentiellement la distance en pixels entre les objets de l’image. Ainsi, chaque opération de pooling permet à l’opération de convolution suivante de regarder plus loin. Aujourd’hui, les CNNs sont utilisés pour des tâches telles que la reconnaissance faciale, les voitures automatique, les diagnostics médicaux, et bien plus encore.
Réseaux de neurones récurrents
Si vous souhaitez traiter des données séquentielles (son ou texte), vous pouvez utiliser des réseaux neuronaux récurrents (RNN). Ces réseaux adoptent une autre contrainte : les données sont séquentielles, c’est-à-dire que chaque élément est affecté par celui qui le précède. Dans les RNN, l’entrée n’est pas alimentée en une seule fois, mais élément par élément, le réseau se souvient des éléments passés pour prendre les décisions présentes. Donc, les RNN peuvent traiter des données de taille indéfinie, ce qui n’est pas le cas pour la plupart des autres architectures.
Le problème est que les RNN ont une mémoire de courte. C’est une conséquence de la façon dont les mathématiques fonctionnent. Pour remédier à ce problème, une version améliorée des RNN a été inventée : LSTMs (Long-short-term memory). Les LSTMs stocke leur mémoire différemment et apprennent quand se souvenir et quand oublier. Une autre amélioration est venue sous la forme de LSTMs bidirectionnels ou Bi-LSTMs, qui utilisent deux LSTMs qui fonctionnent dans les deux sens. Les LSTM et les RNN classiques ne regardent que le passé, tandis que les BiLSTM regardent aussi vers l’avenir.
Ces types de réseaux neuronaux sont utilisés de diverses manières. Lorsqu’il s’agit de données textuelles, ils peuvent traduire entre les langues et engager une conversation. Lorsqu’il s’agit de sons, ils peuvent créer des voix humaines ou de la musique.
Système de réseaux
Les réseaux neuronaux antagonistes générateurs (GAN) sont des systèmes de deux réseaux en compétition. Le générateur est chargé de produire des données crédibles, par exemple des visages humains, et le discriminateur est formé pour différencier les images réelles de celles produites par le premier réseau.
Ainsi, le premier réseau tente de tromper le second et le second tente de déjouer le premier. Cette compétition stimule le processus d’apprentissage et les résultats sont étonnants. Nous utilisons les GAN lorsque nous souhaitons générer des données artificielles telles que des images, de la voix et du texte, mais elles peuvent également être utilisées à d’autres fins.
Les GAN ne sont qu’une forme de systèmes de réseaux. Il existe de nombreuses autres architectures dans lesquelles deux ou plusieurs réseaux travaillent en coopération ou en compétition pour apprendre à résoudre une tâche. Ces systèmes de réseaux offrent d’incroyables possibilités pour créer des interactions entre les réseaux.
Autres types de réseaux
Les transformers sont la nouvelle architecture révolutionnaire qui fait concurrence aux (bi-)LSTM et aux CNN. Les transformers utilisent le mécanisme dit d’attention ; ils apprennent où ils doivent prêter attention dans une image, un son ou un texte afin de prendre une décision. Open AI a récemment publié GPT-3, un transformer avec 175 milliards de paramètres qui a nécessité environ 4 millions de dollars pour l’entraîner. Il a été alimenté par plus de 40 TB de données textuelles anglaises brut et a appris ,sans supervision, la grammaire, la syntaxe, l’orthographe, la relation sémantique entre les mots et bien plus encore.
Les auto-encoders sont un autre type impressionnant de réseaux de neurones. Leur caractéristique principale est qu’ils ont la forme d’un sablier, plus mince au milieu qu’aux extrémités. Ils sont entraîné pour reproduire exactement ce qui a été entré. Cela peut sembler inutile, mais c’est en fait extrêmement important. Comme les données sont obligées de passer par un espace de dimension inférieure pour sortir à l’autre bout, le réseau apprend à compresser les données efficacement.
Ainsi, ces réseaux peuvent apprendre à compresser des données avec peu de perte de qualité. L’inconvénient est que si vous donnez à l’un de ces réseaux des données qu’il n’a jamais vues, il fera un travail beaucoup moins bon. Mais si l’on souhaite compresser un film, par exemple, ces réseaux peuvent certainement le compresser bien mieux que n’importe quel autre algorithme de compression. C’est parce qu’ils sont contraints d’apprendre à compresser ce film et aucun autre, ce qui conduit à une bien meilleure compression. Netflix les utilise pour améliorer la qualité vidéo pour les connexions Internet lentes.
Dans cet article, je vous ai brièvement décrit les principaux types d’architectures utilisés dans les réseaux de neurones. Chacune a été développée pour traiter un type spécifique de données, une tâche ou pour améliorer l’architecture précédente. J’espère que cette brève introduction dans le monde des réseaux de neurones a été intéressant. Cette technologie est vraiment incroyable et va révolutionner le monde d’une manière que nous ne comprenons pas encore.