Vous êtes sur la page 1sur 49

Réseaux de Neurones

Tutorial en Matlab

Tarik AL ANI,
Département Informatique
ESIEE-Paris
E-mail : t.alani@esiee.fr
Url: http://www.esiee.fr/~alanit
http://www esiee fr/ alanit

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ


Prétraitement et post-
post-traitement
Æ Réseau pplus pperformant
• Fonctions de prétraitement : concerne les entrées Æ
transformer les entrées à une forme meilleure pour
l’utilisation du réseau.
• Fonctions de post-traitement
post traitement : concerne les valeurs
cibles Æ transformer les entrées à une forme meilleure
pour ll’apprentissage
apprentissage du réseau,
réseau et effectuer les
transformées inverses vers les caractéristiques des données
originales des cibles.
cibles

19/11/2008 1
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement

La majorité de méthodes sont fournis automatiquement


quand vous créez un réseau.
q
Vous pouvez passer outre les fonctions par défaut de
traitement des entrées et des sorties quand vous appelez une
fonction de création de réseau, ou en réglant les propriétés
de réseau après la création du réseau.
réseau
net.inputs{1}.processFcns pour afficher la liste des
fonctions de traitement des entrées
net.outputs{2}.processFcns pour afficher la liste des
f ti
fonctions d traitement
de t it t des
d sorties
ti d’un
d’ réseau
é à 2 couches.
h
Vous pouvez utiliser ces propriétés pour changer (non recommandé)
l fonctions
les f ti par défaut
déf t processFcns
F . 2
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement

Plusieurs fonctions par défaut possèdent des paramètres qui


définissent leurs opérations. Vous pouvez accéder ou
changer le ième paramètre de la fonction d’entrée ou de
sortie :
net.inputs{1}.processParams{i} pour les fonctions de
traitement des entrées
net.outputs{2}. processParams{i} pour les fonctions de
traitement des sorties dd’un
un réseau à 2 couches.
couches

19/11/2008 3
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement

Pour le réseau MLNN les fonctions par défaut sont :


