Vous êtes sur la page 1sur 45

Les Réseaux de Neurones

Artificiels

1
Contenu du cours
Introduction
 Historique, neurone biologique, neurone artificiel
 Rappel mathématique (minimisation des fonctions)

Chapitre 2: Modélisation par les réseaux de neurones artificiels

 Rappel mathématique
 Modèle du neurone artificiel
 Apprentissage supervisé
 Réseau de neurone à une couche
 Réseau de neurone multi couches (MLP)
 Algorithme de rétro-propagation

Chapitre 3: Commande neuronale à minimum de variance

 Critère à minimiser
 Calcul du prédicteur à un pas
 Calcul de la commande
 Exemple de simulation 2
Introduction

3
Réseaux de neurones Artificiels (RNA)
 1943: Travaux de Mac-Culloch et Pitts. Proposition du
premier modèle inspiré du fonctionnement du neurone
biologique.
 1949: Lois d’adaptation créées par les systèmes
neuronaux (travaux de Hebb).
 1958: Définition du perceptron par Rosenblatt.
 1976: Modélisation des systèmes non linéaires par les
RNA (Grossberg)
 Réseaux de: Hopfield 1982, Jordan 1986, Elman 1990

Applications: Modélisation, commande, classification, filtrage,


prédiction, …
Article à lire: https://spectrum.ieee.org/history-of-ai
4
Neurone biologique
Comporte:
Neurone biologique

Dendrites: collecte des


informations

Corps cellulaire: Traitement des y (n )


informations

Axone: transfert du flux nerveux

Synapses: connections avec


d’autres neurones.

5
Le nombre total de neurones du cerveau humain est estimé de
86 à 100 milliards (1011). Il existe plus de 200 types de neurones.

Apprentissage des neurones biologiques: Répétition


- Renforcement des liaisons entre certains neurones
- Affaiblissement des autres liaisons
- Changement des tailles des synapses
Cerveau humain: très puissant, complexe
Réseau de neurone artificiel: un seul type de neurones,
limité, en cours de développement, ???
6
Neurone artificiel
Formule mathématique = approximation simple du neurone biologique
 un réseau de neurones artificiels est formé du même type de neurones

 apprentissage : un algorithme mathématique

 Comment on utilise les neurones artificiels pour :


 La Modélisation et la Commande des systèmes physiques ?

7
Rappel mathématique

8
Problème: Calcul de la valeur minimale d’une fonction non
linéaire à une seule variable: f (x).
min f ( x)
x
Méthode de gradient:

- Modification de la variable inconnue d’une quantité


proportionnelle au gradient de la fonction et de signe
opposé à celui-ci.
- Terme de correction (d’actualisation): x   f ( x)
x
- Valeur actuelle: 0   1
x(i)  x(i 1)  x i  1, 2, ..., n

Valeur optimale: xmin  xoptimale  x(n)


Fonction minimale:
f min  f ( xoptimale) 9
Algorithme
- Introduction de:  , x , n et i  1
- Boucle de calcul
For i=2:n f ( x)
calcul de : x f ( x)
terme d’actualisation: x   
x
actualisation de x: x  x  x
End
Tests d’arrêt: nmax, la dérivée de f(x) converge vers zéro

Valeur optimale: xmin  xoptimale  x(n)

Fonction minimale: f min  f ( xoptimale)

10
Exemple
f ( x)  x 4  3x3 1,5x 2  10x
Fonction non convexe:
2 minimums sur l’intervalle: x   2, 3
x1min  1, f ( x1min )  7,5
x2 min  2, f ( x2 min )  6

Méthode de gradient:
f ( x)
x     (4x3  9x2  3x  10)
x
x(i)  x(i 1)  x i  1, 2, ..., n

x1 -1,5 0 1,5 2,5


xoptimale -1 -1 1,99 1,99
f ( xopt ) -7,5 -7,5 6 6

La solution finale dépend de la valeur initiale.


11
Problème: Calcul de la valeur minimale d’une fonction non
linéaire à m variables:
f ( x1 , x2 ,..., xm ).
Méthode de gradient:
- Terme de correction (d’actualisation):
f ( x j )
x j   j  1, ..., m 0   1
x j
- Valeur actuelle:
x j  x j  x j j  1,..., m i  1, 2, ..., n
Valeur optimale:
x j ,min  x j ,optimale  x j (n)

