Réseaux de Neurones Tutorial en Matlab
Tarik AL ANI, Département Informatique ESIEE-Paris E-mail :
[email protected] . . ~ Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post post--traitement - traitement traitement •
Réseau lus erformant Fonctions de prétraitement : concerne les entrées
l’utilisation du réseau. -
cibles
transformer les entrées à une forme meilleure ’ , transformées inverses vers les caractéristiques des données .
19/11/2008
1 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post post--traitement - traitement traitement
La majorité de méthodes sont fournis automatiquement uand vous créez un réseau. Vous pouvez passer outre les fonctions par défaut de fonction de création de réseau, ou en réglant les propriétés . net.inputs{1} .processFcns
pour afficher la liste des
pour afficher la liste des onct ons e tra tement es sort es un r se seau couc es.
net.outputs{ 2} .processFcns
Vous pouvez utiliser ces propriétés pour changer (non recommandé) es on onc on ons par au process cns . 2
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post post--traitement - traitement traitement
Plusieurs fonctions par défaut possèdent des paramètres qui définissent leurs opérations. Vous pouvez accéde é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 ’ .
19/11/2008
3 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post post--traitement - traitement traitement
Pour le réseau MLNN MLNN les fonctions fonctions par défaut sont : IPF – Rangé de fonctions de traitement de l’entrée. xun nowns , remcons an rows , mapm nmax . au es OPF - Rangé de fonctions de traitement de la sortie. ' '' ' Fonctions de prétraitement et de post-traitement sous Matlab: 1. Min et Max ( mapminmax mapminmax) Avant l’apprentissage, il est souvent utile d’étalonner les entrées et ' [-1,1] (normaliser les entrées et les cibles). n s = ma minmax [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 - 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 jeu d’apprentissage, alors chaque fois que le réseau entraîné est utilisé avec e nouve es es entr es s evra ent tre pr tra t s avec e minimums et les maximums qui ont été calculés pour le jeu ' Soit « pnew » un nouvel ensemble d’entrées au réseau déjà entraîné entraîné ` ', , anewn = sim(net,pnewn); ` ', , 19/11/2008
5
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post post--traitement - traitement traitement
mapstd ) 2. Moyenne et Ecart-type ( mapstd processpca) 4. Principal Component Analysis ( processpca fixunknowns) 5. Traitement des entrées inconnues ( fixunknowns raitem tement ent des cib cibles les inc inconn onnues ues (ou ne soucier pas «Don't 6. Trai fixunknowns) Care ») ( fixunknowns postreg) 7. Analyse Analyse post-app post-apprenti rentissage ssage ( postreg
19/11/2008
6 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Prétraitement et post post--traitement - traitement traitement
postreg) 7. Analyse Analyse post-app post-apprenti rentissage ssage ( 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 . d’effectuer la régression linéaire. = , [m,b,r] = postreg(a,t)
b = intersection de la ligne droite optimale (liant les cibles aux sorties de neuron neurones es avec avec l’axe l’axe 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 - traitement traitement
Coefficient 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
ˆ y -μ ˆ -μ ˆ x -μ ˆ y = x -μ N-1 k =1 k x k y Où mx et my sont les moyens de deux variables. Si x a ten tendance à être auau-dessus de sa mo mo enn enne uand est auau-dessus de sa moyenne alors rxy sera positif. S'ils ont tendance à être sur les côtés opposés de leurs coefficient de corrélation de Pearson Pearson est la moye mo yenn nnes es rxy sera sera négat égatif if.. Le coefficient ρ xy
=
ρ = XY σ Xσ Y
,-
μψ ρ = 0.9
a Si r = -1 corrélation né ative arfaite (b) Si r = 1 corrélation positive parfaite ρ = − 0.7 19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
8
Prétraitement post--traitement - traitement traitement Annexe Annexe 1 et post
gress on n a re Modéliser par une fonction linéaire la relation entre deux variables x et y : étant , , cherchons à estimer yi à partir de xi en utilisant un modèle linéaire : yˆi = a xi +b
La ré res ression avec avec une une vari ariable d’entrée scalaire x est souvent a elé elée la rég r régression égre ress ssio ion n li linéa liné néair néai aire ire re e uniunii-variée un -variée pour le distinguer de la régression rég r égre ress ssio ion n li linéa liné néair néai aire ire re e multimult mu ltiivariée où nous avons une variable d’entrée vectorielle ( x). La fidélité du modèle N
E = ∑ ( yk − yˆk )2 k =1
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
9
Prétraitement post--traitement - traitement traitement Régression linéaire Annexe Annexe 1 et post
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 σ x2
, b = μ y − aμ x
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 verticale verticale entre elle même et cha ue oint de données. données. Les li nes évaluées é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
Prétraitement post--traitement - traitement traitement Régression linéaire Annexe Annexe 1 et post
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 1 2 ˆe = ( y −μ ˆk )2 σ ∑ - k =1 et la puissance du signal est donnée par σ ˆ y2 - σ ˆe2 2 2 Le rapport signal sur le bruit est donnée par est alors σ ˆ y - σ ˆe k
ˆ
σ e
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
11
Prétraitement post--traitement - traitement traitement Régression linéaire Annexe Annexe 1 et post
Nous pouvons démontrer que
r = σ x a σ
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 var a es x et y; y; pa par ex exemp e s x es est tr tr s gran , est po poss e avo r un 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. modèle de régression linéaire r 2
2 - ˆe2 ˆ = ˆ2 σ 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 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 entrées et S sorties: nnet = newp(p,t,tf,lf) . R éléments d’entrée. t : SxQ2 matrix of Q2 representative re presentative target vectors. 'hardlim'. tf : “Transfer function”, défault = hardlim lf : “Learning function”, défault = 'learnp'
19/11/2008
a = 1 si n > 0 a = 0 si n < =0
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
14
PERCEPTRON Exem le : % DEFINITION % Création d’un nouveau perceptron en utilisant net = newp(pr,s,tf,lf) % Déscription % Percep Perceptro trons ns sont sont utilis utiliséé pour pour résoud résoudre re des problè problèmes mes simple simpless de classification % (i.e. classes linéairement séparables) % net = newp(p newp(pr,s r,s,tf ,tf,lf ,lf)) % pr - Rx2 matrice matrice des des valeurs valeurs min et max max pour pour R éléments éléments d'entrée. d'entrée. s - om re re e neur neuroones nes. % tf - Fon Fonct ctio ionn de tran transf sfer er , défa défaul ultt = 'hard 'hardli lim' m':: Hard Hard limi limitt trans transfe ferr function.. % lf - fonction fonction d'appr d'apprentis entissage, sage, défault défault = 'learn 'learnp': p': Percep Perceptron tron weight/bia weight/biass learning function. p1 = 7*rand(2,50); p2 = 7*rand(2,50)+5; p = [p1,p2]; t = [zeros(1,50),ones(1,50)]; [zeros(1,50),ones(1,50)]; pr = 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' newp(pr,1,'hardlim','learnpn'); ); % Afficher les valeurs initiales du réseau w0=net.IW 1 1 b0=net.b{1}
19/11/2008
% sse: fonction de la somme des erreurs quadratiques (Sum squared error performance function) while (sse(E)>.1)&(iter<1000) [net,Y,E] = adapt(net,p,t);% adapt: adapter le réseau de neurones iter = iter+1; end % Afficher les valeurs finales du réseau w=net.IW{1,1} = . % TEST test = rand(2,1000)*15; ctest = sim(net,test); 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). % C détermine les coleurs de marqueurs % 'filled' remplissage des marqueurs scatter(p(1,:),p(2,:),100,t,'filled') hold on scatter(test(1,:),test(2,:),10,ctest,'filled'); hold off % plotpc (W,B): Tracer une ligne de classification sur le tracé des vecteurs de % W - SxR matrice de poids (R <= 3). % B - Sx1 vecteur de bias plotpc(net.IW{1},net.b{1}); % Plot Regression gure [m,b,r] = postreg(y,t);
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
15
PERCEPTRON Exemple (suite):
>> run(‘perceptron.m') w = b0 = 0 w = 17 17.5 .544 4433 12 12.6 .661 6188 b = -175.3625
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
16
PERCEPTRON
Regréssion linéaire :
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
17
PERCEPTRON Exem le : % DEFINITION % Création d’un nouveau perceptron en utilisant net = newp(pr,s,tf,lf) % Déscription % Percep Perceptro trons ns sont sont utilis utiliséé pour pour résoud résoudre re des problè problèmes mes simple simpless de classification % (i.e. classes linéairement séparables) % net = newp(p newp(pr,s r,s,tf ,tf,lf ,lf)) % pr - Rx2 matrice matrice des des valeurs valeurs min et max max pour pour R éléments éléments d'entrée. d'entrée. s - om re re e neur neuroones nes. % tf - Fon Fonct ctio ionn de tran transf sfer er , défa défaul ultt = 'hard 'hardli lim' m':: Hard Hard limi limitt trans transfe ferr function.. % lf - fonction fonction d'appr d'apprentis entissage, sage, défault défault = 'learn 'learnp': p': Percep Perceptron tron weight/bia weight/biass learning function. p1 = 7*rand(2,50); p2 = 7*rand(2,50)+5; p = [p1,p2]; t = [zeros(1,50),ones(1,50)]; [zeros(1,50),ones(1,50)]; pr = 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' newp(pr,1,'hardlim','learnpn'); ); % Afficher les valeurs initiales du réseau w0=net.IW 1 1 b0=net.b{1}
19/11/2008
% Apprentissage E=1; iter = 0; % sse: sse: fonction fonction de la somm sommee des erreurs erreurs uadrat uadratii ues Sum s uared uared error performance function) while (sse(E)>.1)&(iter<1000) [net,Y,E] = adapt(net,p,t);% adapt: adapter le réseau r éseau de neurones iter = iter+1; % Afficher les valeurs finales du réseau w=net.IW{1,1} b=net.b{1} % TEST test = rand(2,1000)*15; ctest = sim(net,test); 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). % C détermine les coleurs de marqueurs % 'filled' remplissage des marqueurs scatter(p(1,:),p(2,:),100,t,'filled') hold on scatter(test(1,:),test(2,:),10,ctest,'filled');
% plotpc (W,B): Tracer une ligne de classification sur le tracé des vecteurs de perceptron % W - SxR matrice de poids (R <= 3). - x vecteur e as plotpc(net.IW{1},net.b{1});
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
18
PERCEPTRON
Simulation avec des entrées en mode batch pour un ré rése seau au st stat atii ue : Quand l’ordre de la présentation des entrées n’est pas important, (mode batch). Par exemple
P = [1 2 2 3; 2 1 3 1] 1 ]; t1=[100], t2=[50], t3=[-100], t4=[25], T = [100, 50, -100, 25] 25]; net = newlin(P, T); y = sim(net, P); 19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
P
T 19
PERCEPTRON
Simulation
avec des entrées en incrémental our un ré rése seau au st stat atii ue :
mode
Quand l’ordre de la présentation des entrées n’est pas important, séquentiellement (mode incrémental). Par exemple
P={ P={1 2 2 3; 2 1 3 1} 1 }; t1=[100], t2=[50], t3=[-100], t4=[25], T = {100, 50, -100, 25} 25}; net = newlin(P, T, [0 0]); y = sim(net, P); 19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
P
T 20
PERCEPTRON
Simulation avec des entrées mode incrémental our un ré rése seau au d na nami mi ue : Quand l’ordre de la présentation des entrées est important, alors ligne). Le réseau contient alors un retard D.
= = =P = {1 2 2 3; 2 1 3 1} 1 }; T = { 100, 50, -100, 25} 25}; net = newlin(P, T, [0 1]); y = sim(net, P); y= 19/11/2008
=
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
pt
tt 21
Multiple Layers Neural Network ( MLNN MLNN ) or Feed-f Feed-forw orword ord backpr backpropa opagat gation ion networ network k ( FFNN FFNN )
Multiple Layers Neural Network ( MLNN MLNN ) or Feed-f Feed-forw orword ord backpr backpropa opagat gation ion network network ( FFNN FFNN )
’ 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 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 dé terminée de T.) 'tansig ' pour les TFi – Fonction de Transfère de la ième couche. Par défaut défaut tansig couches cachées et ' urelin ' our les couches couches de sortie. sortie. 'trainlm '. BTF - Fonction d’apprentissage de réseaux Backprop, défaut déf aut = trainlm BLF - Fonction d’apprentissage de réseaux Backprop, poids/biais, défaut = ' '. PF - Fonction de Performance, défaut = 'mse'. IPF – Rangé de fonctions de traitement de l’entrée. map m nm nmax ax ' . au es ' xun nowns ','remcons an rows ', m ' apm OPF - Rangé de fonctions de traitement tra itement de la sortie. remconstantrows ',' mapminmax mapminmax '}. Défaut est {' remconstantrows 'dividerand '; DDF – Fonction de division de données, défaut = dividerand
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
23
Multiple Layers Neural Network ( MLNN MLNN ) or Feed-f Feed-forw orword ord backpr backpropa opagat gation ion network network ( FFNN 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 = tansi (n
a = tansi n = 2/ 1+ex -2*n -1
Multiple Layers Neural Network ( MLNN MLNN ) or Feed-f Feed-forw orword ord backpr backpropa opagat gation ion network network ( FFNN 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 = urelin (n
a = urelin urelin n = n
19/11/2008
n = -5:0.1:5; a = tan tansi n ; plot(n,a) Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
25
Multiple Layers Neural Network ( MLNN MLNN ) or Feed-f Feed-forw orword ord backpr backpropa opagat gation ion network network ( FFNN 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 Vous avez avez un total total de 50 5066 exem exempl ples es de maiso maisons ns po pour ur 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 or FFNN FFNN Exemple 1 (suite)
’ load housing; % Chargement des données p (matrice 13x506) et t (matrice 1x506) [pmm, ps ps]] = mapminmax(p); % assigner les valeurs min et max des lignes de la matrice p à des valeurs [tmm, ts ts]] = mapminmax(t); % diviser les données en 3 ensembles : apprentissage, validation, et test . L’nsemble de validation est utilisé pour assurer qu’il n y aura pas de sur-apprenti sur-apprentissage ssage (overfitting (overfitting)) dans les résultats finaux. L’ensemb L’ensemble le de test fournis 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 test,, en lais laissan santt 60 % pour pour l’en l’ensem sembl blee d‘app d‘appren renti tiss ssage age.. Choi Choisi sisse ssezz les ensem ensembl bles es au hasard hasard des des donnée donnéess originales. (60%), validation (20%) (20%) et test (20%) [trainV trainV,, val val,, test test]] = dividevec(pmm, tmm, 0.20, 0.20); % 3 structures : training (60%), pr = minmax(pmm); % pr est Rx2 est une matrice des valeurs min et max de la matrice pmm de dim (RxQ) net = newff( r, [20 1] ; % créer a « feed-forward backpropa ation network » avec une couche caché de
20 neurones et une couche de sortie avec 1 neurone. La fonction d’apprentissage par default : function = 'trainlm 'trainlm''
[net net,, tr tr]=train( ]=train(net, trainV. trainV.P P, trainV. trainV.T T, [ ], [ ] ,val ,val,,test test); ); % Train a neural network. Cette fonction présente ensemble d’apprentissage 19/11/2008
Structures des ensembles de validation et de test
immédiatement en mode « batch ». Pour évaluer les performances, elle utilise la fonction mse (mean squared error). net est la structure du réseau obtenu, tr est training record (epoches et 27 performance)
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Exemple 1 (suite)
•
•
•
Ensemble de vecteurs d’apprentissage d’apprentissage (trainV. trainV.P P) : Ceuxci sont présentés au réseau pendant l’apprentissage et le réseau est ajusté selon son erreur. erreur. Ensemble de vecteurs de validation trainV. trainV.T T, valid : Ceux-ci sont utilisés pour mesurer la généralisation de réseau et interrom re l’a rentissa e uand la généralisation arrête de s'améliorer. s'améliorer. . , n'ont aucun effet sur l’apprentissage et ainsi fournissent pendant et après l’apprentissage.
19/11/2008
28 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Exemple 1 (suite)
19/11/2008
29 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN 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. ’appren ssage es arr l’itération 9 parce que la performance (le mse) de la validation commence au menter à partir de cet itération.
Performances assez suffisantes
. 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 or FFNN FFNN Exemple 1 (suite)
Analyse de la réponse du réseau
’ , test) et effectuez une régression linéaire entre les sorties de réseau, a ont été ramenés à la gamme originale de cible et les cibles correspond Pmm
net
, mm y = mapminmax('reverse', ymm, ts); ts); % Remettre les valeurs entre [ matrice ymm à leurs valeurs minimales et maximales réelles [m, b, r] = postreg( postreg(yy, t); % Faire une régression linéaire (voir annex élément de la réponse de réseau y et la cible correspondante t. – . mm
MLNN or FFNN FFNN Exemple 1 (suite)
La régr régres essi sion on r des des Valeu aleurs rs mesure la corrélation entre les sorties (non normalisées) et les cibles. Une valeur de r de 1 s gn e un unee re at on par par a te, te, une relation aléatoire.
a sor e su en es c es, r = . . une pr c s on p us gran e es eman e, a ors : - Réinitialiser les poids poids et le biais du réseau en utilisant de nouveau nouveau les fonctions fonctions init(net) et train - Augmenter le nombre de neurones dans dans la couche cachée - Augmenter le nombre de vecteurs d’apprentissage d’apprentissage - Augmenter le nombre d’entrées si plus d’informations d’informations utiles sont disponibles - essayez un autre algorithme d’apprentissage 19/11/2008
32 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN
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 oints de données dans l’ensemble d’apprentissage, le nombre de oids et des biais dans le réseau réseau le l'erreur objective et (dis (discr crim imin inan antt anal analys ysis is)) ou l'ap l'appr prox oxim imat atio ionn de fonc foncti tion onss .
19/11/2008
33
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Comparaison des différentes fonctions d’apprentissage (suite)
’
Acronyme
LM
BFG
RP
SCG
CGB
CGF
CGP
OSS
GDX
Algorithme
trainlm
trainbfg
trainrp
trainscg
traincgb
traincgf
traincgp
trainoss
traingdx
LevenbergMarquardt
BFGS QuasiNewton
Resilient Backpropagation
Scaled Conjugate Gradient
Conjugate Gradient with Powell/Beale Restarts
FletcherPowell Conjugate Gradient
PolakRibiére Conjugate Gradient
One Step Secant
Variable Learning Rate Backpropagation
19/11/2008
34 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Comparaison des différentes fonctions d’apprentissage (suite)
Les six benchmarks utilisés pour tester les performances des algorithmes Titre du Problème
Type du Problèm lème
Structure du réseau
Erreur objective
calculateur
SIN
Approximation d’une fonction
1-5-1
0.002
Sun Sparc 2
PAR ARIITY
Rec econ onna nais issa sannce de for orm mes
3-10-10-1
0.001
Sun Sparc 2
ENGINE
Approximation d’une fonction
2-30-2
0.005
Sun Enterprise 4000
CANC CA NCER ER
Rec econ onna nais issa sannce de for orm mes
9-5-5-2
0.012
Sun Sparc 2
CHOL CH OLES ESTE TERO ROL L
Appr Ap prox oxim imat atio ionn d’ d’un unee fonction
21-15-3
0.027
Sun Sparc 20
DIAB DI ABET ETES ES
Reco Re conn nnai aiss ssan ance ce de fo form rmes es
8-15-15-2
0.05
Sun Sparc 20
19/11/2008
L’algorithme le plus rapide our que ques cen a nes e po s LM RP LM, BFGS QN CGB, CGF, CGP
CGB, RP, LM CGB, CGF, CGP CGB, CGF, CGP, RP
35 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN 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 es r se seaux qu con ennen usqu que ques ce cen a nes e po po s, l'algorithme Levenberg-Marquardt (trainlm trainlm)) aura la convergence . très exact est exigé.
19/11/2008
36 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Comparaison des différentes fonctions d’apprentissage (suite)
Dan Dans be beaucou de ca cas, trainlm est ca able 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. Cepe Cepenndant dant,, la per perform forman ancce est est rela relati tive vem ment ent faible sur des pro mes e reconna ssance e ormes. es ex gences e stockage de trainlm sont plus grandes que les autres algorithmes . _ , 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 or FFNN FFNN Comparaison des différentes fonctions d’apprentissage (suite)
•
La fonc foncti tion on trainrp est est l'al l'algo gori rith thme me le plus rapide sur des problèmes de reconnaissance de formes. formes. Cependant, il n’est pas per orman sur es pro mes approx ma on on es onc on o ns . a performance se dégrade aussi quand l'erreur objective est réduit. rel relativ ativem emen entt pet petites ites en com omppara araison ison aux aux aut autres res algor lgoriithm thmes considérés.
19/11/2008
38 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Comparaison des différentes fonctions d’apprentissage (suite)
•
Les Les algo algori rith thme mess de grad gradie ient nt conj conjug ugué ué,, en part partic icul ulie ierr trainscg trainscg,, semblent fonctionner bien sur une large variété de problèmes, par cu remen pour es r se seaux avec un gran nom re e po s. L'algorithme trainscg est presque aussi rapide que l'algorithme LM ' de grands réseaux) et est presque si rapide que trainrp sur des problèmes de reconnaissance de formes. 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 .
19/11/2008
39 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN Comparaison des différentes fonctions d’apprentissage (suite)
•
La performance de trainbfg est semblable à celle de trainlm trainlm.. Il n'exige pas autant de stockage que trainlm trainlm,, mais le calcul exigé augmen e vra men g om r quemen avec a a e u r seau, parce que l'équivalent d'un inverse matriciel doit être calculé à
19/11/2008
40 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
MLNN or FFNN FFNN 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 ex gences e s oc age que que ra nrp, nrp, ma s peu ou ours être utile pour certains problèmes. Il y a de certaines situations v
19/11/2008
41 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF)
Nécessitent plus de neurones par rapport aux FNN
Deux T es • Generalized regression networks (GRNN ) et • ro a s c neura ne wor s .
19/11/2008
42 Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
Radial Basis Functions (RBF)
Generalized Generalized regression egression network network (suite)
Radial Basis Functions (RBF)
Generalized Generalized regression egression networks networks (GRNN ) (suite)
TRANSFERT FUNCTION : A = radbas(n,FP) ette ette on onct ct on retou retourne rne un unee matr matr ce x e ment mentss e 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 uand 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 ' son vecteur de poids W.
n = -5:0.1:5; a = radbas(n ); plot(n ,a)
’ . 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 e po s . 19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
44
Radial Basis Functions (RBF)
19/11/2008
Generalized Generalized regression egression networks networks (GRNN ) (suite)
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
45
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 = newr , , , , , 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. = SPREAD - Propagation des fonctions RB (spread constant), défaut = 1.0. MN - Nombre maximal de neurones, défaut Q. , . Exemple : goal = 0.02; % sum-squared error goal spread = 1; % spread constant ne = newr , ,goa ,sprea ; 19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
46
Radial Basis Functions (RBF)
Generalized Generalized regression egression networks networks (GRNN ) (suite)
Démonstrations demorb1 montre comment un réseau RB est utilisé
our modéliser une fonction.
Le problème est résolue avec 5 neurones. processus de conception du réseau RB.
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
47
Références - Neural Network User’s Guide, Mathworks
19/11/2008
Tarik AL ANI, A2SI-ESIEE – Paris/ LISV-UVSQ
48