IPF – Rangé de fonctions de traitement de l’entrée.
Déf t estt {'fixunknowns
Défaut {'fi k ''
','remconstantrows
t t ''
','mapminmax
i '}
'}.
OPF - Rangé de fonctions de traitement de la sortie.
Défaut est {'remconstantrows
{ remconstantrows ','mapminmax
, mapminmax '}. }.

Fonctions de prétraitement et de post-traitement sous Matlab:


1. Min et Max (mapminmax)
Avant l’apprentissage, il est souvent utile d’étalonner les entrées et
les cibles pour qu'ils tombent toujours dans une gamme spécifiée par
[-1,1] (normaliser les entrées et les cibles).
[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);
net = train(net,pn,tn);
19/11/2008 4
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement

Pour reconvertir les sorties aux mêmes unités des cibles d’origine :
an = sim(net,pn);
a = mapminmax(`reverse',an,ts);

Si mapminmax est utilisé pour prétraiter les données de jeu


d’apprentissage, alors chaque fois que le réseau entraîné est utilisé
avec de d nouvelles
ll entrées
é il devraient
ils d i ê
être prétraités
é i é avec le l
minimums et les maximums qui ont été calculés pour le jeu
dd'apprentissage
apprentissage conservé dans la configuration de ps :
Soit « pnew » un nouvel ensemble d’entrées au réseau déjà entraîné
pnewn = mapminmax(
mapminmax(`apply'
apply ,pnew,ps);
pnew ps);
anewn = sim(net,pnewn);
anew = mapminmax(
mapminmax(`reverse'
reverse ,anewn,ts);
anewn ts);
19/11/2008 5
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement

2. Moyenne et Ecart-type (mapstd)


4. Principal Component Analysis (processpca)
5. Traitement des entrées inconnues (fixunknowns)
6. Traitement des cibles inconnues (ou ne soucier pas «Don't
Care ») (fixunknowns)
7. Analyse post-apprentissage (postreg)

19/11/2008 6
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement

7. Analyse post-apprentissage (postreg)


La performance d'un réseau entraîné peut être mesurée dans une
certaine mesure par les erreurs sur les jeux d’apprentissage, les jeux
de validation et les jeux d'essai, mais il est souvent utile d’analyser
plus en détail la réponse de réseau.
réseau Un moyen de faire cela est
d’effectuer la régression linéaire.
a = sim(net,p);
sim(net p);
[m,b,r] = postreg(a,t)
m : pente
b = intersection de la ligne droite optimale (liant les cibles aux sorties
de neurones) avec ll’axe
axe y
r = coefficient de corrélation de Pearson

19/11/2008 7
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post-
post-traitement
Coefficient de corrélation de Pearson entre deux
ensemble d’échantillons de variables aléatoires
La covariance entre deux variables aléatoires x et y est mesurée par
N

N-1∑
ρxy = E[(X-μˆ x)(Y -μˆ y)] = 1 (xk -μˆ x)(yk -μˆ y)
k =1
Où mx et my sont les moyens de deux variables.
Si x a tendance à être auau-dessus
dessus de sa moyenne quand y est au au-dessus
dessus de sa
moyenne alors rxy sera positif. S'ils ont tendance à être sur les côtés opposés de leurs
moyennes rxy sera négatif. Le coefficient de corrélation de Pearson est la
covariance normalisée
μψ Æ
ρ
r = XY , -1 ≤r
≤r ≤1
σ Xσ Y ρ = 0.9

1 Æ corrélation négative parfaite


(a) Si r = -1
(b) Si r = 1 Æ corrélation positive parfaite

ρ = − 0.7
19/11/2008 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ 8
Annexe 1 et post-
Prétraitement post-traitement


Régression
i linéaire
li é i
Modéliser par une fonction linéaire la relation entre deux variables x et y : étant
donné un ensemble de N échantillons de couples de données {xi, yi}, nous
cherchons à estimer yi à partir de xi en utilisant un modèle linéaire : yˆi = a xi +b

La régression avec une variable d d’entrée


entrée scalaire (x) est souvent appelée la
régression linéaire uni-
uni-variée pour le distinguer de la régression linéaire multi
multi--
variée où nous avons une variable d’entrée vectorielle (x). La fidélité du modèle
aux données peut être mesurée par la fonction de coût de moindre carré :
N
E = ∑ (yk − yˆk)2
k =1

19/11/2008 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ 9


Annexe 1 et post-
Prétraitement post-traitement Régression linéaire

Les valeurs de a (la pente de la ligne) et b qui réduisent au minimum la fonction E


peuvent être calculées en mettant les premières dérivées de la fonction de coût au
zéro et résolvant les équations simultanées résultantes. La solution est
a=
ρxy , b = μ − aμ
y x
σ x2
Cela permet l'adaptation par la moindre carrés d'une ligne de régression à un jeu
de données comme indiqué dans la Figure suivante :

La ligne de régression linéaire est adaptée en réduisant au minimum la distance


q point
verticale entre elle même et chaque p de données. Les lignes
g évaluées sont
yˆ = 0.9003 x + 0.2901 et yˆ = − 0.6629 x + 4.9804
19/11/2008 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ 10
Annexe 1 et post-
Prétraitement post-traitement Régression linéaire

Le modèle s’adaptera à certaines données mieux que d'autres; celles que ce


modèle s’adaptent bien constituent le signal et celles que ce modèle ne s’adapte
pas bien constituent le bruit. La puissance du bruit est mesurée par la variance du
bruit : N
σˆe2 = 1

N-1 k =1
(yk −μˆk )2

et la puissance du signal est donnée par σˆ y2 - σˆe2


Le rapport signal sur le bruit est donnée par est alors σˆ y - σˆe
2 2

σˆe2

19/11/2008 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ 11


Annexe 1 et post-
Prétraitement post-traitement Régression linéaire

Nous pouvons démontrer que


r = σx a
σy
Ainsi le signe de la pente a de la ligne de régression définit le signe de la
corrélation. Cependant, La corrélation est aussi une fonction des écart-types des
variables
i bl x et y; par exemple l sii x est très
è grand,d il est possible
ibl d'avoir
d' i une
corrélation forte bien que la pente puisse être très petite : r mesure uniquement
la corrélation linéaire. Il est tout à fait possible que deux variables aient une
relation non-linéaire forte (c'est-à-dire soient non-linéairement corrélées) mais
que r =0.
La puissance de la corrélation peut aussi être exprimée en terme de quantités du
modèle de régression linéaire
r =
2 σ
ˆ y - σ
2 ˆe
2

σˆ y2
Cette quantité mesure la proportion de la variance décrite par un modèle linéaire,
une valeur de r2 = 1 indique que ce modèle décrit parfaitement la relation entre x et
y.
19/11/2008 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ 12
Feed Forward Neural Network (FFNN)

PERCEPTRON

19/11/2008 13
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON

Création d’un perceptron d’une couche à R


eentrées
ées eet S so
sorties:
es:
nnet = newp(p,t,tf,lf)
p : RxQ1 matrix of Q1 representative input vectors.
vectors
R éléments d’entrée.
t : SxQ2 matrix of Q2 representative target vectors.
tf : “Transfer function”, défault = 'hardlim'. a = 1 sii n > 0
lf : “Learning function”, défault = 'learnp' a = 0 si n < =0

19/11/2008 14
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON % sse: fonction de la somme des erreurs quadratiques (Sum squared error
performance function)
while (sse(E)>.1)&(iter<1000)
Exemple
p : [net,Y,E] = adapt(net,p,t);% adapt: adapter le réseau de neurones
% DEFINITION iter = iter+1;
end
% Création d’un nouveau perceptron en utilisant net = newp(pr,s,tf,lf)
% Afficher les valeurs finales du réseau
% Déscription
w=net.IW{1,1}
% Perceptrons sont utilisé pour résoudre des problèmes simples de
b=net b{1}
b=net.b{1}
classification
% (i.e. classes linéairement séparables)
% TEST
% net = newp(pr,s,tf,lf) test = rand(2,1000)*15;
% pr - Rx2 matrice des valeurs min et max pour R éléments d'entrée. ctest = sim(net,test);
% s - Nombre de neurones.
ne rones fi
figure
% tf - Fonction de transfer , défault = 'hardlim': Hard limit transfer % scatter: Scatter/bubble plot.
function.. % scatter(X,Y,S,C) affiche des cercles colorés aux endroits spécifiés par les
% lf - fonction d'apprentissage, défault = 'learnp': Perceptron weight/bias vecteurs X et Y (de même dimension).
learning function. % S détermine la surface de chaque marquer (en points^2).
p1 = 7*rand(2,50); % C détermine les coleurs de marqueurs
p2 = 7*rand(2,50)+5; % 'filled' remplissage des marqueurs
scatter(p(1,:),p(2,:),100,t,'filled')
p = [p1,p2];
t = [zeros(1,50),ones(1,50)];
hold on
pr = minmax(p);
i ( ) % pr est Rx22 est une matrice
i des
d valeurs
l min
i et max de
d la
l
scatter(test(1,:),test(2,:),10,ctest,'filled');
matrice pmm de dim (RxQ)
hold off
net = newp(pr,1,'hardlim','learnpn');
% Afficher les valeurs initiales du réseau % plotpc (W,B): Tracer une ligne de classification sur le tracé des vecteurs de
w0=net.IW{1,1}
w0 net.IW{1,1} perceptron
b0=net.b{1} % W - SxR matrice de poids (R <= 3).
% B - Sx1 vecteur de bias
plotpc(net.IW{1},net.b{1});
% Plot Regression
fi
figure
[m,b,r] = postreg(y,t);
19/11/2008 15
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON
Exemple (suite):
>> run(‘perceptron.m')
w00 = 0 0

b0 = 0
w = 17.5443 12.6618

b = -175.3625

19/11/2008 16
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON

Regréssion linéaire :

19/11/2008 17
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON % Apprentissage
E=1;
iter = 0;
Exemple
p : % sse: fonction de la somme des erreurs quadratiques (Sum squared error
% DEFINITION performance function)
while (sse(E)>.1)&(iter<1000)
% Création d’un nouveau perceptron en utilisant net = newp(pr,s,tf,lf)
[net,Y,E] = adapt(net,p,t);% adapt: adapter le réseau de neurones
% Déscription
iter = iter+1;
% Perceptrons sont utilisé pour résoudre des problèmes simples de
end
classification
% Afficher les valeurs finales du réseau
% (i.e. classes linéairement séparables)
w=net.IW{1,1}
% net = newp(pr,s,tf,lf) b=net.b{1}
% pr - Rx2 matrice des valeurs min et max pour R éléments d'entrée.
% s - Nombre de neurones.
ne rones % TEST
% tf - Fonction de transfer , défault = 'hardlim': Hard limit transfer test = rand(2,1000)*15;
function.. ctest = sim(net,test);
% lf - fonction d'apprentissage, défault = 'learnp': Perceptron weight/bias figure
learning function. % scatter: Scatter/bubble plot.
p1 = 7*rand(2,50); % scatter(X,Y,S,C) affiche des cercles colorés aux endroits spécifiés par les
p2 = 7*rand(2,50)+5; vecteurs X et Y (de même dimension).
% S détermine la surface de chaque marquer (en points^2).
p = [p1,p2];
% C détermine les coleurs de marqueurs
t = [zeros(1,50),ones(1,50)];
% 'filled' remplissage
p g des marqueurs
q
pr = minmax(p);
i ( ) % pr est Rx22 est une matrice
i des
d valeurs
l min
i et max de
d la
l
scatter(p(1,:),p(2,:),100,t,'filled')
matrice pmm de dim (RxQ)
net = newp(pr,1,'hardlim','learnpn');
hold on
% Afficher les valeurs initiales du réseau scatter(test(1,:),test(2,:),10,ctest,'filled');
w0=net.IW{1,1}
w0 net.IW{1,1} hold off
b0=net.b{1}
% plotpc (W,B): Tracer une ligne de classification sur le tracé des vecteurs de
perceptron
% W - SxR matrice de poids (R <= 3).
% B - Sx1
S 1 vecteur
t d bias
de bi
plotpc(net.IW{1},net.b{1});
19/11/2008 18
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON

Simulation avec des entrées en mode batch pour


uun réseau
ése u sstatique
que :
Quand l’ordre de la présentation des entrées n’est pas important,
alors toutes ces entrées peuvent être introduites simultanément
(mode batch). Par exemple

P = [1 2 2 3; 2 1 3 1];
t1=[100], t2=[50], t3=[-100], t4=[25],
T = [100, 50, -100, 25];
net = newlin(P, T);
y = sim(net, P);
P T
y=5 4 8 5
19/11/2008 19
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON

Simulation avec des entrées en mode


incrémental
c é e pour u
pou un réseau
ése u sstatique
que :
Quand l’ordre de la présentation des entrées n’est pas important,
mais on souhaite que ces entrées peuvent être introduites
séquentiellement (mode incrémental). Par exemple

P={1
{ 2 2 3; 2 1 3 1};}
t1=[100], t2=[50], t3=[-100], t4=[25],
T = {100, 50, -100, 25};
net = newlin(P, T, [0 0]);
y = sim(net, P);
P T
y=5 4 8 5
19/11/2008 20
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
PERCEPTRON

Simulation avec des entrées mode incrémental


pour u
pou un réseau
ése u dy
dynamique
que :
Quand l’ordre de la présentation des entrées est important, alors
ces entrées peuvent être introduites séquentiellement (mode en-
en
ligne). Le réseau contient alors un retard D.
Par exemple

t1=[100],
[100], t2=[50],
[50], t3=[-100],
[ 100], t4=[25],
[25],
P = {1 2 2 3; 2 1 3 1};
T = { 100, 50, -100, 25};
net = newlin(P, T, [0 1]);
pt tt
y = sim(net, P);
y = [1] [4] [7] [10]
19/11/2008 21
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Multiple Layers Neural Network (MLNN) or
Feed-forword backpropagation network (FFNN)

19/11/2008 22
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Multiple Layers Neural Network (MLNN) or
Feed-forword backpropagation network (FFNN)
Création dd’un
un MLNN:
net = newff (P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
Cette fonction retourne un réseau FFNN à N couches.
P - RxQ1 matrice de Q1 vecteurs représentatifs d’entrée de R-éléments.
T - SNxQ2 matrice de Q2 vecteurs représentatifs de cible de SN-éléments.
Si - dimensions de N-1 couches cachées, S1 à S(N-1),
( ) défaut = [].
(la dimension de la couche de sortie SN est déterminée de T.)
TFi – Fonction de Transfère de la ième couche. Par défaut 'tansig ' pour les
couches cachées, et 'purelin
purelin ' pour les couches de sortie.
BTF - Fonction d’apprentissage de réseaux Backprop, défaut = 'trainlm '.
BLF - Fonction d’apprentissage de réseaux Backprop, poids/biais, défaut =
'learngdm
learngdm '.
PF - Fonction de Performance, défaut = 'mse'.
IPF – Rangé de fonctions de traitement de l’entrée.
Déf t estt {'fixunknowns
Défaut {'fi k ''
','remconstantrows
t t ''
','mapminmax
i '}
'}.
OPF - Rangé de fonctions de traitement de la sortie.
Défaut est {'remconstantrows ','mapminmax '}.
DDF – Fonction
i de d division
di i i de
d données,
d défaut
d = 'dividerand ';
19/11/2008 23
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Multiple Layers Neural Network (MLNN) or
Feed-forword backpropagation network (FFNN)

TRANSFERT FUNCTION PAR DÉFAUT :


A = tansig (N,FP)

Cette fonction retourne une matrice SxQ de N éléments dans [−1 1].
N – des entrées, matrice SxQ de vecteurs colonnes.
FP - Structure des paramètres de la fonction (ignorée)

a = tansig
g ((n))

a = tansig(n)
g( ) = 2/(1+exp(-2*n))-1
( p( ))

n = -5:0.1:5;
a = tansig(n);
g( );
plot(n,a)
19/11/2008 24
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Multiple Layers Neural Network (MLNN) or
Feed-forword backpropagation network (FFNN)

TRANSFERT FUNCTION PAR DÉFAUT :


A = purlin (N,FP)

Cette fonction retourne une matrice SxQ égale à N.


N – des entrées, matrice SxQ de vecteurs colonnes.
FP - Structure des paramètres de la fonction (ignorée)

a = ppurelin ((n))

a = ppurelin(n)
( )=n

n = -5:0.1:5;
a = tansig(n);
g( );
plot(n,a)
19/11/2008 25
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Multiple Layers Neural Network (MLNN) or
Feed-forword backpropagation network (FFNN)

Exemple 1 :
Supposons, par exemple que vous avez des données
d'une application d'habitation [HaRu78]. Vous voulez
concevoir un réseau qui peut prédire la valeur d'une
maison (en $1000) étant donné 13 articles de
renseignements géographiques et de biens immobiliers.
Vous avez un total de 506 exemples de maisons pour
lesquelles vous avez ces 13 articles de données et leurs
valeurs associées du marché.

19/11/2008 26
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Exemple 1 (suite)

Etant donné p vecteurs d


d’entrée
entrée et t vecteurs cibles
load housing; % Chargement des données p (matrice 13x506) et t (matrice 1x506)
[pmm, ps] = mapminmax(p); % assigner les valeurs min et max des lignes de la matrice p à des valeurs
dans la plage [-1
[ 1 1]
[tmm, ts] = mapminmax(t);
% diviser les données en 3 ensembles : apprentissage, validation, et test . L’nsemble de validation est utilisé pour
assurer q
qu’il n y aura p
pas de sur-apprentissage
pp g ((overfitting)
g) dans les résultats finaux. L’ensemble de test fournis
une mesure indépendante de comment on peut s'attendre à ce que le réseau fonctionne sur les données
d’apprentissage non utilisées. Prenez 20 % des données pour l’ensemble de validation et 20 % pour l’ensemble de
test, en laissant 60 % pour l’ensemble d‘apprentissage. Choisissez les ensembles au hasard des données
originales.
g
[trainV, val, test] = dividevec(pmm, tmm, 0.20, 0.20); % 3 structures : training (60%), validation (20%) et test (20%)
pr = minmax(pmm); % pr est Rx2 est une matrice des valeurs min et max de la matrice pmm de dim (RxQ)
net = newff(pr,
(p , [[20 1]);
]); % créer a « feed-forward backpropagation
p p g network » avec une couche caché de
20 neurones et une couche de sortie avec 1 neurone. La fonction d’apprentissage
par default : function = 'trainlm'
[net, tr]=train(net, trainV.P, trainV.T, [ ], [ ] ,val,test); % Train a neural network. Cette fonction présente
tous les vecteurs de contribution au réseau
immédiatement en mode « batch ». Pour évaluer
ensemble Structures des ensembles les performances, elle utilise la fonction mse
d’apprentissage de validation et de test (mean squared error). net est la structure du
réseau obtenu,
b tr est training
i i recordd (epoches
( h et
19/11/2008 performance) 27
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Exemple 1 (suite)

• Ensemble de vecteurs d’apprentissage (trainV.P) : Ceux-


ci sont présentés au réseau pendant l’apprentissage et le
réseau est ajusté selon son erreur.
• Ensemble de vecteurs de validation ((trainV.T,, valid)) :
Ceux-ci sont utilisés pour mesurer la généralisation de
réseau et interrompre p l’apprentissage
pp g qquand la
généralisation arrête de s'améliorer.
• Ensemble de vecteurs de test (trainV.T,
(trainV T test) : Ceux
Ceux-ci
ci
n'ont aucun effet sur l’apprentissage et ainsi fournissent
une mesure indépendante de la performance de réseau
pendant et après l’apprentissage.

19/11/2008 28
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Exemple 1 (suite)

19/11/2008 29
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Exemple 1 (suite)

TRAINLM-calcjx, Epoch 0/100, MSE 0.37277/0, Gradient 2.28416/1e-010


TRAINLM-calcjx, Epoch 9/100, MSE 0.00767742/0, Gradient 0.103491/1e-010
TRAINLM, Validation stop.
L’
L’apprentissage
ti estt arrêté
êté à
l’itération 9 parce que la
performance (le mse) de la
validation commence augmenter
g à
partir de cet itération.

Performances assez suffisantes

• Apprendre plusieurs fois produira des résultats différents en raison des conditions initiales différentes
différentes.
• La moyenne des erreurs careés (Mean Squared Error (mse)) est la moyenne des careés de la différence
entre les sorties (normalisées) et les cibles. Le zéro signifie aucune erreur, plus de 0.6667 signifie une
erreur elevée.

19/11/2008 30
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Exemple 1 (suite)

Analyse de la réponse du réseau

Passez ll’ensemble
ensemble entier de données par le réseau (apprentissage,
(apprentissage validation et
test) et effectuez une régression linéaire entre les sorties de réseau, après qu'ils
ont été ramenés à la gamme originale de cible et les cibles correspondantes.
Pmm ymm
net
sim(net Pmm); % simuler un réseau de neurones 20
ymm = sim(net,
y = mapminmax('reverse', ymm, ts); % Remettre les valeurs entre [-1 1] de la
matrice ymm à leurs valeurs minimales et maximales réelles
[m, b, r] = postreg(y, t); % Faire une régression linéaire (voir annexe) entre un
élément de la réponse de réseau y et la cible correspondante t.
m – Pente de la régression linéaire .
b – Y-intercéption de la régression linéaire .
r – valeur de la régression
g linéaire.
19/11/2008 31
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Exemple 1 (suite)

La régression r des Valeurs


mesure la corrélation entre les
sorties (non normalisées) et les
cibles. Une valeur de r de 1
signifie
i ifi une relation
l ti parfaite,
f it 0
une relation aléatoire.

La sortie
L ti suit
it bien
bi les
l cibles,
ibl r = 0.9.
0 9 Si une précision
é i i plusl granded estt demandée,
d dé alors
l :
- Réinitialiser les poids et le biais du réseau en utilisant de nouveau les fonctions init(net) et train
- Augmenter le nombre de neurones dans la couche cachée
- Augmenter le nombre de vecteurs d’apprentissage
- Augmenter le nombre d’entrées si plus d’informations utiles sont disponibles
- essayez un autre algorithme d’apprentissage

19/11/2008 32
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN
Comparaison des différentes fonctions d’apprentissage
Il est très difficile de savoir quel algorithme
d’apprentissage d’un réseau « Feedforward » sera le plus
rapide pour un problème donné. Il dépend de beaucoup de
facteurs, y compris :
• la complexité du problème,
• le nombre de vecteurs ((ou ppoints)) de données dans
l’ensemble d’apprentissage,
• le nombre de poids et des biais dans le réseau,
• le l'erreur objective et
• si le réseau est utilisé pour la reconnaissance de formes
(discriminant analysis) ou l'approximation de fonctions
(rgression)
(rgression).
19/11/2008 33
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

Les différentes fonction dd’apprentissage


apprentissage

Acronyme LM BFG RP SCG CGB CGF CGP OSS GDX

Algorithme trainlm trainbfg trainrp trainscg traincgb traincgf traincgp trainoss traingdx

Levenberg- BFGS Resilient Scaled Conjugate Fletcher- Polak- One Step Variable
Marquardt Quasi- Backpropagation Conjugate Gradient with Powell Ribiére Secant Learning Rate
Newton Gradient Powell/Beale Conjugate Conjugate Backpropagation
Restarts Gradient Gradient

19/11/2008 34
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

Les six benchmarks utilisés pour tester les performances des algorithmes
Titre du Type du Problème Structure Erreur calculateur
Problème du réseau objective L’algorithme le plus rapide
Po r qquelques
Pour elq es centaines de poids
SIN Approximation d’une 1-5-1 0.002 Sun Sparc 2
LM
fonction
PARITY Reconnaissance de formes 3-10-10-1 0.001 Sun Sparc 2
RP

ENGINE Approximation d’une 2-30-2 0.005 Sun Enterprise 4000


LM, BFGS QN
fonction CGB, CGF, CGP
CANCER Reconnaissance de formes 9-5-5-2 0.012 Sun Sparc 2
CGB, RP, LM

CHOLESTEROL Approximation d’une 21-15-3 0.027 Sun Sparc 20 CGB, CGF, CGP
fonction
DIABETES Reconnaissance de formes 8-15-15-2 0.05 Sun Sparc 20
CGB, CGF,
CGP,, RP

19/11/2008 35
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

Il y a plusieurs caractéristiques concernant ces algorithmes qui


peuvent être déduites des expériences décrites précédemment.

• En général, sur les problèmes d'approximation de fonction, pour


l réseaux
les é quii contiennent
ti t jusqu'à
j 'à quelques
l centaines
t i d poids,
de id
l'algorithme Levenberg-Marquardt (trainlm) aura la convergence
la plus rapide.
rapide Ce favori est surtout évident si un apprentissage
très exact est exigé.

19/11/2008 36
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

Dans beaucoupp de cas,, trainlm est capable


p d'obtenir des erreurs
carrées moyennes plus basses que n'importe lesquelles données
par les autres algorithmes évalués. Pourtant, si le nombre de poids
de réseau augmente, le favori de trainlm diminue.
Cependant, la performance est relativement faible sur des
problèmes
blè d reconnaissance
de i d formes.
de f L
Les exigences
i d
de
stockage de trainlm sont plus grandes que les autres algorithmes
évalués En ajustant le paramètre mem_reduc,
évalués. mem reduc les exigences de
stockage peuvent être réduites, mais aux prix d’un temps
d'exécution accru.

19/11/2008 37
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

• La fonction trainrp est l'algorithme le plus rapide sur des


problèmes de reconnaissance de formes. Cependant, il n’est pas
performant
f t sur des
d problèmes
blè d'
d'approximation
i ti desd fonctions.
f ti S
Sa
performance se dégrade aussi quand l'erreur objective est réduit.
Les exigences de la mémoire pour cet algorithme sont
relativement petites en comparaison aux autres algorithmes
considérés.

19/11/2008 38
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

• Les algorithmes de gradient conjugué, en particulier trainscg,


semblent fonctionner bien sur une large variété de problèmes,
particulièrement
ti liè t pour des
d réseaux
é avec un grandd nombre
b ded poids.
id
L'algorithme trainscg est presque aussi rapide que l'algorithme LM
sur des problèmes dd'approximation
approximation de fonction (plus rapide pour
de grands réseaux) et est presque si rapide que trainrp sur des
problèmes de reconnaissance de formes. Sa performance ne se
dégrade pas aussi rapidement comme la performance de trainrp
fait quand l'erreur est réduite. Les algorithmes de gradient
conjugué ont des exigences relativement modestes de mémoire.
mémoire

19/11/2008 39
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

• La performance de trainbfg est semblable à celle de trainlm. Il


n'exige pas autant de stockage que trainlm, mais le calcul exigé
augmentet vraiment
i t géométriquement
é ét i t avec lal taille
t ill dud réseau,
é
parce que l'équivalent d'un inverse matriciel doit être calculé à
chaque itération.

19/11/2008 40
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN orFFNN Comparaison des différentes fonctions d’apprentissage (suite)

• L'algorithme d’apprentissage à taux variable traingdx est


d'habitude beaucoup plus lent que les autres méthodes et a les
mêmes
ê exigences
i d stockage
de t k que trainrp,
t i mais
i il peutt toujours
t j
être utile pour certains problèmes. Il y a de certaines situations
dans lesquelles il est meilleur de converger plus lentement.

19/11/2008 41
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF)

Nécessitent plus de neurones par rapport aux FFNN


Deux Types
yp
• Generalized regression networks (GRNN) et
• Probabilistic
P b bili ti neurall networks
t k (PNN).
(PNN)

19/11/2008 42
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF) Generalized regression networks (GRNN)
(suite)

||dist||=||W-P||
19/11/2008 43
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF) Generalized regression networks (GRNN)
(suite)

TRANSFERT FUNCTION :
A = radbas(n,FP)
C
Cette fonction
f i retourne une matrice
i SxQ
S Q ded N élé
éléments dde RBF
RBF.
n – des entrées, matrice SxQ de vecteurs colonnes.
FP - Structure des paramètres de la fonction (ignorée)
a = radbas (n) = Exp(-n2)
Cette fonction a un maximum de 1 q quand son entrée est 0.
Si la distance entre W et p diminue, la sortie augmente.
Ainsi, un neurone radial de base agit en tant que détecteur
qui produit 1 toutes les fois que ll'entrée
entrée p est identique à
son vecteur de poids W. n = -5:0.1:5;
a = radbas(n );
pplot(n
( ,a))
Le biais b permet d’ajuster
d ajuster la sensibilité du neurone .
Par exemple, si un neurone avait un biais de 0.1 il produirait 0.5 pour n'importe
quel vecteur d'entrée p à la distance de vecteur de 8.326 (0.8326/b) de son vecteur
d poids
de id W.
W
19/11/2008 44
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF) Generalized regression networks (GRNN)
(suite)

19/11/2008 45
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF) Generalized regression networks (GRNN)
(suite)

Création d’un réseau RBF :


Un RBF peut être construit par newrb ou newrbe.
[
[net,tr]
] = newrb
b (P,T,GOAL,SPREAD,MN,DF)
(P T GOAL SPREAD MN DF)

Le réseau RBF peut être utilisé pour approcher des fonctions quelconques.
newrb ajoute des neurones à la couche cachée d'un réseau RBF jusqu'à ce qu'il
atteint l’objectif d‘une erreur carrée moyenne minimale (mean sequared error
(
(mse)).
))
P - matrice RxQ de Q vecteurs d’entrée.
T - matrice SxQ matrix de Q vecteurs cibles de classes.
GOAL - mse objective (sum(sum-squared
squared error goal), défaut = 0.0.
SPREAD - Propagation des fonctions RB (spread constant), défaut = 1.0.
MN - Nombre maximal de neurones, défaut Q.
DF - Nombre de neurones à rajouter entre à chaque évaluation,
évaluation default = 25.
25
Exemple : goal = 0.02; % sum-squared error goal
spread = 1; % spread constant
nett = newrb(P,T,goal,spread);
b(P T l d)
19/11/2008 46
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF) Generalized regression networks (GRNN)
(suite)
Démonstrations

demorb1 montre comment un réseau RB est utilisé p


pour modéliser une fonction.
Le problème est résolue avec 5 neurones.

demorb3 et demorb4 examinent comment le constant de propagation affectent le


processus de conception du réseau RB.

19/11/2008 47
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Références

- Neural Network User’s Guide, Mathworks

19/11/2008 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ 48