You are on page 1of 5

MASTER : Traitement de l'Information et Exploitation des Donnes

Fouad Badran, Ccile Mallet, Awa Niang, Sylvie Thiria


(co-ralisation : Charles Sorror)

TPB03:UtilisationdunMLPpourlaclassificationdeChiffresManuscrits

I - Les Objectifs
Le but de ce TP est de reconnatre des chiffres manuscrits laide de rseaux de neurones. Le
TP Comprend trois parties :
La premire partie ( IV) consiste comparer diffrentes architectures du rseau. On
tudiera successivement
-

un rseau linaire sans couche cache,

un rseau avec une fonction dactivation non linaire sans couche cache

un rseau avec une fonction dactivation non linaire et une couche cache

On comparera les performances de ces diffrentes architectures


Dans la seconde partie ( V) on tudiera l'importance du choix du codage.
==============================

Le rapport de TP devra tre synthtique. Il doit montrer la dmarche suivie, et ne faire


apparatre que les rsultats ncessaires. Il sagit de quantifier les rsultats tout en rdigeant un
rapport qui les analyse et les commente. Les paramtres utiliss devront tre indiqus.

Complment de cours : On prsente le plus souvent la technique de larrt prmatur (ou early
stopping ) en sappuyant sur la courbe derreur en validation. En fait, on peut tout aussi bien
sappuyer sur la courbe de performance; ce qui est plus adapt dans le cas de la classification.
Cest ce qui sera pratiqu dans ce TP comme cela pourra tre observ.

Page 1 sur 5

Travaux dirigs de Rseaux de Neurones

II - Les Donnes Brutes


x.mat : Est la base de donnes de chiffres manuscrits en entre du rseau. Elle est compose de
480 chiffres cods en binaire (1), dans une matrice 256x480. Cest dire, chaque bitmap
binaire 16x16 a t transforme en un vecteur de dimension 256 qui, son tour, correspond une
colonne de la matrice du fichier x.mat .
t.mat : Contient les sorties dsires qui sont associes chaque chiffre de x.mat dans le mme
ordre. Chaque rponse dsire est constitue dun vecteur colonne de longueur 10, rempli de -1
partout sauf la position dont lindice correspond au chiffre manuscrit. cette position l, le
composant du vecteur vaut +1. Lensemble de tous ces vecteurs est organis dans la matrice sous
forme dune matrice 10x480 stocke dans le fichier t.mat
Le programme display_pat. m permet la visualisation de cette base de donnes. Par exemple,
pour voir les 10 premires formes :
>> load x.mat
>> display_pat(x,1,10)

Page 2 sur 5

Travaux dirigs de Rseaux de Neurones

III - Gnralits sur le droulement du TP


On procdera en deux temps :
- Une phase d'apprentissage qui permet de dfinir le rseau optimal (architecture et poids du
rseau)
- Un calcul des rsultats sur les donnes de Test qui n'ont pas t utilises lors de
l'apprentissage, dont le but est dvaluer les performances du rseau obtenu.
Lors de la phase dapprentissage les donnes de validation sont utilises pour ventuellement
interrompre prmaturment (early stopping) lapprentissage lorsque le dernier minimum de la
performance en validation na pas t amlior depuis un certain nombre ditrations (variable
nb_it_addpmin dans les programmes dapprentissage).
A) Rpartition des donnes
On va donc diviser lensemble de donnes en 3 parties de la faon suivante :
-

Ensemble dapprentissage : formes de 1 200 ou 300. Il sert calculer les poids du


rseau. On vrifiera que la qualit des rsultats samliore lorsque lon prend plus
dexemples en apprentissage mais le temps de calcul augmente. Il est conseill dans un
premier temps de travailler avec un nombre limit de dexemples (200) dans lensemble
dapprentissage pour limiter au maximum les temps de calcul. Dans un second temps on
pourra utiliser plus de donnes (300) pour confirmer les conclusions obtenues.

Ensemble de validation : formes de 301 400. Il permet de vrifier que les


performances du rseau obtenu peuvent se gnraliser, il sert vrifier quil ny a pas de
sur-apprentissage, et dterminer si lapprentissage est termin. Ce sont les
performances sur cet ensemble qui permettent de dfinir larchitecture optimale du
rseau.

Ensemble de test
: formes de 401 480. Lensemble de test ne doit pas intervenir
dans la dtermination du rseau de quelque manire que ce soit ni pour la dtermination
des poids (apprentissage) ni pour la dtermination de larchitecture (validation). Il sert
valuer les performances du rseau obtenu.

B) Utilisation des programmes fournis pour le droulement du TP

Apprentissage et Validation

. exempleMLP.m permet de dclencher lapprentissage et la validation en ayant dfini diffrents


paramtres ncessaires aux simulations (architecture, pas dapprentissage, nombre ditrations,
nombre de dexemples dans les ensembles de dapprentissage, et de validation). Ce programme
appelle un programme dapprentissage (trainingter.m ) qui effectue automatiquement tous les
traitements ncessaires comme la minimisation, les calculs derreur et de performance en
apprentissage et en validation.
La frquence de calcul des rsultats est dtermine par le paramtre ecf. On fixera ecf=10.
La frquence de laffichage des courbes graphiques de lapprentissage est contrle par le
paramtre gdf. Pour gagner du temps dexcution, il est conseill daffecter une valeur leve ce
paramtre.
On prcise entre autres que le nombre ditrations est dfini par la variable n_epochs sachant
que : 1 epoch = 1 passage de la base dapprentissage.

Test