Fonction minimale: f min  f ( xoptimale)

12
Problème: Calcul de la valeur minimale d’une fonction
quadratique à m variables: 1
J h( y)  f ( g ( x1, x2 ,..., xm ))
2

2
Méthode de gradient:
- Terme de correction: x j   J j  1, ..., m 0   1
- Valeur actuelle: x j

x j  x j  x j j  1,..., m i  1, 2, ..., n
Valeur optimale: x j ,min  x j ,optimale  x j (n)

J J ( x j ) f g J f g
  h( y)  f ( g ( x1,..., xm )
x j f g x j x j g x j

J
x optimale 
x j
0 f ( g ( x1,opt ,..., xm,opt )  h( y)
13
Chapitre 2
Modélisation par les réseaux de neurones
artificiels
Modèle de Mac-Culloch et Pitts

Equations
xi : ième entrée.
w0 : biais ou seuil
d’activation du neurone.
Wi : poids des connexions (pondération)
n
v   wi xi   w0  w1 x1  ...  wn x n
i0
Sortie du neurone:
y  f (v )
Fonction d’activation du neurone: f (v)  1 v  0
0 v  0
Ce modèle peut être utilisé pour réaliser les fonctions
logiques (ET, OU, Non, Nand, Nor, …).
15
Modèle du neurone artificiel
Equations
xi : ième entrée.
w0 : biais ou seuil d’activation du neurone.
n
v   wi xi   w0  w1 x1  ...  wn x n
i0
Sortie du neurone: y  f (v )
Fonction d’activation du neurone: (v  c ) 2

n 1 1  e 2 v 2
f (v)   ai vi f (v )   2 v
f (v )   2 v
f (v )  e
i 0 1 e 1 e
Polynômiale Sigmoïde Tangente Radiale
hyperbolique de base
Modèle permettant de traiter des données réels.
Article à lire:
https://spectrum.ieee.org/what-is-deep-learning/particle-17
16
polynôme sigmoïde

Tangente hyperbolique FRB


17
Neurone artificiel à fonction d’activation non linéaire:
- Modèle non linéaire
- Traitement des données réelles
Apprentissage
Détermination des poids de connexions
wi (i  0,1, ..., n) x1(k) d(k)
Sortie
désirée
Système
xn(k)
Critère à minimiser:
x1(k) y(k)
Neurone
artificiel
1
J  d ( k )  y ( k ) 2 xn(k) Sortie du
neurone
2 Entrées
d(k)
-
Algorithme
d’adaptation

d(k): sortie désirée +

y(k): sortie du neurone


18
Exemple d’un seul neurone à n entrée et une sortie
n
v(k )   wi xi (k )
i 0
 w0  w1x1(k )  ...  wn xn (k )

y (k )  f (v(k ))
Critère à minimiser:
x1(k) y(k)
Neurone
1
J d (k )  y(k )2 xn(k)
artificiel
Sortie du
2 neurone
Entrées

d(k): sortie désirée Algorithme


- d(k)

d’adaptation
+ Sortie
y(k): sortie du neurone désirée

19
Algorithme de gradient:
- Modification des paramètres (pondération, poids) d’une
quantité proportionnelle au gradient du critère J et de
signe opposé à celui-ci. J
- Terme de correction (d’actualisation): wi  
wi
- Valeur actuelle: wi (k )  wi (k 1)  wi
1
Calcul de wi J d (k )  y(k )2
2
J
 (d (k )  y (k ))
y(k )
J y (k ) v(k ) y (k ) v(k )
wi     (d (k )  y (k ))
y(k ) v(k ) wi v(k ) wi

y (k )  f (v(k )) v(k )  w0 x0 (k )  w1x1 (k )  ...  wn xn (k )


x0 (k )  1,  k

wi   (d (k )  y(k )) f ' (v(k )) xi (k ) i  0 , ..., n


20
Algorithme d’apprentissage:
L’apprentissage des réseaux de neurones artificiels
(détermination des poids de connexions) est basé sur la
répétition des mesures.

Initialisation: N: nombre de mesure,  , valeurs faibles et


aléatoire des paramètres du neurone (wi )

Boucle de passage (p=1: maxp)


Boucle de mesures (k=1:N)
- Calcul de la sortie du neurone suite à la présentation des entrées
- Modification des pondérations
wi   (d (k )  y(k )) f ' (v(k )) xi (k )
wi (k )  wi (k  1)  wi
Fin boucle de mesures
Fin boucle de passages

21
Exemple:
Système: g (k )  0,4 sin(0,2k )  0,6 cos(0,4k )
Modèle:
Un seul neurone à deux entrées:
x1(k )  g (k  1) x2 (k )  g (k  2) g(k-1) y(k)
Neurone
v(k )  w0  w1g (k 1)  w2 g (k  2) artificiel
Sortie du
g(k-2)
neurone
y(k )  gˆ (k )  f (v(k )) Entrées
-
g(k)
Algorithme
1
J   g ( k )  gˆ ( k ) 2 d’adaptation
+ Sortie
2 désirée

wi (k )  wi (k 1)  wi i  0,1, 2 -1


g(k-1) w1 w0
w0   ( g (k )  gˆ (k )) f ' (v(k ))(1)
gˆ (k )
/ f
w1   ( g (k )  gˆ (k )) f ' (v(k )) g (k  1) w2
g(k-2)

w2   ( g (k )  gˆ (k )) f ' (v(k )) g (k  2)


22
.

. Résultats
Evolution de g(k) (k=1:50) Evolution de g(k) et la sortie du neurone
1 1

0.6
0.5
0.2
g(k)

-0.2 0

-0.6
-0.5
-1 g(k)
0 10 20 30 40 50 s(k)
k -1
0 10 20 30 40 50

1 Après un seul passage


k

0.5 =0.2. Fonction d’activation:


1  e 2v (k )
f (v(k )) 
0
Valeurs initiales: 1  e  2v ( k )

-0.5
g(k)
w0  0.1, w1  0.1, w2  0.1
s(k)
-1
0 10 20 30 40 50 Valeurs retrouvées après 30 passages:
k

Après 30 passages w0  0.0027, w1  2.02, w2  1.07

23
Exemple:
Système: g (k )  0,4 sin(0,2k )  0,6 cos(0,4k )
Modèle retrouvé:
Un seul neurone à deux entrées:
v(k )  w0  w1g (k 1)  w2 g (k  2) w0  0.0027, w1  2.02, w2  1.07
y(k )  gˆ (k )  f (v(k )) f (v(k )) 
1  e 2v (k )
1  e  2v ( k )
Prédiction:
gˆ (k  1)  f (0.0027  2.02 g (k )  1.07 g (k  1))
gˆ (k  j )  f (0.0027  2.02 gˆ (k  j  1)  1.07 gˆ (k  j  2))
1
Apprentissage Test

0.5 -1
g(k-1) w1 w0
0
gˆ (k )
-0.5
w2 / f
g(k)
s(k) g(k-2)
-1
0 10 20 30 40 50 60 70 80
k
24
Exemple:
Système: g (k )  0,4 sin(0,2k )  0,6 cos(0,4k )
Modèle: Un réseau de trois neurones
- Entrées: g (k 1) g (k  2)
- Couche cachée: 2 neurones
- Couche de sortie: un neurone

-1 w10 -1
w11 s1 (k ) w30
g(k-1) / f w31
w21 gˆ (k )
w12
s2 ( k ) w32 / f
g(k-2)
/ f
w22
w20
-1
Entrées couche cachée couche de sortie

25
Exemple:
Système: g (k )  0,4 sin(0,2k )  0,6 cos(0,4k )
Modèle: Un réseau de trois neurones
- Entrées: g(k 1) g(k  2)
- Sorties de la couche cachée
v1(k )  w10  w11g (k 1)  w12g (k  2)
v2 (k )  w20  w21g (k 1)  w22 g (k  2)

s1 (k )  f (v1 (k ))
s2 (k )  f (v2 (k ))
- Sortie de la couche de sortie
v(k )  w30  w31s1(k )  w32s2 (k )

gˆ (k )  f (v(k ))

26
Exemple:
Système: g (k )  0,4 sin(0,2k )  0,6 cos(0,4k )
Modèle: Un réseau de trois neurones
Critère à minimiser: J  1 g (k )  gˆ (k )2
2
Adaptation des paramètres:
J
w(k )  w(k 1)  w w  
w
Paramètres du neurone de sortie:
J J gˆ (k ) v(k )
w3i     i  0, 1, 2
w3i gˆ (k ) v(k ) w3i
Adaptation des paramètres du neurone de sortie:
w30   ( g (k )  gˆ (k )) f ' (v(k ))(1)
w31   ( g (k )  gˆ (k )) f ' (v(k ))s1 (k )
w32   ( g (k )  gˆ (k )) f ' (v(k ))s2 (k )

27
1
Critère à minimiser: J  g (k )  gˆ (k )2 w(k )  w(k  1)  w
2 J
w  
w
Paramètres des neurones de la couche cachée:
• Adaptation des paramètres w1i:
J J gˆ (k ) v(k ) s1(k ) v1(k )
w1i     i  0, 1, 2
w1i gˆ (k ) v(k ) s1(k ) v1(k ) w1i
w10   ( g (k )  gˆ (k )) f ' (v(k ))w31 f ' (v1 (k ))(1)
w11   ( g (k )  gˆ (k )) f ' (v(k ))w31 f ' (v1 (k )) g (k  1)
w12   ( g (k )  gˆ (k )) f ' (v(k ))w31 f ' (v1 (k )) g (k  2)
• Adaptation des paramètres w2i:
J J gˆ (k ) v(k ) s2 (k ) v2 (k )
w2i     i  0, 1, 2
w2i gˆ (k ) v(k ) s2 (k ) v2 (k ) w2i

w20   ( g (k )  gˆ (k )) f ' (v(k ))w32 f ' (v2 (k ))(1)


w21   ( g (k )  gˆ (k )) f ' (v(k ))w32 f ' (v2 (k )) g (k  1)
w22   ( g (k )  gˆ (k )) f ' (v(k ))w32 f ' (v2 (k )) g (k  2)
28
.

. Résultats
Evolution de g(k) (k=1:50) Evolution de g(k) et la sortie du neurone
1 0.8

0.6

0.6 0.4

0.2
0.2
g(k)

-0.2 -0.2

-0.6 -0.4

-0.6
g(k)
-1 gest(k)
0 10 20 30 40 50 -0.8

k -1
0 5 10 15 20 25 30 35 40 45 50
0.8

0.6
Après un seul passage
0.4

=0.25. Fonction d’activation:


1  e 2v (k )
0.2

0
f (v(k )) 
-0.2 1  e  2v ( k )
-0.4
Valeurs retrouvées après 15 passages:
w10  0.074, w11  1.375, w12  0.764
-0.6

g(k)
-0.8 gest(k)

w20  0.007, w21  0.259, w22  0.061


-1
0 5 10 15 20 25 30 35 40 45 50

Après 15 passages
w30  0.15, w31  1.57, w32  0.225
29
Modèle neuronal:
Système: Y ( z) B( z)
H ( z)  
U ( z) A( z)
A( z)  1  a1 z 1  ...  anA z nA B( z)  z 1 (b0  b1 z 1  ...  bnB z nB )

Equation récurrente:
A( z)Y ( z)  B( z)U ( z)

(1  a1z 1  ...  anA z nA )Y ( z)  (b0 z 1  ...  bnB z nB1 )U ( z)

z  F ( z)  f ((k   )Te )  f (k   )

y(k )  a1 y(k 1)  ...  anA y(k  nA )  b0u(k 1)  ...  bnBu(k  nB 1)

La sortie à l’itération k sera calculée en fonction des


anciennes mesures (de la sortie et de l’entrée) 30
Modèle neuronal:
Système: Y ( z) B( z)
H ( z)  
U ( z) A( z)
A( z)  1  a1 z 1  ...  anA z nA B( z)  z 1 (b0  b1 z 1  ...  bnB z nB )
Equation récurrente:
y(k )  a1 y(k 1)  ...  anA y(k  nA )  b0u(k 1)  ...  bnBu(k  nB 1)

Modèle basé sur les neurones


- Entrées: anciennes mesures de
la sortie et de l’entrée,
- Couche cachée
- Couche de sortie y(k-1)
y(k-nA)
Modèle
u(k) Sortie du
neuronal neurone
u(k-nB)

- yk)
Algorithme
d’adaptation + Sortie
désirée
31
Filtre neuronal
Sortie du filtre:
yˆ (k )  NN( y(k 1),..., y(k  nA ) u(k ),...,u(k  nB ))

NN: le réseau de neurone avec des pondérations


inconnues,

Critère à minimiser:
1
J  y(k )  yˆ (k )2
2
y(k) : sortie du canal
yˆ (k ) : sortie du filtre neuronal
wij (k )  wij (k 1)  wij
J
wij  
wij
32
Exemple:
0 ,0361 z  1 (1  2 z  1  z  2 )
Système: H (z) 
1  1,394 z 1  0 ,539 z  2
y(k)  1,394y(k 1)  0,539y(k  2)  0,0361u(k 1)  0,0722u(k  2)  0,0361u(k  3)

Modèle: un seul neurone à deux entrées


x1 (k )  y(k 1) x2 (k )  u(k 1) v(k )  w0  w1 y(k 1)  w2u(k 1)
yˆ (k )  f (v(k ))
1
Critère: J  y(k )  yˆ (k )2 wi (k )  wi (k 1)  wi i  0,1, 2
2

w0   ( y(k )  yˆ (k )) f ' (v(k ))(1) -1


y(k-1) w1 w0
w1   ( y (k )  yˆ (k )) f ' (v(k )) y(k  1) yˆ (k )
/ f
w2
w2   ( y(k )  yˆ (k )) f ' (v(k ))u(k 1) u(k-1)

33
.

. Résultats
Evolution de y(k) et la sortie du neurone lors du dernier passage (p=30).

=0,1. Fonction d’activation:


1  e 2v (k )
f (v(k )) 
1  e  2v ( k )
Valeurs retrouvées après 30 passages:

w0  0.0225, w1  0.716, w2  0.030

Critère Cr calculé après chaque passage.


N
Cr( p)    y(k )  yˆ (k )
2

k 1

34
Modèle neuronal d’un système non linéaire:
Système: y(k )  h( y(k 1),..., y(k  n), u(k 1),...,u(k  m))
h : fonction non linéaire

La sortie s’exprime d’une façon non linéaire en fonction des


anciennes mesures. y(k) dépend de: y(k-1), …, y(k-n) et de
u(k-1), …, u(k-m).
Exemples:
y(k )  y(k 1)u(k  2)   y(k  2)  1  2u(k 1)  3 y(k  2)
3

y(k 1)
y(k )   u ( k  2) 2

1   y(k  2)
3

Généralement, h(.) est inconnue.

On possède un fichier de mesures obtenues du système réel.

Comment peut-on déterminer le modèle neuronal du système?


35
Modèle neuronal:
Mesures disponibles:
k 1 2 … Nm
y(k) * * … *
u(k) * * … *

Modèle basé sur les neurones


- Entrées: anciennes mesures de la sortie et de l’entrée
- Couche(s) cachée(s) (1: couche, 2: couches, ou plus)
- Couche de sortie
y(k-1)

y(k-n) Modèle
u(k-1) Sortie du
neuronal neurone

u(k-m)
- yk)
Algorithme
d’adaptation + Sortie
désirée
36
Modèle neuronal
Sortie du modèle:
yˆ (k )  NN( y(k 1),..., y(k  n) u(k 1),...,u(k  m))

