Vous êtes sur la page 1sur 20

D ÉPARTEMENT STPI

M ODULE D ’ OUVERTURE
T ROISIÈME A NNÉE

R ÉSEAUX DE N EURONES
&
A LGORITHMES G ÉNÉTIQUES

P HILIPPE P ONCET

2008/2009
2
TABLE DES MATIÈRES
————

1 Outils d’Optimisation 5

1.1 Quelques problèmes de minimisation . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Descente à pas constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Descente à pas optimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Recuit simulé 9

3 Apprentissage d’un neurone 11

4 Apprivoiser un réseau de neurones 13

4.1 Forme générale d’un réseau de neurones à 3 couches . . . . . . . . . . . . . . 13

4.2 Outils d’aide à la décision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.3 Package RNAG.zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.4 Tests sur un réseau 1D/1D de type régression . . . . . . . . . . . . . . . . . . 16

5 La classification 19

5.1 Classification binaire : Entrée 2D, Sortie 0/1 . . . . . . . . . . . . . . . . . . . 19

5.2 Syndrôme de Cushing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3
4
—— TD 1 ——

O UTILS D ’O PTIMISATION

Many discussions of neural networks unnecessarily introduce a large vocabulary of spe-


cialized terms. In fact, neural networks are a simple system of recursive equations that can be
optimized by conventional means.
W. S. Harlan

Ce TD introductif a pour but de revoir les outils de base nécessaires à la manipulation des
réseaux de neurones. Il sera demandé d’implémenter et de comparer quelques outils, principa-
lement par la mise en œuvre de méthodes d’optimisation. Cela permettra de voir en pratique
quels sont les intérêts et les lacunes de ces méthodes.

1.1 Quelques problèmes de minimisation

L’apprentissage d’un réseau de neurones consiste en général à faire coller au mieux sa ré-
ponse aux données fournies. Cela revient à minimiser la différence entre les données et les
valeurs accessibles par les valeurs atteignables par le réseaux de neurones : lorsqu’il y a suf-
fisamment de données, il s’agit mathématiquement d’un problème de moindre carrés non li-
néaires.

Bien que la méthode de Newton soit un outil conventionnel pour ce type de problèmes, il
apparaît que sa mise en œuvre peut s’avérer délicate, notamment par le fait que l’utilisateur
doive fournir la matrice hessienne de la fonction à minimiser.

5
On s’intéresse à la minimisation des fonctions suivantes :
1
(x + 2)2 + 4y 2

– Fonction 1 : J(X) =
20
√ 2 2
– Fonction 2 : J(X) = 4 + x2 − 5e−[(x−5) +y ]/2
cos((x + 2)2 + y 2 )
– Fonction 3 : J(X) = −
(1 + (x + 2)2 + y 2 )
2 2
– Fonction 4 : J(X) = 4 + sin x + sin y − 6e−[(x+1.2) +(y−5) ]/4

avec X = (x, y) ∈ R2 . Les graphs de ces fonctions sont représentés sur la figure 1.1.

Les méthodes de gradient sont des méthodes itératives sans Hessienne. Comme l’algorithme
de Newton, elles sont définies par une suite qui converge vers la solution du problème, à savoir
le minimum d’une fonction J.

Il en existe de nombreuses variantes : gradient à pas constant, gradient à pas optimal, gra-
dient conjugué (utilisant l’historique des dernières étapes), ...

Certaines utilisations sont spécifiques aux systèmes linéaires. Par exemple, Si A ∈ Mn,n
est symétrique définie positive et X ∈ Rn , quel est le minimum de la fonction
1
J(X) = X T A X − B T X (1.1)
2
Une autre approche, que A soit symétrique ou pas, consiste à faire une minimisation de résidus :
1
J(X) = kAX − Bk22 (1.2)
2

Question 1.1 – Quel est le minimum de ces deux fonctions ?

1.2 Descente à pas constant

