Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Data Science avec Microsoft Azure
  3. Réseaux de neurones
Extrait - Data Science avec Microsoft Azure Maîtrisez le Machine Learning sur Cortana Intelligence Suite
Extraits du livre
Data Science avec Microsoft Azure Maîtrisez le Machine Learning sur Cortana Intelligence Suite Revenir à la page d'achat du livre

Réseaux de neurones

Objectif du chapitre

Comme vous pouvez l’imaginer, les réseaux de neurones artificiels trouvent leur origine et leur inspiration dans les neurones biologiques, notamment dans les neurones humains. En effet, en plein milieu de la seconde guerre mondiale, en 1943, Warren McCulloch et Walter Pitts proposèrent une première formalisation du neurone. Une forme plus sophistiquée de ce formalisme a été introduite en 1957 par Frank Rosenblatt avec le modèle du perceptron. Outre les limites technologiques de l’époque, en 1969, Marvin Lee Minsky et Seymour Papert démontrent les limites théoriques des classifieurs tels les réseaux de neurones à traiter les problèmes non linéaires. En conséquence de ces limites, technologiques et théoriques, les réseaux neuronaux ont été mis à l’écart pendant une bonne dizaine d’années. En 1982, John Joseph Hopfield introduit un modèle de réseaux de neurones récurrents et en 1986, le fameux modèle de perceptron multicouche basé sur la rétropropagation du gradient a été introduit par David Rumelhart. Une version similaire à ce dernier modèle a été introduite par Yann LeCun durant les années 80. Suite à ces travaux, les réseaux de neurones ont connu un nouvel engouement...

Modélisation d’un neurone artificiel

Avant toute chose, il faut savoir que les modèles de neurones artificiels ne représentent pas fidèlement le fonctionnement des neurones biologiques. En effet, ces derniers présentent des structures complexes tant au niveau d’un neurone isolé qu’au niveau des interactions interneuronales. La tâche qui consiste à étudier le fonctionnement d’un cerveau, humain ou pas, reste encore et avant tout une tâche exploratoire et difficile.

Le neurone biologique a une structure similaire à celle représentée dans la figure 8-1 suivante :

images/08EPS01.png

Figure 8-1 : représentation d’un neurone biologique

Cette figure montre qu’un neurone est composé essentiellement des éléments suivants :

  • Les dendrites qui servent d’interface en entrée pour un neurone. Concrètement, ces dendrites reçoivent l’influx nerveux provenant des autres neurones.

  • Le noyau où ont lieu les réactions électrochimiques. En fonction de l’intensité des signaux qui arrivent à travers les dendrites, le noyau génère et envoie un influx nerveux électrique à travers l’axone.

  • L’axone joue le rôle de support de l’influx nerveux électrique qui sera transmis aux terminaisons synaptiques.

  • Les synapses qui transmettent...

Architecture d’un réseau de neurones

La section précédente a montré qu’un neurone artificiel reçoit en entrée des données et, après avoir opéré une transformation sur ces données, il donne en sortie un résultat. Ce résultat peut être utilisé en entrée d’un autre neurone qui à son tour produira un autre résultat. Un réseau de neurones est constitué d’un ensemble de neurones répartis sur un ensemble de couches. L’architecture d’un réseau de neurones est déterminée par la nature des liens entre ses neurones et aussi la manière dont ils sont répartis. La figure 8-3 suivante donne un exemple d’un réseau de neurones avec une couche d’entrée, deux couches cachées et une couche de sortie.

images/08EPS03.png

Figure 8-3 : un réseau de neurones avec deux couches cachées

De façon générale, un réseau de neurones est caractérisé par le nombre de neurones dans chaque couche, le nombre de couches, la nature des relations entre les neurones, les fonctions d’assemblage et d’activation de chaque neurone.

L’exemple donné dans la figure 8-3 correspond au modèle de réseaux de neurones avec rétropropagation qui est l’un des types de réseaux de neurones les plus...

L’algorithme de rétropropagation

Le réseau de neurones avec rétropropagation est un algorithme itératif. Les étapes principales de cet algorithme se présentent comme suit :


Entrées : - Un ensemble d'observations images/eq248.PNG;  
          - Un ensemble de résultats images/eq249.PNG; 