NN: le réseau de neurone avec des pondérations


inconnues,

Critère à minimiser:
1
J  y(k )  yˆ (k )2
2
y(k) : sortie du système réel
yˆ (k ) : sortie du modèle neuronal
wij (k )  wij (k 1)  wij
J yˆ (k )
wij     ( y(k )  yˆ (k ))
wij wij
37
Exemple: système non linéaire
(u(k 1))2
y(k )  0.8 y(k  2)  0.033y(k 1)  0.5u(k 1)  0.8
1  (u(k 1))2

Modèle: un réseau de neurones formé par:


- deux entrées y(k 1) u(k 1)
- une couche cachée à 10 neurones N1  10
- une couche de sortie avec un seul neurone.

-1 w10 -1
w11 s1(k) w0
v j (k )  wj 0  wj1 y(k 1) y(k-1)
/ f w1
 wj 2u(k 1) j  1,..., N1 w12 yˆ(k)
/ f
wN11
s j (k )  f1 (v j (k )) u(k-1) s10(k)
wN1
wN12 / f
v(k )  w0  w1s1 (k )  ...  wN1 sN1 (k )
wN10
yˆ (k )  f 2 (v(k )) -1

38
Exemple: v j (k )  wj 0  wj1 y(k 1) s j (k )  f1 (v j (k ))
 wj 2u(k 1) j  1,..., N1
