réseaux de neurones avc matlab

49
Réseaux de Neurones Réseaux de Neurones Tutorial en Tutorial en Matlab Matlab Tarik AL ANI, Département Informatique ESIEE-Paris E-mail : [email protected] Url: http://www esiee fr/ alanit Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ Url: http://www .esiee.fr/~alanit

Upload: imeness

Post on 18-Jun-2015

10.250 views

Category:

Documents


17 download

DESCRIPTION

RN + MATLAB

TRANSCRIPT

Page 1: Réseaux de neurones avc Matlab

Réseaux de Neurones Réseaux de Neurones Tutorial en Tutorial en MatlabMatlab

Tarik AL ANI, Département InformatiqueESIEE-ParisE-mail : [email protected]: http://www esiee fr/ alanit

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

Url: http://www.esiee.fr/~alanit

Page 2: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement traitement Réseau plus performantp p

• Fonctions de prétraitement : concerne les entréestransformer les entrées à une forme meilleure pourtransformer les entrées à une forme meilleure pourl’utilisation du réseau.• Fonctions de post traitement : concerne les valeurs• Fonctions de post-traitement : concerne les valeurscibles transformer les entrées à une forme meilleurepour l’apprentissage du réseau et effectuer lespour l apprentissage du réseau, et effectuer lestransformées inverses vers les caractéristiques des donnéesoriginales des ciblesoriginales des cibles.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 1

Page 3: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement traitement

La majorité de méthodes sont fournis automatiquementquand vous créez un réseau.qVous pouvez passer outre les fonctions par défaut detraitement des entrées et des sorties quand vous appelez unetraitement des entrées et des sorties quand vous appelez unefonction de création de réseau, ou en réglant les propriétésde réseau après la création du réseaude réseau après la création du réseau.net.inputs{1}.processFcns pour afficher la liste desfonctions de traitement des entréesfonctions de traitement des entréesnet.outputs{2}.processFcns pour afficher la liste desf ti d t it t d ti d’ é à 2 hfonctions de traitement des sorties d’un réseau à 2 couches.Vous pouvez utiliser ces propriétés pour changer (non recommandé)l f ti déf t F

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 2les fonctions par défaut processFcns .

Page 4: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement traitement

Plusieurs fonctions par défaut possèdent des paramètres quidéfinissent leurs opérations. Vous pouvez accéder ouchanger le ième paramètre de la fonction d’entrée ou desortie :net.inputs{1}.processParams{i} pour les fonctions detraitement des entréesnet.outputs{2}. processParams{i} pour les fonctions detraitement des sorties d’un réseau à 2 couchestraitement des sorties d un réseau à 2 couches.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 3

Page 5: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement 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 t {'fi k ' ' t t ' ' i '}Défaut est {'fixunknowns ','remconstantrows ','mapminmax '}.OPF - Rangé de fonctions de traitement de la sortie.

Défaut est {'remconstantrows ','mapminmax '}.Défaut est { remconstantrows , 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 parles 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);[pn,ps] mapminmax(p);[tn,ts] = mapminmax(t);net = train(net,pn,tn);

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 4

Page 6: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement 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 jeud’apprentissage, alors chaque fois que le réseau entraîné est utilisé

