Rnag TD
Rnag TD
Rnag TD
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
2 Recuit simulé 9
5 La classification 19
3
4
—— TD 1 ——
O UTILS D ’O PTIMISATION
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.
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
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.
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.
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 :
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.
Question 2.1 – Quels sont les avantages et les inconvénients de cette méthode ?
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
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 ——
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.
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
1
φ(z) =
1 + e−z
g(X, θ) = β ⊗ e + W φ (α ⊗ e + P X)
g(X, θ) = φ0 β ⊗ e + W φ (α ⊗ e + P X)
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 ?
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.
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
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
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.
16
Tracé de la courbe de Wahba et Wold et d’un échantillon bruité.
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.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 ?
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
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 :
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.
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).
a signifie "adénomie",
b signifie "hyperplasie bilatérale",
c signifie "carcimonie".
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