Pour calculer lerreur et la performance du rseau sur lensemble de test, les tudiants devront
modifier ou complter le fichier exempleMLP.m en sinspirant de la faon dont les rsultats en
validation sont calculs laide des diffrents programmes fournis.

Page 3 sur 5

Travaux dirigs de Rseaux de Neurones

IV - 1re Partie du TP :
Optimisation de larchitecture du classifieur MLP
LObjectif est de dterminer larchitecture optimale du rseau et de calculer ses performances
en apprentissage validation et test. Trois types darchitecture sont possibles :
A) Rseau linaire entirement connect sans couche cache : (paramtre struct1 gal 1)
Correspond un rseau sans couche cache avec une fonction de transfert linaire (pour
les cellules de sortie). Linitialisation des poids et ladaptation des pas dapprentissage se
fait automatiquement en tenant compte du nombre dentre de chaque neurone.
B) Rseau Sigmodal entirement connect sans couche cache (paramtre struct1 gal 2):
- Rseau identique au prcdent mais avec une fonction dactivation tangente hyperbolique
(tanh) sur les cellules de sorties
C) Rseau entirement connect une couche cache (paramtre struct1 gal 3) :
- Il utilise la fonction dactivation tangente hyperbolique (tanh) pour les cellules caches
et une fonction linaire pour celles de sortie
Travail faire :
Donnez les lignes de code qui permettent deffectuer les adaptations des poids et des pas
Vous devez comparer les 3 architectures proposes et les analyser en terme de :
- performance sur la base de validation ;
- nombre ditrations ncessaires pour observer la convergence
Il faut raliser diffrentes expriences car selon linitialisation des poids, les rsultats sont
diffrents, et jouer aussi sur le pas dapprentissage (lr). Il conviendra de mettre un nombre
ditrations (n_epochs) suffisant (de faon ce que learly stopping puisse se produire).
Pour le rseau couche cache, il faudra de plus faire varier le nombre de cellules caches
(hidden_layer).
Une fois le rseau optimal obtenu vous devez, pour chaque architecture de rseau, calculer ses
rsultats (erreur et performances) sur lensemble de Test. Il vous appartiendra dintgrer les
lignes de codes ncessaires pour cela.
Pour chaque cas de type de rseau, vous devrez inclure dans votre rapport le graphe des courbes
dapprentissage correspondant la meilleure performance obtenue sur lensemble de Test
.
Les fichiers des poids finaux devront tre joints au document de manire ce que le lien entre
les fichiers et les expriences soit clair de faon permettre la vrification.
remarques
x.mat et t.mat sont les fichiers de donnes utiliser pour cette 1re partie de TP.

Page 4 sur 5

Travaux dirigs de Rseaux de Neurones

V - 2me Partie du TP :
Optimisation du codage des donnes
Lobjectif de cette seconde partie est de comparer les performances dun classifieur MLP en
fonction des diffrents types de codage que lon va faire sur les chiffres, et qui serviront
dentre au rseau de neurones.
Description des codages utiliss :
HX : histogramme des projections du chiffre sur laxe des x (dans chaque colonne on calcule le
nombre de pixels noir le nombre de pixels blancs). HX est donc un vecteur de 16 composantes.
HY : histogramme des projections du chiffre sur laxe des y (dans chaque ligne on calcule le
nombre de pixels noir le nombre de pixels blancs). HY est aussi un vecteur de 16 composantes.
PH : profil haut pour chaque colonne, on code la coordonne de la premire transition blanc/noir
en partant du haut. PH est un vecteur de 16 composantes.
PB : profil bas pour chaque colonne, on code la coordonne de la premire transition blanc/noir
en partant du bas. PB est un vecteur de 16 composantes.
PG : profil gauche pour chaque ligne, on code la coordonne de la premire transition blanc/noir
en partant de la gauche. PG est un vecteur de 16 composantes.
PD : profil droit pour chaque ligne, on code la coordonne de la premire transition blanc/noir en
partant de la droite. PD est un vecteur de 16 composantes.
(Il est noter que les coordonnes sont indice de la gauche vers la droite en ligne et de haut en
bas pour les colonnes)
Ces 6 conventions de codage, peuvent tre combins pour former diffrents fichiers
dapprentissage. Nous vous soumettons les diffrents cas suivants :
1 : codage HX seul ; vecteur de 16 composantes. Fichier dentre : hx.mat
2 : codage HX,HY ; vecteur de 32 composantes. Fichier dentre : hx_hy.mat
3 : codage PG,PD ; vecteur de 32 composantes. Fichier dentre : pg_pd.mat
4 : codage HX,HY,PG,PD ; vecteur de 64 composantes. Fichier dentre : hx_hy_pg_pd.mat
5 : codage PB,PH ; vecteur de 32 composantes. Fichier dentre : pb_ph.mat
6 : codage HX,HY,PB,PH ; vecteur de 64 composantes. Fichier dentre : hx_hy_pb_ph.mat
On prcise que toutes les donnes de ces fichiers ont t de surcrot normalises dans
lintervalle [-1, 1] , SAUF hx.mat
Le fichier des sorties dsires est le fichier t.mat
Travail faire :
Dans chacun des 6 cas de codage, vous devrez entraner un rseau MLP avec une couche cache et
chercher un nombre optimal de neurones dans cette couche cache (entre 10 et 20, en
gnral).
Vous devrez comparer ces essais et les analyser en terme de :
A) performance sur la base de test ;
B) nombre ditrations pour observer une saturation ;
Quel codage allez vous choisir ?

Page 5 sur 5

You might also like