d ll é il d i ê é i é lavec de nouvelles entrées ils devraient être prétraités avec leminimums et les maximums qui ont été calculés pour le jeud'apprentissage conservé dans la configuration de ps :d apprentissage conservé dans la configuration de ps :Soit « pnew » un nouvel ensemble d’entrées au réseau déjà entraînépnewn = mapminmax(`apply' pnew ps);pnewn = mapminmax( apply ,pnew,ps);anewn = sim(net,pnewn);anew = mapminmax(`reverse' anewn ts);

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 5anew = mapminmax( reverse ,anewn,ts);

Page 7: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement 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'tCare ») (fixunknowns)7. Analyse post-apprentissage (postreg)

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 6

Page 8: Réseaux de neurones avc Matlab

Prétraitement et postPrétraitement et post--traitement traitement

7. Analyse post-apprentissage (postreg)La performance d'un réseau entraîné peut être mesurée dans unecertaine mesure par les erreurs sur les jeux d’apprentissage, les jeuxde validation et les jeux d'essai, mais il est souvent utile d’analyserplus en détail la réponse de réseau Un moyen de faire cela estplus en détail la réponse de réseau. Un moyen de faire cela estd’effectuer la régression linéaire.a = sim(net p);a sim(net,p);[m,b,r] = postreg(a,t)m : pentem : penteb = intersection de la ligne droite optimale (liant les cibles aux sortiesde neurones) avec l’axe yde neurones) avec l axe yr = coefficient de corrélation de Pearson

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 7

Page 9: Réseaux de neurones avc Matlab

Coefficient de corrélation de Pearson entre deux Coefficient de corrélation de Pearson entre deux Prétraitement et postPrétraitement et post--traitement traitement

La covariance entre deux variables aléatoires x et y est mesurée par

∑N

Y )ˆ)(ˆ(1)]ˆ)(ˆE[(X

ensemble d’échantillons de variables aléatoiresensemble d’échantillons de variables aléatoires

∑=

==k

ykxkyxxy yxY1

)ˆ-)(ˆ-(1-N1)]ˆ-)(ˆ-E[(X μμμμρ

Où mx et my sont les moyens de deux variables.Si x a tendance à être au-dessus de sa moyenne quand y est au-dessus de saSi x a tendance à être au dessus de sa moyenne quand y est au dessus de samoyenne alors rxy sera positif. S'ils ont tendance à être sur les côtés opposés de leursmoyennes rxy sera négatif. Le coefficientcoefficient dede corrélationcorrélation dede PearsonPearson est lacovariance normaliséecovariance normalisée

11XY ≤≤= r-r ρ μψ

11,YX

≤≤rrσσ

(a) Si r = -1 corrélation négative parfaite

ρ = 0.9

(a) Si r 1 corrélation négative parfaite(b) Si r = 1 corrélation positive parfaite

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 8

ρ = − 0.7

Page 10: Réseaux de neurones avc Matlab

AnnexeAnnexe 11Prétraitement et postPrétraitement et post--traitement traitement

Ré i li é iRé i li é iModéliser par une fonction linéaire la relation entre deux variables x et y : étantdonné un ensemble de N échantillons de couples de données {xi, yi}, nous

Régression linéaireRégression linéaire

donné un ensemble de N échantillons de couples de données {xi, yi}, nouscherchons à estimer yi à partir de xi en utilisant un modèle linéaire :

La régression avec une variable d’entrée scalaire (x) est souvent appelée la

b a x y ii +=ˆ

La régression avec une variable d entrée scalaire (x) est souvent appelée larégressionrégression linéairelinéaire uniuni--variéevariée pour le distinguer de la régressionrégression linéairelinéaire multimulti--variéevariée où nous avons une variable d’entrée vectorielle (x). La fidélité du modèleaux données peut être mesurée par la fonction de coût de moindre carré :aux données peut être mesurée par la fonction de coût de moindre carré :

2

1)ˆ( ∑

=−=

N

kkyyE k

1k

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

Page 11: Réseaux de neurones avc Matlab

AnnexeAnnexe 11Prétraitement et postPrétraitement et post--traitement traitement Régression linéaire Régression linéaire

Les valeurs de a (la pente de la ligne) et b qui réduisent au minimum la fonction Epeuvent être calculées en mettant les premières dérivées de la fonction de coût auzéro et résolvant les équations simultanées résultantes. La solution est

xyx

xy aba μμσρ , 2 −==

Cela permet l'adaptation par la moindre carrés d'une ligne de régression à un jeude 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 verticale entre elle même et chaque point de données. Les lignes évaluées sont

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 10

q p g9804.4 6629.0 ˆet 2901.0 9003.0 ˆ +−=+= xyxy

Page 12: Réseaux de neurones avc Matlab

AnnexeAnnexe 11Prétraitement et postPrétraitement et post--traitement traitement Régression linéaire Régression linéaire

Le modèle s’adaptera à certaines données mieux que d'autres; celles que cemodèle s’adaptent bien constituent le signal et celles que ce modèle ne s’adaptepas bien constituent le bruit. La puissance du bruit est mesurée par la variance dubruit :

22 )ˆ( 1-N1 ˆ ∑ −=

N

ke ky μσ11-N ∑

=k

et la puissance du signal est donnée parLe rapport signal sur le bruit est donnée par est alors

22 ˆˆ ey σ - σ2

22

ˆˆˆ ey σ - σ

2eσ

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

Page 13: Réseaux de neurones avc Matlab

AnnexeAnnexe 11Prétraitement et postPrétraitement et post--traitement traitement Régression linéaire Régression linéaire

Nous pouvons démontrer quear

y

x σσ=

Ainsi le signe de la pente a de la ligne de régression définit le signe de lacorrélation. Cependant, La corrélation est aussi une fonction des écart-types des

i bl l i è d il ibl d' i

y

variables x et y; par exemple si x est très grand, il est possible d'avoir unecorrélation forte bien que la pente puisse être très petite : r mesure uniquementla corrélation linéaire. Il est tout à fait possible que deux variables aient unerelation non-linéaire forte (c'est-à-dire soient non-linéairement corrélées) maisque r =0.

La puissance de la corrélation peut aussi être exprimée en terme de quantités du

2

222

ˆˆˆ

y

ey

σσ - σr =

La puissance de la corrélation peut aussi être exprimée en terme de quantités dumodèle de régression linéaire

yσ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

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 12

y.

Page 14: Réseaux de neurones avc Matlab

Feed Forward Neural Network (FFNN)Feed Forward Neural Network (FFNN)

PERCEPTRONPERCEPTRON

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 13

Page 15: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRON

Création d’un perceptron d’une couche à Rentrées et S sorties:e ées e S so es:

nnet = newp(p,t,tf,lf)p : RxQ1 matrix of Q1 representative input vectorsp : RxQ1 matrix of Q1 representative input vectors.

R éléments d’entrée.t : SxQ2 matrix of Q2 representative target vectors.

1 i 0tf : “Transfer function”, défault = 'hardlim'.lf : “Learning function”, défault = 'learnp'

a = 1 si n > 0a = 0 si n < =0

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 14

Page 16: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRONExemple :

% sse: fonction de la somme des erreurs quadratiques (Sum squared errorperformance function)

while (sse(E)>.1)&(iter<1000)[net,Y,E] = adapt(net,p,t);% adapt: adapter le réseau de neuronesp

% DEFINITION% Création d’un nouveau perceptron en utilisant net = newp(pr,s,tf,lf)% Déscription% Perceptrons sont utilisé pour résoudre des problèmes simples de

iter = iter+1;end% Afficher les valeurs finales du réseauw=net.IW{1,1}b=net b{1}classification

% (i.e. classes linéairement séparables)% net = newp(pr,s,tf,lf)% pr - Rx2 matrice des valeurs min et max pour R éléments d'entrée.% s Nombre de ne rones

b=net.b{1}

% TESTtest = rand(2,1000)*15;ctest = sim(net,test);fi% s - Nombre de neurones.

% tf - Fonction de transfer , défault = 'hardlim': Hard limit transferfunction..

% lf - fonction d'apprentissage, défault = 'learnp': Perceptron weight/biaslearning function.

figure% scatter: Scatter/bubble plot.% scatter(X,Y,S,C) affiche des cercles colorés aux endroits spécifiés par les

vecteurs X et Y (de même dimension).% S détermine la surface de chaque marquer (en points^2).

p1 = 7*rand(2,50);p2 = 7*rand(2,50)+5;p = [p1,p2];t = [zeros(1,50),ones(1,50)];

i ( ) % 2 i d l i d l

% C détermine les coleurs de marqueurs% 'filled' remplissage des marqueursscatter(p(1,:),p(2,:),100,t,'filled')

hold onpr = minmax(p); % pr est Rx2 est une matrice des valeurs min et max de la

matrice pmm de dim (RxQ)net = newp(pr,1,'hardlim','learnpn');% Afficher les valeurs initiales du réseauw0=net.IW{1,1}

scatter(test(1,:),test(2,:),10,ctest,'filled');hold off

% plotpc (W,B): Tracer une ligne de classification sur le tracé des vecteurs deperceptronw0 net.IW{1,1}

b0=net.b{1}perceptron

% W - SxR matrice de poids (R <= 3).% B - Sx1 vecteur de biasplotpc(net.IW{1},net.b{1});% Plot Regressionfi

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 15

figure[m,b,r] = postreg(y,t);

Page 17: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRON

Exemple (suite):

>> run(‘perceptron.m')0 0 0w0 = 0 0

b0 = 0w = 17.5443 12.6618

b = -175.3625

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 16

Page 18: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRON

Regréssion linéaire :

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 17

Page 19: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRONExemple :

% ApprentissageE=1;iter = 0;% sse: fonction de la somme des erreurs quadratiques (Sum squared errorp

% DEFINITION% Création d’un nouveau perceptron en utilisant net = newp(pr,s,tf,lf)% Déscription% Perceptrons sont utilisé pour résoudre des problèmes simples de

% sse: fonction de la somme des erreurs quadratiques (Sum squared errorperformance function)

while (sse(E)>.1)&(iter<1000)[net,Y,E] = adapt(net,p,t);% adapt: adapter le réseau de neuronesiter = iter+1;endclassification

% (i.e. classes linéairement séparables)% net = newp(pr,s,tf,lf)% pr - Rx2 matrice des valeurs min et max pour R éléments d'entrée.% s Nombre de ne rones

end% Afficher les valeurs finales du réseauw=net.IW{1,1}b=net.b{1}

% s - Nombre de neurones.% tf - Fonction de transfer , défault = 'hardlim': Hard limit transfer

function..% lf - fonction d'apprentissage, défault = 'learnp': Perceptron weight/bias

learning function.

% TESTtest = rand(2,1000)*15;ctest = sim(net,test);figure% scatter: Scatter/bubble plot.

p1 = 7*rand(2,50);p2 = 7*rand(2,50)+5;p = [p1,p2];t = [zeros(1,50),ones(1,50)];

i ( ) % 2 i d l i d l

% scatter(X,Y,S,C) affiche des cercles colorés aux endroits spécifiés par lesvecteurs X et Y (de même dimension).

% S détermine la surface de chaque marquer (en points^2).% C détermine les coleurs de marqueurs% 'filled' remplissage des marqueurs

pr = minmax(p); % pr est Rx2 est une matrice des valeurs min et max de lamatrice pmm de dim (RxQ)

net = newp(pr,1,'hardlim','learnpn');% Afficher les valeurs initiales du réseauw0=net.IW{1,1}

p g qscatter(p(1,:),p(2,:),100,t,'filled')

hold onscatter(test(1,:),test(2,:),10,ctest,'filled');hold offw0 net.IW{1,1}

b0=net.b{1}hold off

% plotpc (W,B): Tracer une ligne de classification sur le tracé des vecteurs deperceptron

% W - SxR matrice de poids (R <= 3).% B S 1 t d bi

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 18

% B - Sx1 vecteur de biasplotpc(net.IW{1},net.b{1});

Page 20: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRON

Simulation avec des entrées en mode batch pourun réseau statique :u ése u s que :Quand l’ordre de la présentation des entrées n’est pas important,alors toutes ces entrées peuvent être introduites simultanémentalors 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);y = 5 4 8 5

P T

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

y = 5 4 8 5

Page 21: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRON

Simulation avec des entrées en modeincrémental pour un réseau statique :c é e pou u ése u s que :Quand l’ordre de la présentation des entrées n’est pas important,mais on souhaite que ces entrées peuvent être introduitesmais on souhaite que ces entrées peuvent être introduitessé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);y = 5 4 8 5

P T

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 20

y = 5 4 8 5

Page 22: Réseaux de neurones avc Matlab

PERCEPTRONPERCEPTRON

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

t1=[100], t2=[50], t3=[-100], t4=[25],t1 [100], t2 [50], t3 [ 100], t4 [25],P = {1 2 2 3; 2 1 3 1};T = { 100, 50, -100, 25};net = newlin(P, T, [0 1]);y = sim(net, P);

[1] [4] [7] [10]

pt tt

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 21

y = [1] [4] [7] [10]

Page 23: Réseaux de neurones avc Matlab

Multiple Layers Neural Network (MLNN) orFeed-forword backpropagation network (FFNN)

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 22

Page 24: Réseaux de neurones avc Matlab

Création d’un MLNN:

Multiple Layers Neural Network (MLNN) orFeed-forword backpropagation network (FFNN)

Création d 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 lescouches cachées, et 'purelin ' pour les couches de sortie.couches cachées, et 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 t {'fi k ' ' t t ' ' i '}Défaut est {'fixunknowns ','remconstantrows ','mapminmax '}.OPF - Rangé de fonctions de traitement de la sortie.

Défaut est {'remconstantrows ','mapminmax '}.i d di i i d d d

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 23DDF – Fonction de division de données, défaut = 'dividerand ';

Page 25: Réseaux de neurones avc Matlab

Multiple Layers Neural Network (MLNN) orFeed-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 (n) g ( )

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

n = -5:0.1:5;a = tansig(n);

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 24

g( );plot(n,a)

Page 26: Réseaux de neurones avc Matlab

Multiple Layers Neural Network (MLNN) orFeed-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 = purelin (n) p ( )

a = purelin(n) = np ( )

n = -5:0.1:5;a = tansig(n);

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 25

g( );plot(n,a)

Page 27: Réseaux de neurones avc Matlab

Multiple Layers Neural Network (MLNN) orFeed-forword backpropagation network (FFNN)

Exemple 1 ::Supposons, par exemple que vous avez des donnéesd'une application d'habitation [HaRu78]. Vous voulezconcevoir un réseau qui peut prédire la valeur d'unemaison (en $1000) étant donné 13 articles derenseignements géographiques et de biens immobiliers.Vous avez un total de 506 exemples de maisons pourlesquelles vous avez ces 13 articles de données et leursvaleurs associées du marché.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 26

Page 28: Réseaux de neurones avc Matlab

Etant donné p vecteurs d’entrée et t vecteurs cibles

Exemple 1 (suite)MLNN orFFNN

Etant donné p vecteurs d entrée et t vecteurs ciblesload 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]dans la plage [-1 1][tmm, ts] = mapminmax(t);

% diviser les données en 3 ensembles : apprentissage, validation, et test . L’nsemble de validation est utilisé pourassurer qu’il n y aura pas de sur-apprentissage (overfitting) dans les résultats finaux. L’ensemble de test fournisq y p pp g ( g)une mesure indépendante de comment on peut s'attendre à ce que le réseau fonctionne sur les donnéesd’apprentissage non utilisées. Prenez 20 % des données pour l’ensemble de validation et 20 % pour l’ensemble detest, en laissant 60 % pour l’ensemble d‘apprentissage. Choisissez les ensembles au hasard des donnéesoriginales.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, [20 1]); % créer a « feed-forward backpropagation network » avec une couche caché de(p , [ ]); p p g

20 neurones et une couche de sortie avec 1 neurone. La fonction d’apprentissagepar default : function = 'trainlm'

[net, tr]=train(net, trainV.P, trainV.T, [ ], [ ] ,val,test); % Train a neural network. Cette fonction présentetous les vecteurs de contribution au réseautous les vecteurs de contribution au réseauimmédiatement en mode « batch ». Pour évaluerles performances, elle utilise la fonction mse(mean squared error). net est la structure du

b i i d ( h

Structures des ensembles de validation et de test

ensemble d’apprentissage

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 27

réseau obtenu, tr est training record (epoches etperformance)

Page 29: Réseaux de neurones avc Matlab

Exemple 1 (suite)MLNN orFFNN

• Ensemble de vecteurs d’apprentissage (trainV.P) : Ceux-ci sont présentés au réseau pendant l’apprentissage et leré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 deréseau et interrompre l’apprentissage quand lap pp g qgénéralisation arrête de s'améliorer.

• Ensemble de vecteurs de test (trainVT test) : Ceux-ciEnsemble de vecteurs de test (trainV.T, test) : Ceux cin'ont aucun effet sur l’apprentissage et ainsi fournissentune mesure indépendante de la performance de réseauune mesure indépendante de la performance de réseaupendant et après l’apprentissage.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 28

Page 30: Réseaux de neurones avc Matlab

Exemple 1 (suite)MLNN orFFNN

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 29

Page 31: Réseaux de neurones avc Matlab

Exemple 1 (suite)MLNN orFFNN

TRAINLM-calcjx, Epoch 0/100, MSE 0.37277/0, Gradient 2.28416/1e-010TRAINLM-calcjx, Epoch 9/100, MSE 0.00767742/0, Gradient 0.103491/1e-010TRAINLM, Validation stop.

L’ ti t êté àL’apprentissage est arrêté àl’itération 9 parce que laperformance (le mse) de lavalidation commence augmenter àgpartir de cet itération.

Performances assez suffisantes

• Apprendre plusieurs fois produira des résultats différents en raison des conditions initiales différentesApprendre plusieurs fois produira des résultats différents en raison des conditions initiales 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.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 30

Page 32: Réseaux de neurones avc Matlab

Exemple 1 (suite)MLNN orFFNN

Analyse de la réponse du réseau

Passez l’ensemble entier de données par le réseau (apprentissage validation etPassez l ensemble entier de données par le réseau (apprentissage, validation ettest) et effectuez une régression linéaire entre les sorties de réseau, après qu'ilsont été ramenés à la gamme originale de cible et les cibles correspondantes.

y = sim(net P ); % simuler un réseau de neurones 20

Pmmnet

ymm

ymm = sim(net, Pmm); % simuler un réseau de neuronesy = mapminmax('reverse', ymm, ts); % Remettre les valeurs entre [-1 1] de lamatrice ymm à leurs valeurs minimales et maximales réelles

20

[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éairem – Pente de la régression linéaire .b – Y-intercéption de la régression linéaire .r – valeur de la régression linéaire.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 31

g

Page 33: Réseaux de neurones avc Matlab

Exemple 1 (suite)MLNN orFFNN

La régression r des Valeursmesure la corrélation entre lesmesure la corrélation entre lessorties (non normalisées) et lescibles. Une valeur de r de 1i ifi l ti f it 0signifie une relation parfaite, 0

une relation aléatoire.

L ti it bi l ibl 0 9 Si é i i l d t d dé lLa sortie suit bien les cibles, r = 0.9. Si une précision plus grande est demandée, alors :- 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

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 32

Page 34: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage

MLNN orFFNN

Il est très difficile de savoir quel algorithmed’apprentissage d’un réseau « Feedforward » sera le plusrapide pour un problème donné. Il dépend de beaucoup defacteurs, y compris :

• la complexité du problème,• le nombre de vecteurs (ou points) de données dans( p )

l’ensemble d’apprentissage,• le nombre de poids et des biais dans le réseau,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• si le réseau est utilisé pour la reconnaissance de formes

(discriminant analysis) ou l'approximation de fonctions(rgression)

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 33

(rgression).

Page 35: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

Les différentes fonction d’apprentissageLes différentes fonction d apprentissage

Acronyme LM BFG RP SCG CGB CGF CGP OSS GDX

Algorithme trainlm trainbfg trainrp trainscg traincgb traincgf traincgp trainoss traingdx

Levenberg-Marquardt

BFGS Quasi-

Newton

ResilientBackpropagation

ScaledConjugateGradient

Conjugate Gradient with Powell/Beale

Restarts

Fletcher-Powell

ConjugateGradient

Polak-Ribiére

ConjugateGradient

One StepSecant

Variable Learning Rate

Backpropagation

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

Page 36: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

Titre du Problème

Type du Problème Structure du réseau

Erreur objective

calculateur

Les six benchmarks utilisés pour tester les performances des algorithmes

L’algorithme le plus rapidePo r q elq es centaines de poids

SIN Approximation d’une fonction

1-5-1 0.002 Sun Sparc 2

PARITY Reconnaissance de formes 3-10-10-1 0.001 Sun Sparc 2

LM

RP

Pour quelques centaines de poids

ENGINE Approximation d’une fonction

2-30-2 0.005 Sun Enterprise 4000

CANCER Reconnaissance de formes 9-5-5-2 0.012 Sun Sparc 2

LM, BFGS QNCGB, CGF, CGP

CGB, RP, LM

CHOLESTEROL Approximation d’une fonction

21-15-3 0.027 Sun Sparc 20

DIABETES Reconnaissance de formes 8-15-15-2 0.05 Sun Sparc 20

CGB, CGF, CGP

CGB, CGF, CGP, RP,

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

Page 37: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

Il y a plusieurs caractéristiques concernant ces algorithmes quipeuvent être déduites des expériences décrites précédemment.

• En général, sur les problèmes d'approximation de fonction, pourl é i ti t j 'à l t i d idles réseaux qui contiennent jusqu'à quelques centaines de poids,l'algorithme Levenberg-Marquardt (trainlm) aura la convergencela plus rapide Ce favori est surtout évident si un apprentissagela plus rapide. Ce favori est surtout évident si un apprentissagetrès exact est exigé.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 36

Page 38: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

Dans beaucoup de cas, trainlm est capable d'obtenir des erreursp , pcarrées moyennes plus basses que n'importe lesquelles donnéespar les autres algorithmes évalués. Pourtant, si le nombre de poidsde réseau augmente, le favori de trainlm diminue.Cependant, la performance est relativement faible sur des

blè d i d f L i dproblèmes de reconnaissance de formes. Les exigences destockage de trainlm sont plus grandes que les autres algorithmesévalués En ajustant le paramètre mem reduc les exigences deévalués. En ajustant le paramètre mem_reduc, les exigences destockage peuvent être réduites, mais aux prix d’un tempsd'exécution accru.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 37

Page 39: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

• La fonction trainrp est l'algorithme le plus rapide sur desproblèmes de reconnaissance de formes. Cependant, il n’est pas

f t d blè d' i ti d f ti Sperformant sur des problèmes d'approximation des fonctions. Saperformance se dégrade aussi quand l'erreur objective est réduit.Les exigences de la mémoire pour cet algorithme sontLes exigences de la mémoire pour cet algorithme sontrelativement petites en comparaison aux autres algorithmesconsidérés.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 38

Page 40: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

• Les algorithmes de gradient conjugué, en particulier trainscg,semblent fonctionner bien sur une large variété de problèmes,

ti liè t d é d b d idparticulièrement pour des réseaux avec un grand nombre de poids.L'algorithme trainscg est presque aussi rapide que l'algorithme LMsur des problèmes d'approximation de fonction (plus rapide poursur des problèmes d approximation de fonction (plus rapide pourde grands réseaux) et est presque si rapide que trainrp sur desproblèmes de reconnaissance de formes. Sa performance ne sedégrade pas aussi rapidement comme la performance de trainrpfait quand l'erreur est réduite. Les algorithmes de gradientconjugué ont des exigences relativement modestes de mémoireconjugué ont des exigences relativement modestes de mémoire.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 39

Page 41: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

• La performance de trainbfg est semblable à celle de trainlm. Iln'exige pas autant de stockage que trainlm, mais le calcul exigé

t i t é ét i t l t ill d éaugmente vraiment géométriquement avec la taille du réseau,parce que l'équivalent d'un inverse matriciel doit être calculé àchaque itération.chaque itération.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 40

Page 42: Réseaux de neurones avc Matlab

Comparaison des différentes fonctions d’apprentissage (suite)MLNN orFFNN

• L'algorithme d’apprentissage à taux variable traingdx estd'habitude beaucoup plus lent que les autres méthodes et a les

ê i d t k t i i il t t jmêmes exigences de stockage que trainrp, mais il peut toujoursêtre utile pour certains problèmes. Il y a de certaines situationsdans lesquelles il est meilleur de converger plus lentement.dans lesquelles il est meilleur de converger plus lentement.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 41

Page 43: Réseaux de neurones avc Matlab

Radial Basis Functions (RBF)Radial Basis Functions (RBF)

Nécessitent plus de neurones par rapport aux FFNN Deux Typesyp• Generalized regression networks (GRNN) et

P b bili ti l t k (PNN)• Probabilistic neural networks (PNN).

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 42

Page 44: Réseaux de neurones avc Matlab

Radial Basis Functions (RBF) Generalized regression networks (GRNN) (suite)

||dist||=||W-P||

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 43

Page 45: Réseaux de neurones avc Matlab

Radial Basis Functions (RBF) Generalized regression networks (GRNN) (suite)

TRANSFERT FUNCTION :A = radbas(n,FP)C f i i S Q d N élé d RBFCette fonction retourne une matrice SxQ de N éléments de RBF.

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

Cette fonction a un maximum de 1 quand son entrée est 0.

a = radbas (n) = Exp(-n2)q

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 l'entrée p est identique àqui produit 1 toutes les fois que l entrée p est identique à son vecteur de poids W.

Le biais b permet d’ajuster la sensibilité du neurone

n = -5:0.1:5;a = radbas(n );plot(n ,a)Le biais b permet 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 id W

p ( )

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 44de poids W.

Page 46: Réseaux de neurones avc Matlab

Radial Basis Functions (RBF) Generalized regression networks (GRNN) (suite)

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 45

Page 47: Réseaux de neurones avc Matlab

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. [ ] b (P T GOAL SPREAD MN DF)[net,tr] = newrb (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'ilatteint 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-squared error goal), défaut = 0.0.GOAL mse objective (sum 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 default = 25DF - Nombre de neurones à rajouter entre à chaque évaluation, default = 25.Exemple : goal = 0.02; % sum-squared error goal

spread = 1; % spread constantt b(P T l d)

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 46

net = newrb(P,T,goal,spread);

Page 48: Réseaux de neurones avc Matlab

Radial Basis Functions (RBF) Generalized regression networks (GRNN) (suite)

Démonstrations

demorb1 montre comment un réseau RB est utilisé pour modéliser une fonction. pLe problème est résolue avec 5 neurones.

demorb3 et demorb4 examinent comment le constant de propagation affectent ledemorb3 et demorb4 examinent comment le constant de propagation affectent le processus de conception du réseau RB.

Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ19/11/2008 47

Page 49: Réseaux de neurones avc Matlab

RéférencesRéférences

- Neural Network User’s Guide, Mathworks

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