II Deuxième partie: Réseaux de neurones artificiels
II.1. Neurone formel
Par ressemblance aux neurones biologiques Figure 1, les neurones artificiels Figure 2 ont pour but de
reproduire des raisonnements intelligents. La pluparts du temps simulés par des algorithmes exécutés sur
des ordinateurs ou des microprocesseurs. Ils sont utilisés essentiellement pour résoudre des problèmes de
classification, de reconnaissance de formes, d'identification, de commande,... . Ces neurones peuvent
adopter certaines qualités de l'être humain, c’est-à-dire, la généralisation et la déduction.
axone
noyau
Corps
cellulaire
Synapses
dendrites
Figure II.1: Neurone biologique
La forme d’un neurone artificiel est une copiée de la structure de neurone biologique. Un neurone artificiel
exécute une addition pondérée de signaux provenant de d'autres neurones, y ajoute un seuil θ, et donne une
sortie modulée par une fonction f dite d'activation.
1 θj
X1 wj1
X2 wj2
wj3 ∑ f yj
X3
wjn
Xn
Figure II.2: Neurone formel
x1 à xn forment le vecteur d’entrée x. La fonction f est appelée fonction d’activation du neurone. Chaque
entrée xi de neurone j est pondérée par un poids wji , ces poids vont permettre au neurone d’apprendre et de
modifier sa sortie pendant la phase d’apprentissage. La sortie du neurone est y = f( w.x ), où s = w.x
représente le produit scalaire du vecteur poids par le vecteur des entrées.
II.1.1. Modélisation
La fonction de transfert d'un neurone est donnée par:
( ) 1
∑ ( ) 2
Les facteurs de pondération wji sont appelés des coefficients synaptiques ou poids. Souvent, il ya un élément
additionnel 1 pondéré par le poids θ, ce terme est considéré comme le seuil interne du neurone.
II.1.2. Fonctions d'activations
Les fonctions d'activations les plus utilisées Figure 3:
f(x) f(x) f(x)
1 1
x x x
Echelon Signe Linéaire ( f(x) = x )
f(x) f(x) f(x)
1 1 1
x x x
1 1
Sigmoïde [0,1] Sigmoïde [-1,1] Saturation
Figure II.3: Fonctions d'activations
II.2. Structure d'un réseau neuronal
Un réseau de neurones est, un ensemble de neurones en réseau, de sorte que les signaux sortant des neurones
deviennent des signaux entrant dans d’autres neurones.
On peut classer les réseaux de neurones en deux grandes catégories, statiques ou dynamiques.
II.2.1. Réseaux statiques (non récurrents)
Dans cette architecture le temps n'est pas un paramètre significatif, en d'autres termes, la modification de
l'entrée n'entraine qu'une modification invariable de la sortie, il n'y a pas le retour d'information vers cette
entrée.
La plupart des réseaux statiques utilisés sont organisés en plusieurs couches de neurones, appelés
perceptrons multicouches ou réseaux multicouches.
Dans tel réseau, il n'y a pas de connexion entre neurones d'une même couche et les connexions ne se font
qu'avec les neurones des couches avales Figure 4. Généralement, chaque neurone d'une couche est connecté
à tous les neurones de la couche suivante seulement.
x0 y0
x1
y1
x2
y2
yn
xm
Figure II.4: Réseau multicouches
II.2.2. Réseaux dynamique (récurrents)
Les réseaux dynamiques contiennent des bouclages partiels ou totaux, d'une autre manière, les connexions
récurrentes ramènent l'information en arrière par rapport au sens de propagation Figure 5.
x0 y0
x1 y1
y2
yn
xm
Figure II.5: Réseau dynamique
(Modèle de Hopfield)
Ces réseaux, généralement, sont en train de s’entraîner. Il en existe plusieurs types.
II .2.2.1 Réseau de Kohonen
Dans ce type de réseau plusieurs neurones entrent en concurrence pour être activé. Dans cette situation, un
seul neurone est activé. Dans ce cas, seul le neurone vainqueur, verra son poids modifié. Veut dire, seul le
neurone vainqueur et son proximité bénéficieront de l’apprentissage, figure 6.
Couche d'entrée
Couche de Kohonen
Figure II.6: Réseau de Kohonen
II.3. Le perceptron
Le perceptron est formé de trois couches; une couche d'entrée fournissant des données à une couche
intermédiaire comporte des neurones chargées des calculs, elle-même connectée à la couche de sortie Figure
7.
x0 y0
x1
y1
x2
y2
yn
xm
Figure II.7: Le perceptron
Un perceptron est capable d’apprendre un ensemble de points linéairement séparables. Dans le cas de deux
dimensions, le perceptron pourra apprendre à reconnaître deux classes différentes qui peuvent être séparés
dans le plan par une droite Figure 8.
Figure II.8: La solution du perceptron
Cependant, les perceptrons à un neurone ne peuvent apprendre que des fonctions séparables linéairement
figure 9.
Figure II.9: La limite du perceptron
II.3.1. Algorithme d'apprentissage
1. Mettre les poids w1, w2, …, wn ainsi que le seuil θ à des valeurs aléatoires, aussi fixer le coefficient
d’apprentissage.
2. Pour chaque exemple x(p) et sa sortie désiré Yd(p):
Calculer la sortie du neurone réelle pour l'itération p s(p)=f(x(p))
Calculer la correction des poids : wi=*( Yd(p)-s(p))*x(p)
Mettre à jour les poids : wi = wi + wi
3. Augmenter p de 1, retourner à l’étape 2 et répéter le procédé jusqu’à la convergence.
II.4. Réseaux multicouche
Les réseaux de neurones multicouches comprennent plusieurs couches. La plupart des réseaux de neurones
multicouches sont, des perceptrons multicouches. Comporte une couche d’entrée reçoit une donnée externe
qu’elle attribue à la première couche cachée qui suit, qui exécute un calcul et qui le propage ensuite à la
couche suivante qui fera la même chose et ainsi de suite jusqu’à la dernière couche.
y1
x1
Y2
x2
X3
Y3
Xn
Ym
Couche de sortie
Couche d’entrée
Couches de cachées
Figure II.10: Réseau multicouche
II.5. Apprentissage
Toute l'information que possède un réseau de neurones est représentée dans les poids des connexions entre
les neurones. Le réseau acquiert cette information pendant la phase d'apprentissage.
L'apprentissage consiste donc à ajuster les poids de telle façon que le réseau présente un certain
comportement désiré.
La procédure d'apprentissage peuvent se subdiviser, en deux catégories: apprentissage supervisé et
apprentissage non supervisé.
II.5.1. Apprentissage supervisé
Il implique l'avis d'un professeur qui a pour rôle de juger le succès ou l'échec du réseau quand il lui est
présenté une entrée donnée. Cette vérification consiste à renvoyer au réseau une information qui lui
permettant de faire varier ses poids afin de faire diminuer son erreur.
II.5.2. Apprentissage non supervisé
Dans cet apprentissage la connaissance du couple, entrées et sorties désirées n'est pas nécessaire. C'est un
réseau autonome, la régulation des poids se fait automatiquement.
II.6. Rétro-propagation du gradient
Les limites du perceptron peuvent être surmontées en augmentant le nombre de couches cachées dans le
réseau de neurones.
Le but est de minimiser l'erreur quadratique E entre les sorties réelles et celles désirées.
1
E ( w) * (désirée réelle) 2 3
2 exemples
∑ ( ) ∑ ( ( ) ( )) 4
Yd(t): la sortie désirée.
RRk(t): la sortie du neurone K de la couche R
T: l'ensemble des exemples d'apprentissage.
On présente l'ensemble des exemples qui sont les entrées et les sorties désirés, et on applique la méthode de
descente du gradient pour minimiser l'erreur à travers les poids:
E
wi E (w) où E ( w) 5
wi
L'apprentissage se fait en deux phases. Dans la première, on calcul la sortie de chaque neurone, on peut
mettre en évidence les erreurs apparaissant sur les neurones de sorties. Dans la seconde phase, on propage
les erreurs de la couche de sortie vers la couche d'entrée. Ce processus est répété jusqu'à ce que l'erreur soit
inférieure à un seuil choisi.
II.6.1. Adaptation des poids
Pour la couche de sortie:
( ) ( ( ) ( )) ( ( )) 6
( ) ( ) ∑ ( ) ( ) 7
Pour les couches cachées:
( ) ( ( )) ∑ ( ) ( ) 8
( ) ( ) ∑ ( ) ( ) 9
II.6.2. Algorithme de la rétro-propagation
1. Initialiser tous les poids à des valeurs aléatoires petites.
2. Présenter le couple, entrées et sorties désirées.
3. Calculer les sorties de chaque neurone.
4. Calculer les erreurs de chaque neurone
5. Adapter les poids de la couche de sortie puis les poids des couches cachées.
6. Revenir à 2 jusqu'à la convergence du réseau.
II.7. Procédure de l'identification d’un réseau de neurones
Pour le développement d'un modèle neuronal, il nous faut sept étapes :
La collecte des données,
L’analyse des données,
La séparation des bases de données,
Le choix d’un réseau de neurones,
La mise en forme des données,
L’apprentissage,
La validation.
II.7.1. Collecte des données
L’intérêt de cette étape est d'assembler des données, à la fois pour l'apprentissage du réseau de neurones et
pour le teste. Le but est de collecter un nombre de données suffisant pour constituer une base caractéristique
du système. Le modèle constitué n’a de validité que dans le domaine où on l’a ajusté. En d’autres termes, la
présentation de données distinctes de celles de l’apprentissage peut entraîner un modèle incorrecte.
II.7.2. Analyse des données
Il est préférable d’effectuer une analyse des données de manière à déterminer les caractéristiques
discriminantes pour détecter ou différencier ces données. Cette détermination des caractéristiques a des
conséquences à la fois sur la taille du réseau et donc le temps de simulation, sur les performances du
système, et sur le temps d’apprentissage. Une étude statistique sur les données peut permettre d’écarter
celles qui sont aberrantes et redondantes.
II.7.3. Séparation des bases de données
Pour le développement d'un modèle neuronal, il est indispensable d'arranger deux bases de données: une
base pour l’apprentissage et une autre pour tester le modèle acquis et déterminer ses performances.
II.7.4. Choix d’un réseau de neurones
On distingue plusieurs types de réseaux de neurones, chacun des avantages et des inconvénients, aussi le
choix d’un réseau peut dépendre :
Du travail à achever, exemple classification, association, commande de processus, ...,
Du type des données,
D’utilisation en temps-réel,
II.7.5. Mise en forme des données pour un réseau de neurones
Les données d'apprentissage et de teste doivent subir un traitement afin d’être acceptées comme entrées et de
sorties du réseau de neurones. Un prétraitement courant consiste à effectuer une normalisation appropriée,
qui tienne compte de l’amplitude des valeurs acceptées par le réseau.
II.7.6. Apprentissage du réseau de neurones
Les réseaux de neurones sollicitent un apprentissage. Plusieurs types d’apprentissages peuvent être adaptés.
Les critères de choix sont la rapidité de convergence ou les performances de généralisation. Le critère
d’arrêt de l’apprentissage est souvent l’écart entre les valeurs de sortie obtenues et les valeurs souhaitées.
Certains algorithmes d’apprentissage se chargent de la détermination des paramètres d'architecture du réseau
de neurones.
II.7.7. Validation
Une fois la phase d'apprentissage est achevée, il est nécessaire de le tester sur une base de données différente
de celles utilisées pour l’apprentissage. Ce test permet à la fois d’apprécier les performances du système
neuronal et de détecter le type de données qui pose problème. Si les performances ne sont pas satisfaisantes,
il faudra soit modifier l’architecture du réseau, soit modifier la base d’apprentissage.
II.8. Les inconvénients d’un réseau de neurones
On ne sait pas prévoir le nombre de neurones cachés nécessaires pour un problème donné, pour
pallier ce manque, on ajoute au fur et à mesure de l’apprentissage des neurones cachés.
Le temps d’apprentissage risque d’être démesuré.
Une fois que le modèle neuronal est déterminé (après apprentissage), il est impossible de lui faire
apprendre de nouvelles données sans recommencer son apprentissage au début.
II.9. Les avantages d’un réseau de neurones
Temps de réponse très court, en effet une fois que le réseau est appris, il peut sortir quasi-
instantanément la réponse.
Le réseau de neurones ayant une bonne capacité de généralisation.
Avec le réseau de neurones on n’est pas besoin de connaitre la fonction de transfère ou le modèle
mathématique du système.