Professional Documents
Culture Documents
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 avec une fonction dactivation non linaire sans couche cache
un rseau avec une fonction dactivation non linaire et une couche cache
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
Page 2 sur 5
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.
Apprentissage et Validation
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
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
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