Afin de minimiser une fonction J : Rn → R, on se donne un pas h (dit pas de descente, une
condition initiale X0 et on considère l’algorithme suivant :
Xk+1 = Xk − h∇J(Xk ) (1.3)
appelé algorithme de gradient, ou algorithme de descente, à pas constant.

Afin de pouvoir quantifier la capacité de la méthode à converger, on introduit la vitesse


de convergence. De nombreuses définitions peuvent lui être attribuées. Une possibilité (celle
retenue ici), est de compter le nombre d’itérations N nécessaire pour atteindre k∇J(XN )k <  :
la vitesse de convergence est alors la ralation qui lie  à N (par exemple  = O(1/N 2 )).

Question 1.2 – En se donnant un X0 dans le bon bassin d’attraction, observer la vitesse de


convergence et sa dépendance par rapport au pas h, pour les fonctions 1 à 4. Faire une compa-
raison avec la méthode de Newton pour les fonctions 1 et 3.

6
Figure 1.1 – Différentes fonctions types à minimiser, fonctions 1 et 3 centrées.

Question 1.3 – Quels sont les avantages et les inconvénients de cette méthode ?

Petit Théorème : Sous les bonnes hypothèses, si λmin et λmax denotent la plus petite et la plus
grande valeurs propres de Hess f (Xk ), alors le pas optimal est h = 2/(λmin + λmax ). De plus,
kXN − X ∗ k < /λmin , où X ∗ est le minimum exact de J.

1.3 Descente à pas optimal

Une variante, qui représente une forte amélioration de la méthode à pas constant, est de
mettre à jour le pas de descente à chaque itération :

Xk+1 = Xk − hk ∇J(Xk ) (1.4)

Question 1.4 – Comment trouver le pas optimal ? Testez !

Astuce : pensez aussi à faire help fminsearch.

Question 1.5 – Pour une résolution de système linéaire (équations 1.1 et 1.2), comparez la
perspicacité de cette méthode avec l’algorithme de Newton.

7
Le calcul de hessienne étant en général difficile, il existe des techniques d’approximation
de la hessienne : il s’agit de la méthode de Broyden-Fletcher-Goldfarb-Shanno (ou plus simple-
ment BFGS ou quasi-Newton).

1.3.1 Synthèse

Question 1.6 – En cas de plusieurs minima locaux, comment vont se comporter ces méthodes ?

Question 1.7 – Si vous ne connaissez pas la forme de la fonction à minimiser, quel problème
allez-vous rencontrer ?

8
—— TD 2 ——

R ECUIT SIMULÉ

Cet algorithme d’optimisation sans gradient est très utilisé dans le milieu industriel (voir
figure 2.1). Il s’agit du premier exemple d’algorithme génétique.

Le principe est simple : on se donne une condition initiale X 0 ∈ Rd que l’on réplique en K
exemplaires, par Xk0 = X 0 avec k = 1..K. On se donne également une longueur caractéristique
d’exploration σ > 0, que l’on appellera plus tard le paramètre de mutation.

On considère K réalisations Wk , k = 1..K d’une loi normale centrée réduite N (0, 1) en


dimension d. On obtient alors une séquence de valeurs temporaires

X̃k = Xkn + σWk

Une itération de l’algorithme du recuit simulé est alors donnée par :



n+1 X̃k si J(X̃k ) < J(Xk )
Xk = avec k = 1..K
Xkn sinon

Question 2.1 – Quels sont les avantages et les inconvénients de cette méthode ?

Question 2.2 – Quantifier sa vitesse de convergence.

9
Figure 2.1 – Utilisation du recuit simulé dans un contexte industriel

10
—— TD 3 ——

A PPRENTISSAGE D ’ UN NEURONE

Un neurone analogique à une entrée x et une sortie y, tous deux scalaires, associe ces états
via une fonction d’activation φ. Outre le type d’activation, on considère généralement quatres
paramètres fondamentaux :
– le biais d’entrée α
– le poids d’entrée p
– le poids de sortie w
– le biais de sortie β
et le neurone est alors une fonction de la forme

y = g(x) = β + wφ(α + px) (3.1)

Les types d’activation les plus commun, c’est à dire les choix les plus habituels pour la fonction
φ, sont les fonctions Heaviside (neurone binaire), logistique (binaire régularisé et/ou progressif),
ou encore gaussien (très répendu dans la littérature).

On s’intéresse ici à l’activateur logistique φ(z) = 1/(1 + e−z ), et on génère une quarantaine
d’états (xn , yn = g(xn )) avec −5 6 xn 6 5 d’un neurone avec α = 1, β = 2, p = 2 et w = 3.

Question 3.1 – Utiliser votre meilleur algorithme du TD1 pour l’apprentissage de ce neurone,
c’est à dire l’identification de ses paramètres, en partant d’un état trivial α = β = w = p = 0.

11
12
—— TD 4 ——

A PPRIVOISER UN RÉSEAU DE NEURONES

4.1 Forme générale d’un réseau de neurones à 3 couches

Ce premier TD à pour but de se familiariser avec la construction d’un réseau de neurones,


et de comprendre de quels paramètres dépend son apprentissage, afin de le faire se comporter
comme on le souhaite.

Un réseau de neurones analytique à trois couche comporte une couche d’entrée, une couche
d’activation (ou d’opération) et une couche de sortie.

On considère un réseaux de N neurones ayant comme entrée une variables x ∈ Rd et comme


sortie une variable g(x, θ) ∈ RK . Les paramètres θ caractérisant le réseau de neurones sont un
ensemble de quatre paramètres : Le biais d’entrée α ∈ RN , les poids d’entrée P ∈ MN,d , les
poids de sortie W ∈ MK,N et le biais de sortie β ∈ RK . On obtient alors l’expression suivante

13
pour la k ieme composante de sortie de la fonction g :

N d
!
X X
gk (x, θ) = βk + wkh φ αh + phj xj
h=1 j=1

où θ = (β, W, α, P ) et où φ est la fonction d’activation d’un neurone. Nous considèrerons en


pratique la fonction logistique comme activateur :

1
φ(z) =
1 + e−z

avec la convention [φ(X)]i,j = φ(Xi,j ), dite de mapping.

Pour un ensemble de m entrées à valeur dans Rd , on peut généraliser la formule ci-dessus à


X ∈ Md,m , avec une absence de renormalisation de lecture : e = (1, . . . , 1)T ∈ Rm . On obtient
alors la formule algébrique d’un réseau de neurones :

g(X, θ) = β ⊗ e + W φ (α ⊗ e + P X)

où (a ⊗ b)i,j = ai bj . En fait, cela se généralise avec une couche de sortie :


g(X, θ) = φ0 β ⊗ e + W φ (α ⊗ e + P X)

où φ0 est l’identité (cas de la régression) ou la fonction logistique (cas de la classification). Dans


nos travaux, les activateurs φ seront logistiques où gaussiens.

Question 4.1 – Mis à part la nature de la couche de sortie φ0 et des activateurs φ, combien
faut-il de paramètres réels pour décrire un réseau de neurones ?

4.2 Outils d’aide à la décision

Voici deux exemples de réseaux de neurones utilisé comme outils d’aide à la décision, pour
le diagnostic de pathologies. Le premier diagramme décrit un réseau à entrée dans R6 , à 6
neurones et à sortie dans R, retournant la probabilité d’infarctus du myocarde en fonction des
diagnostiques (de divers types : réels, entier ou binaires).

14
Le second exemple est un diagnostiqueur automatisé pour les pathologies faisant ressortir
un symptôme commun : la douleur abdominale. Il s’agit un réseau à 6 entrées et 7 sorties.

Reste à savoir comment fonctionne l’apprentissage d’un réseau de neurones !

15
4.3 Package RNAG.zip

L’archive contenant les fichiers permettant d’utiliser l’outil décrit ci-dessus est situé à l’adresse
http ://www-gmm.insa-toulouse.fr/ poncet/teaching/teaching.html#RNAG
Il contient les fichiers suivants :
– rnEval : Evaluation de la formule de g pour un échantillon x et pour les caractéristiques
du réseau de neurones
– encodeNetwork : Transforme l’ensemble (biais de sortie/poids de sortie/biais d’entrée,
poids d’entrée) en une liste de paramètres de taille k + N + kN + N d
– decodeNetwork : Fait l’opération inverse de encodeNetwork.
– randomState : Initialise un réseau sous sa forme encodée.
– initState : Initialise un réseau à zéro sous forme décodée (retourne les biais et poids nuls
mais aux bonnes dimensions).
– fitted : Retourne la valeur prédite par le réseau de neurones.
– missVectFit : Mesure les écarts entre données et modèle.
– performFit : Lance l’apprentissage du réseau (voir ci-dessous).
La procédure d’apprentissage du réseau est réalisée par la fonction
[Etat, Erreur]=performFit(xdata,ydata,EtatInitial,tol,maxiter,decay)
qui, pour un echantillon (X, Y ) ∈ Rp × Rp minimise la fonction erreur
p
X
θ 7−→ E(X, θ) = kg(xi , θ) − yi k2 + λkθk2
i=1

où λ est le paramètre appelé weight decay, le decay du code.

Pour réaliser ceci, la fonction lsqnonlin de Matlab est utilisée car le problème est du
type : trouver θ̂ tel que
p
X
E(X, θ̂) = min E(X, θ) = min Fi (X, θ)2
θ θ
i=1

avec Fi (X, θ) = kg(xi , θ) − yi k.

Dans le cas d’une sortie 1D, on a simplement Fi (X, θ) = g(xi , θ) − yi , c’est à dire un
problème de moindre carrés non linéaires.

4.4 Tests sur un réseau 1D/1D de type régression

On s’intéresse au signal donné par la fonction de Wahba et Wold :


l(x) = 4.26(e−x − 4e−2x + 3e−3x)
pour x ∈ [0, 3], échantillonné par xi = 3i/n, i = 1..p = 100. On bruite alors ce signal par un
bruit gaussien Ni d’écart-type σ = 0.2 (voir la fonction randn de Matlab) :
yi = l(xi ) + Ni

16
Tracé de la courbe de Wahba et Wold et d’un échantillon bruité.

4.4.1 Phénomènes observables lors de l’apprentissage

Question 4.2 – Créer un échantillon selon le modèle ci-dessus. Tracer le graphe de la fonction
l et le nuage de point (X, Y ). Ces données sont fournies dans le fichier TD1.m.

Question 4.3 – Ajuster un modèle de réseau de neurones pour estimer g. On prendra par défaut
20 neurones, 1000 itérations, decay λ = 0, tolérance de convergence 10−8 (voir TD1.m).

On fera varier :
– La dimension du réseau de neurones (1,2, puis 20 neurones)
– L’initialisation
– Le nombre d’itérations (100, 1000, 2000 puis 4000)
– La régularisation (le decay), λ = 0 puis 10−3
– Le critère d’arrêt, tolérance de 10−5 , 10−6 puis 10−8 (avec un nombre maximum d’itéra-
tions de 10000).
– La taille de l’échantillon et la variance du bruit
Quels sont les paramètres ayant une grande influence ?

Question 4.4 – Que se passe-t-il au niveau de la nature du problème d’optimisation lorsque


le nombre de neurones augmente ? A partir de combien de neurones le problème n’est plus
admissible mathématiquement ?

Question 4.5 – Dresser un tableau de synthèse des configurations où le réseau de neurones est
pris en défaut.

17
Question 4.6 – La variance de la quantité g(x, θ̂) − l(x) est-elle un bon critère de qualité pour
le résultat donné par le réseau de neurones ?

4.4.2 Amélioration de la vitesse de convergence

Question 4.7 – Calculer les dérivées partielles du signal de sortie g(x, θ) en fonction des va-
riables d’état θ.

Question 4.8 – Injecter ce calcul dans la fonction rnEval et activer l’option d’optimisation
avec Jacobienne. Qu’observe-t-on au niveau de la vitesse de convergence (faire quelques tests,
lire help cputime) ?

18
—— TD 5 ——

L A CLASSIFICATION

5.1 Classification binaire : Entrée 2D, Sortie 0/1

Le fichier crabs.dat est un fichier de données réelles, recueillies par le biologiste Mahon
(1974), à partir de mesures effectuées sur 200 crabes de la variété Leptograpsus variegatus, sur
la côte ouest de l’Australie. Les crabes sont bleus ou oranges. Mahon a identifié 50 mâles et 50
femelles de chaque couleur. Pour chaque spécimen, il a effectué 5 mesures :

– la longueur de la carapace (CL) ;


– la largeur de la carapace (CW) ;
– la taille du lobe frontal (FL) ;
– la largeur de l’arrière du crabe (RW) ;
– l’épaisseur du corps (BD).

Nous souhaitons construire une règle pour prédire le sexe d’un crabe, à partir de deux me-
sures seulement : FL et RW, par exemple. Pour cela nous utilisons un réseau de neurones pour
modéliser les probabilités conditionnelles pour que le crabe soit un male ou une femelle connais-
sant les variables FL et RW (en principe, la somme des deux probabilités est égale à 1). Les
unités de sorties seront logistiques.

Question 5.1 – On souhaite réaliser un apprentissage d’un réseau de neurones afin de prédire
le sexe d’un crabe. Comprendre et utiliser le fichier TD5.m, avec un réseaux de 20 neurones à
couche de sortie logistique, une tolérance faible afin d’éviter les effets de plateau.

Question 5.2 – Passer de 1000 à 5000 itérations. Qu’observe-t-on ? Pourquoi ?

19
Question 5.3 – Modifier le critère à minimiser en introduisant l’entropie :

yik 1 − yik
XX    
k k
E(θ) = yi log + (1 − yi ) log (5.1)
i k
g k (θ, xi ) 1 − g k (θ, xi )

au lieu d’utiliser la méthode des moindre carrés non linéaires. Commencer par utiliser le code
existant, avec fminsearch, puisque la fonction à minimiser n’est plus une somme de carrés.
Qu’observe-t-on ?

Question 5.4 – Calculer les dérivées partielles de l’entropie et utiliser la méthode BFGS (routine
de bfgswopt.m).

5.2 Syndrôme de Cushing

Le fichier Cushings.dat est un fichier de données biomédicales (Aitchison et Dunsmore,


1975), associées à un syndrome de dysfonctionnement de la glande adrénale : le syndrome de
Cushings. Pour ce syndrome, trois types de diagnostic peuvent être effectués. Ils sont représen-
tés par les symboles a ; b ; c. Sans rentrer dans les détails, notons que

a signifie "adénomie",
b signifie "hyperplasie bilatérale",
c signifie "carcimonie".

Ces symboles représentent la cause du dysfonctionnement : une sécrétion trop importante


de cortisol. Les données observées sont des mesures de stéroides métabolites obtenues

Question 5.5 – A partir d’analyses d’urine. Visualiser les données avec leurs étiquettes de
classe.

Question 5.6 – Etablir une méthodologie permettant de réaliser à l’aide d’un réseau de neurones
une classification à trois espèce afin de pouvoir prédire un diagnostique le plus fiable possible.

Question 5.7 – Visualiser les frontières séparant les différentes classes pour une prédiction
effectuée à l’aide d’un réseau de neurones.

Une méthode (lorsqu’il n’y a que deux classes) consiste à tracer la ligne de niveau 0.5 de la
prédiction. Pour cela, on peut utiliser contour. La méthode se généralise à plusieurs classes en
calculant les lignes de niveau 0 associées aux différences de prédiction.

20