v(k )  w0  w1s1 (k )  ...  wN1 sN1 (k ) yˆ (k )  f 2 (v(k ))
Critère 1
J   y(k )  yˆ (k )
2

2
Adaptation de poids du neurone de sortie:
J yˆ (k ) i  0,..., N1
wi      ( y(k )  yˆ (k ))
wi wi
yˆ (k ) yˆ (k ) v(k )
  f 2' (v(k ) si (k ) s0 (k )  1 k
wi v(k ) wi

wi   ( y (k )  yˆ (k )) f 2' (v(k ))si (k ) i  0,..., N1

wi (k )  wi (k 1)  wi i  0,1,..., N1


39
v j (k )  wj 0  wj1 y(k 1) s j (k )  f1 (v j (k ))
 wj 2u(k 1) j  1,..., N1
v(k )  w0  w1s1 (k )  ...  wN1 sN1 (k ) yˆ (k )  f 2 (v(k ))
Critère 1
J   y(k )  yˆ (k )
2

2
Adaptation de poids des neurones de la couche cachée:
J yˆ (k )
w ji      ( y (k )  yˆ (k )) j  1,..., N1 i  0,1, 2
w ji w ji
yˆ (k ) yˆ (k ) v(k ) s j (k ) v j (k )

w ji v(k ) s j (k ) v j (k ) w ji
yˆ (k )
 f 2' (v(k )) w j f1' (v j (k )) (1)
