Les réseaux de neurones (également appelés réseau de neurones artificiels ou ANN) sont des systèmes adaptatifs qui apprennent en utilisant des nœuds ou des neurones interconnectés au sein d'une construction en couches, semblable à celle d'un cerveau. Un réseau de neurones peut apprendre à partir de données ; il peut donc être entraîné à reconnaître des patterns, classer des données et prévoir des événements futurs. Un réseau de neurones décompose les entrées en couches d’abstraction. On peut l’entraîner, à l’aide de nombreux exemples, à reconnaître des motifs récurrents dans la parole ou les images, comme le ferait un cerveau humain. Le comportement d’un réseau de neurones est défini par la manière dont ses éléments individuels sont connectés et par la force (ou poids) de ces connexions. Ces poids sont ajustés automatiquement pendant l’apprentissage conformément à une règle d’apprentissage spécifiée, jusqu’à ce que le réseau de neurones artificiels effectue correctement la tâche souhaitée.
Pourquoi utiliser les réseaux de neurones ?
Les réseaux de neurones sont un type de Machine Learning qui s’inspirent de la manière dont les neurones du cerveau humain interagissent. Ils sont particulièrement utiles pour modéliser des relations non linéaires, et servent généralement à reconnaître des patterns et classifier des objets ou signaux dans les systèmes de parole, de vision et de contrôle.
Les réseaux de neurones, en particulier les réseaux de neurones profonds, se sont démarqués par leur efficacité dans les applications d’identification complexes telles que la reconnaissance faciale et vocale, et la traduction de textes. Ces approches sont une technologie clé de l’innovation dans les systèmes et tâches avancés d’aide à la conduite, car ils permettent notamment de classifier les voies et de reconnaître les panneaux routiers.
Exemples de réseaux de neurones
Voici quelques exemples d’applications de réseaux de neurones dans le Machine Learning :
- Segmentation sémantique d’images et de vidéos
- Détection d’objets dans les images, par exemple les piétons et cyclistes
- Apprentissage de la marche chez un robot bipède avec le Reinforcement Learning
- Détection des cancers en aidant les pathologistes à classifier les tumeurs
- Approximation de solutions aux équations différentielles
- Et bien d'autres
Comment fonctionnent les réseaux de neurones ?
Les réseaux de neurones sont inspirés des systèmes nerveux biologiques. Ils combinent plusieurs couches de traitement, avec plusieurs éléments simples fonctionnant en parallèle. Ces réseaux sont constitués d’une couche d’entrée, d’une ou plusieurs couches cachées et d’une couche de sortie. Chaque couche se compose de plusieurs nœuds (neurones). Ces nœuds utilisent comme entrées les sorties de la couche précédente, si bien que chaque neurone est connecté avec les autres par l’intermédiaire des différentes couches. Chaque neurone reçoit généralement un poids qui est ajusté lors du processus d’apprentissage. Augmenter ou diminuer ce poids revient à modifier la force du signal du neurone.
Architecture d'un réseau de neurones typique.
Comme d’autres algorithmes de Machine Learning, les réseaux de neurones peuvent effectuer des tâches de classification ou de régression. Pour paramétrer les modèles, on applique des poids au réseau de neurones lorsqu’il est en phase d’apprentissage sur des données d’apprentissage. En règle générale, ces poids sont optimisés de manière à réduire les erreurs de prédiction.
Types de réseaux de neurones
Le premier réseau de neurones a été mis au point par Frank Rosenblatt en 1958. Appelé « perceptron », ce modèle est extrêmement simple. Il est constitué d’un seul neurone et d’un modèle de régression linéaire avec une fonction d’activation sigmoïde. Depuis, des réseaux de neurones de plus en plus complexes ont vu le jour et ont ouvert la voie à ceux que l’on connaît aujourd’hui, contenant parfois plusieurs centaines de couches.
Le Deep Learning désigne les réseaux de neurones qui comportent de nombreuses couches. Les réseaux de neurones qui ne comportent que deux ou trois couches de neurones interconnectées sont quant à eux appelés « réseaux de neurones peu profonds ». Le Deep Learning est devenu populaire, car il élimine la nécessité d’extraire des caractéristiques à partir des images, une étape qui compliquait auparavant l’application du Machine Learning au traitement du signal et des images. Bien que l’extraction de caractéristiques puisse être omise dans les applications de traitement d’images, une forme d’extraction de caractéristiques reste généralement utilisée dans les tâches de traitement du signal afin d’améliorer la précision des modèles.
Il existe trois types courants de réseaux de neurones utilisés pour les applications d’ingénierie :
- Réseau de neurones de type feedforward : il se compose d’une couche d’entrée, d’une ou de quelques couches cachées et d’une couche de sortie (autrement dit, un réseau de neurones peu profond).
- Réseau de neurones à convolution (CNN) : une architecture de réseau de neurones profond courante dans le traitement d’images. Elle se caractérise par des couches à convolution qui déplacent des fenêtres sur l’entrée et dont les nœuds partagent la même pondération, permettant d’abstraire l’entrée (généralement une image) en cartes de caractéristiques. Il existe des CNN pré-entraînés, par exemple SqueezeNet ou GoogleNet.
- Réseau de neurones récurrents (RNN) : il s’agit d’une architecture de réseau de neurones avec des boucles de rétroaction permettant de modéliser des dépendances séquentielles dans l’entrée (par exemple, des données de séries temporelles, de capteurs ou de textes). Les réseaux LSTM (long short-term memory) sont le type de RNN le plus répandu.
Comment fonctionnent les CNN ?
Regardez cette courte vidéo explicative sur les spécificités des CNN, notamment les couches, les activations et la classification.
En savoir plus sur le Deep Learning :
Comment créer un réseau de neurones avec MATLAB ?
En utilisant MATLAB® avec Deep Learning Toolbox™ et Statistics and Machine Learning Toolbox™, vous pouvez créer des réseaux de neurones profonds ou peu profonds pour des applications comme la Computer Vision et la conduite autonome.
MATLAB vous permet de créer des réseaux de neurones avec seulement quelques lignes de code, sans être un expert. Vous pouvez rapidement vous familiariser avec leur fonctionnement, entraîner et visualiser des modèles de réseaux de neurones, intégrer ces réseaux dans vos systèmes actuels et les déployer sur des serveurs, systèmes d’entreprise, clusters, clouds et dispositifs embarqués.
Workflow typique de construction de système avec des réseaux de neurones
Le développement d'applications d'IA, en particulier celles qui incluent des réseaux de neurones, comprend généralement les étapes suivantes :
- Préparation des données
- Il faut acquérir suffisamment de données d'apprentissage labellisées et un plus grand nombre encore pour entraîner des réseaux de neurones profonds. Des applications de labellisation pour les images, vidéo et signaux existent pour accélérer cette étape.
- Utilisez la simulation pour générer des données d’apprentissage, surtout s’il est difficile de recueillir des données issues de vrais systèmes (conditions de défaillance).
- Enrichissez les données d’apprentissage pour représenter une plus grande variabilité.
- Modélisation de l'IA
- Entraînez des réseaux de neurones peu profonds de manière interactive dans l’application Classification and Regression Learner de Statistics and Machine Learning Toolbox, ou utilisez les fonctions en ligne de commande. Cette approche est recommandée si vous souhaitez comparer les performances de réseaux de neurones peu profonds à celles d’autres algorithmes de Machine Learning classiques, tels que les arbres de décision ou les SVM, ou si vous ne disposez que d’un volume limité de données d’apprentissage labellisées.
- Spécifiez et entraînez des réseaux de neurones (peu profonds ou profonds) de manière interactive en utilisant l’application Deep Network Designer ou les fonctions en ligne de commande de Deep Learning Toolbox, solution particulièrement adaptée aux réseaux de neurones profonds ou lorsque vous avez besoin de davantage de flexibilité pour personnaliser l’architecture du réseau et les solveurs.
- Simulation et test
- Intégrez des réseaux de neurones dans les modèles Simulink® en tant que blocs afin de faciliter l’intégration avec des systèmes plus importants, les tests et le déploiement dans de nombreux types de hardware.
- Déploiement
- Générez du code C/C++ à partir de réseaux de neurones peu profonds entraînés dans Statistics and Machine Learning Toolbox, pour un déploiement sur du hardware embarqué et des systèmes de calcul haute performance.
- Générez du code CUDA® et C/C++ optimisé à partir de réseaux de neurones entraînés dans Deep Learning Toolbox, pour une inférence rapide sur GPU et d’autres types de plateformes hardware industrielles (ARM, FPGA).
Sujets connexes
Explorez des sujets similaires pour lesquels on utilise couramment les produits MATLAB et Simulink.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)