Les réseaux de neurones

Les réseaux de neurones artificiels dans MATLAB

Les réseaux de neurones artificiels constituent une technique d'apprentissage et de traitement automatique qui s'inspire du fonctionnement du cerveau humain. Les réseaux de neurones artificiels peuvent être définis comme une structure de traitement parallèle massif constituée de plusieurs unités très simples (que l'on appelle des neurones), qui sont capables de stocker des connaissances expérimentales et de les rendre utilisables.

Les réseaux de neurones artificiels sont similaires aux réseaux de neurones biologiques sur plusieurs points :

  1. Les neurones sont des éléments simples et fortement connectés (même si les neurones artificiels sont beaucoup plus simples).
  2. Les connexions entre les neurones permettent de déterminer la fonction du réseau. Ces connexions, connues sous le nom de « poids » (poids synaptiques), servent à stocker les connaissances acquises.
  3. Les connaissances sont extraites de leur environnement via un processus d'apprentissage.

Architecture

L'architecture (également appelée topologie) du réseau désigne la disposition des neurones dans ce réseau. Les neurones sont organisés en couches, le réseau de neurones peut donc être constitué d'une ou plusieurs couches de neurones.

Chaque neurone reçoit un ensemble d'entrées multipliées par leur interconnexion (poids), qui sont ensuite additionnées et calculées par une fonction de transfert (ou fonction d'activation), avant d'être transmises à la couche suivante ou de former la sortie du réseau.

Ce schéma représente un réseau d'une seule couche, qui contient R éléments d'entrée et S neurones

La couche qui contient les sorties du réseau est connue sous le nom de couche de sortie et les couches restantes sont appelées couches cachées.

Ces différentes couches sont généralement classées en fonction de leur architecture. Nous avons ainsi :

  • Les réseaux à propagation avant;
  • Les réseaux à propagation arrière.

Apprentissage

Dans de nombreux cas, elles sont également classées en fonction du type d'apprentissage qu'elles réalisent. Ainsi, nous pouvons distinguer différents types d'apprentissages :

  • L'apprentissage supervisé, où l'on utilise un ensemble déterminé de données d'entrée et de sortie pour ajuster les poids du réseau de manière itérative.
  • L'apprentissage non supervisé, où l'on trouve uniquement des données d'entrée et une fonction de coût à réduire.
  • L'apprentissage renforcé, qui se trouve à mi-chemin entre l'apprentissage supervisé et non supervisé. Dans cet apprentissage, l'information transmise au réseau est réduite au minimum : elle indique uniquement si la réponse du réseau est correcte ou non.

Visualization of a binomial tree.

Ce schéma représente le processus d'ajustement des poids au cours de l'apprentissage supervisé.

Champs d'application

Ces réseaux étaient et sont toujours largement utilisés dans de nombreux domaines : l'aérospatial (les pilotes automatiques, les simulations de trajectoires de vol, la détection de défaillance des composants), l'automobile (les systèmes de guidage automatique, les contrôleurs, l'analyse de la garantie), la finance (les lecteurs automatiques de chèque, les demandes de crédit, la détection de fraudes, les notations d'obligations), la défense (le suivi d'objets, la reconnaissance faciale, la suppression du bruit), la médecine (l'analyse de cellules cancérigènes, la conception de prothèses, l'analyse des électroencéphalogrammes et électrocardiogrammes), les télécommunications (la reconnaissance vocale et la compression vocale, la compression d'images, la traduction d'une langue en temps réel), etc.

Les réseaux de neurones artificiels dans MATLAB

La Neural Network Toolbox offre de nombreuses architectures et fonctions d'apprentissage qui permettent de modéliser en toute simplicité des systèmes complexes non linéaires à l'aide de systèmes artificiels. Les applications de la Neural Network Toolbox permettent de concevoir, d'effectuer l'apprentissage, de visualiser et simuler le réseau de manière interactive pour ensuite générer le code MATLAB équivalent et ainsi automatiser le processus.

La Neural Network Toolbox prend en charge l'apprentissage supervisé, non supervisé et renforcé grâce à des architectures telles que le perceptron, le perceptron multicouche, l'adaline, la base radiale, les cartes auto-organisées, les réseaux concurrentiels, etc.

Afin d'accélérer les processus d'apprentissage complexes en raison de la grande quantité de données, il est possible de répartir les calculs entre les machines multi-cœur, les processeurs graphiques et les clusters à l'aide de la Parallel Computing Toolbox.



Voir aussi : MATLAB, Le Big Data avec MATLAB, Data Mining With MATLAB, Electricity Load and Price Forecasting with MATLAB, Data Driven Fitting with MATLAB