Avec images/eq250.PNG le résultat connu de l'observation images/eq251.PNG   
          - Une fonction d'activation images/eq252.PNG; 
          - Un réseau de neurones images/eq253.PNG composé de images/eq254.PNG couches; 
Sortie : le réseau de neurones images/eq255.PNG avec les poids images/eq256.PNG ajustés.  
a) Initialisation aléatoire des poids images/eq257.PNG pour tout le réseau RN. 
b) Répété jusqu'à ce qu'un critère d'arrêt soit atteint :  
       Pour chaque couple images/eq258.PNG faire : 
 
        //Initialisation de la couche d'entrée  
        1- Affecter à chaque neurone images/eq259.PNG de la couche d'entrée la 
valeur de images/eq260.PNG(images/eq261.PNG la valeur de la variable images/eq262.PNG de l'observation images/eq263.PNG) 
  
        //Propagation avant 
        2- Pour chaque couche images/eq264.PNG allant de 2 à images/eq265.PNG faire : 
             Pour chaque neurone images/eq266.PNG de la couche images/eq267.PNG faire : 
             -  images/eq268.PNG  
             -  images/eq269.PNG, (donc images/eq270.PNG la valeur de sortie du neurone images/eq271.PNG  
        //Calcul de l'erreur des neurones de la couche de sortie 
        3- Pour chaque neurone images/eq272.PNG de la couche de sortie faire : 
              images/eq273.PNG  
        //Propagation arrière 
        4- Pour chaque neurone images/eq274.PNG allant de images/eq275.PNG à 1 faire : 
              Pour chaque neurone images/eq276.PNG de la couche images/eq277.PNG faire :  
                images/eq278.PNG = images/eq279.PNG 
        //mise-à-jour des poids du réseau 
        5- Pour chaque poids images/eq280.PNG du réseau faire : 
             images/eq281.PNG 
L’algorithme de réseau de neurones avec rétropropagation...

Réseau de neurones dans Azure ML

Pour illustrer l’implémentation d’un réseau de neurones dans Azure ML, nous allons utiliser le même jeu de données que celui utilisé pour la régression linéaire au chapitre La régression linéaire et polynomiale. Pour rappel, l’objectif recherché dans cet exemple est de développer un modèle qui saura prédire la pollution de l’air en ozone en fonction des variables T9, T12, T15, Ne9, Ne12, Ne15, Vx9, Vx12, Vx15 et Maxo3v (cf. chapitre La régression linéaire et polynomiale - Exemple de régression linéaire multiple).

Pour réaliser ce modèle de régression linéaire avec un réseau de neurone sur Azure ML, suivez les étapes ci-après :

 Connectez-vous sur votre portail Azure et lancez votre environnement Azure ML.

 Une fois sur Azure ML, cliquez sur le bouton +New situé en bas de la page.

 Vérifiez que l’option EXPERIMENT est bien sélectionnée à gauche de l’écran et choisissez un type d’expérience Blank Experiment. Une nouvelle expérience Machine Learning vide sera créée.

 Cliquez sur le texte en haut de la page et changez le nom de cette expérience par le nom de votre choix. Dans l’exemple, le nom est Régression multiple-Réseau de Neurones - Pollution de l’air.

 Sur le panneau à gauche, développez le groupe de module Saved Datasets, puis développez le groupe My Datasets et cliquez sur le Data Set ozone.csv et ajoutez-le à l’expérience.

 Sur le panneau de gauche, saisissez dans la zone de recherche Select Columns. Dans les résultats de recherche, repérez le module Select Columns in Dataset et ajoutez-le dans l’expérience.

 Connectez la sortie du module ozone.csv à l’entrée du module Select Columns in Dataset.

 Sélectionnez le module Select Columns in Dataset. Le volet des propriétés de ce module va apparaître à droite de l’écran. Cliquez sur le bouton Launch column selector. Dans la nouvelle fenêtre qui s’affiche, sélectionnez l’option BY NAME à gauche de l’écran, puis sélectionnez...

Conclusion

Ce chapitre a introduit les concepts de bases des réseaux de neurones. La structure du neurone formelle et la structure des réseaux de neurones ont été abordées dans un premier temps, puis l’algorithme de réseau de neurones avec rétropropagation a été donné et expliqué à travers un exemple complet de déroulement d’une itération de cet algorithme.