w j 0
yˆ (k )
 f 2' (v(k )) w j f1' (v j (k )) u (k  1)
w j 2
yˆ (k )
 f 2' (v(k )) w j f1' (v j (k )) y (k  1)
w j1 40
Adaptation de poids des neurones de la couche cachée:

w j 0   ( y (k )  yˆ (k )) f 2' (v(k )) w j f1' (v j (k )) (1)


j  1,..., N1
w j1   ( y(k )  yˆ (k )) f 2' (v(k )) w j f1' (v j (k )) y(k  1)

w j 2   ( y (k )  yˆ (k )) f 2' (v(k )) w j f1' (v j (k )) u (k  1)

w ji  w ji  w ji

41
.

. Résultats
Evolution de l’entrée u(k) et de la sortie du système y(k), L’entrée est une séquence
aléatoire entre -1 et 1. Le nombre de mesures est N=50.
1
u(k)
y(k)
0.5

-0.5

-1
0 10 20 30 40 50

42
.

. Résultats
Apprentissage du modèle neuronal.

=0,1.
- Fonction d’activation des neurones de la 1  e 2v ( k )
couche cachée (fonction non linéaire): f1 (v(k )) 
1  e2v( k )
- Fonction d’activation du neurone de sortie
(fonction linéaire): f 2 (v(k ))  v(k )

Valeurs retrouvées après 10 passages:


Neurones cachés
= [5.0862 -2.8734 -1.6731 1.2479 2.0088 -0.5774 1.8545
-4.1515 5.1003 -4.4444]
W1 = [-2.3070 2.6158; 3.7230 -3.2367;4.2229 2.6462; -2.5439 1.5002;-4.7879
3.2810;0.2275 3.9862;5.1520 3.6620;0.1137 -3.3557;-2.2720 -3.3015;-3.3476 -2.8881]

Neurone de sortie
W = [0.3150 -0.1296 0.2486 -0.2344 0.0522 0.1165 0.1690 -0.0399 -0.6324 -0.2772]
= 0.0926 43
.

. Résultats
Evolution de la sortie du système et de la sortie du modèle neuronal.

1
y(k)
sortie neurone
0.5

-0.5

-1
0 10 20 30 40 50

On constate que la sortie du modèle neuronal suit convenablement la sortie du système.

44
FIN

45

Vous aimerez peut-être aussi