Vous êtes sur la page 1sur 6

ENNONCE DU PROJET


On se propose d’approximer la fonction f ( x)  sin x  sur l’intervalle [0, 4]
2 

avec un réseau MLP à une couche cachée. Pour cela, on dispose de p échantillons
d’apprentissages xi , f ( xi ) choisis uniformément dans l’intervalle [0, 4] (par ex :
p=500). On définit au préalable certains indices de performances :

p
 ( y i  yi *) 2
i 1
 Erreur moyenne d’apprentissage  t 
p

Où yi est la sortie du réseau et yi* la sortie désirée ;

v
 ( y i  y i *) 2
i 1
 Erreur moyenne de validation  v 
v

Où v est le nombre d’échantillons de validation choisis uniformément dans l’intervalle


[0, 2] (par ex : v=100) et différents des échantillons d’apprentissages.

 Temps d’apprentissage : Ta= nombre d’itérations qui permettent d’obtenir  t   t d où

td représente l’erreur moyenne d’apprentissage désirée (par ex : td=0.01). Une


itération consiste en la présentation des p échantillons de la base d’apprentissage.
On utilisera une fonction d’activation sigmoïdale.

I. Faire le schéma de la structure du réseau MLP à une couche cachée (avec n neurones
dans la couche cachée) correspondant à ce problème.
II. Ecrire l’algorithme d’apprentissage des poids selon la méthode d’évaluation du
gradient par rétro propagation.
III. Ecrire le programme Matlab correspondant (Version 6 ou moins de 6).

IV. Présenter les résultats de la manière suivante :


IV.1 Pour p=100 :

a) Résultats pour n=1 (un neurone dans la couche cachée)


Sur une même figure, présenter les résultats de la sortie du réseau yi et de la sortie
désirée yi* pour plusieurs valeurs bien choisies du facteur .

b) Reprendre la question a) avec des valeurs de n >1 (par ex : 2 ; 3 ; etc.) dans la couche
cachée.
IV.2 Reprendre à partir de IV.1 pour p=200 ; puis 300 ; 500 et 700.

IV.3 Tracer la courbe des indices de performances en fonction du nombre


d’échantillons p (ou nombre d’exemples) et pour un nombre fixé de neurones n dans la
couche cachée.

V. Commenter les résultats obtenus et conclure.


RESOLUTION

I. Schéma de la structure du réseau MLP à une couche cachée (avec n neurones dans
la couche cachée) correspondant à ce problème

Les réseaux de neurones constitués de biais et de fonctions de transfert «


sigmoïdale » et une couche de sortie constituée de fonctions linéaire sont capables
d’approximer n’importe quelle fonction possédant un nombre fini de discontinuité.

Sigmoïdes
W1 
Entrée Fonction d’activation
W2 
Xi W3 Sortie
  Yi *

Wn


Entrée du système Une couche cachee Une couche de sortie

Figure 1:Réseau MLP du problème (feed-forward network)

II. L’algorithme d’apprentissage des poids selon la méthode d’évaluation du gradient


par rétropropagation.

L'algorithme de la rétropropagation est un algorithme de gradient itératif conçu


pour minimiser un critère quadratique ("à la puissance 2") d'erreur entre la sortie
obtenue d'un réseau multicouches et la sortie désirée. Cette minimisation est réalisée
par une configuration des poids adéquate. L'erreur (e) est la différence entre la valeur
désirée (d) pour le neurone de sortie et sa valeur calculée par propagation (x). Ce signal
d'erreur permet de définir une fonction de coût sous la forme :

 y i  yi )2 
t  i 1

p
Cet algorithme nécessite une fonction continue, non-linéaire et différentiable
comme fonction de transfert du neurone. Nous voulons ici approximer une fonction ;
On va effectuer l’apprentissage supervisé.

1. Initialisation
 Nombre d’entrées ;
 Nombre de sorties ;
 Nombre de couches cachées et de neurones intérieurs ;
 Constitution de la base de données d’apprentissage ;
 Pré-traitement des données d’entrées ;
 Poids à des valeurs aléatoires de faible grandeur.
2. Apprentissage
 Sélection d'un exemple d'apprentissage (E, d) dans la base d’apprentissage ;
 Présentation de la forme d'entrée (E) sur la couche d'entrée du réseau ;
 Calcul par propagation de la sortie obtenue ;
 Si erreur en sortie, alors pour tous les neurones i (depuis la sortie jusqu'à l'entrée)

 Si i est un neurone de sortie alors qi  2  (ai )  (yi  yi ) ;

 Si i est un neurone caché (ou d'entrée) alors qi   (ai )   Wki  yk  ;
k

( k : Neurones compris entre la couche actuelle et la couche de sortie)


 Application de la procédure de gradient. μ est un gain fixé par l'utilisateur.
Wij (t  1)  Wij (t )    qi  y j ;

 Tant que l'erreur est trop importante, retour à l'étape 2.


3. Validation
 L’ensemble doit contenir des exemples différents de ceux utilisés pour l’apprentissage ;
 Le critère de performance doit être vérifié.
III. Programme MATLAB correspondant
IV. Présentation des résultats

IV.1 Pour p=100

c) Résultats pour n=1 (un neurone dans la couche cachée)

Vous aimerez peut-être aussi