You are on page 1of 13

Modules complmentaires MATLAB

MATLAB Compiler : Transcription de M-files en langage C - Mise au point de MEX-files - Mise au point de source C au code C ANSI ou K&R indpendant de MATLAB. Neural Network Toolbox : Rseaux associatifs, rtropropagation, de Hopfield, de Kohonen, autoorganisation, base radiale et autres rseaux - Fonctions comptitives, limites, linaires, de transfert sigmode - Architectures rcurrentes, retroactives - Fonctions d'analyse des performances et graphes - Taille de rseaux illimite - Blocs 'rseaux de neurones' sous SIMUUNK. Control System Toolbox : Techniques modernes et classiques - Temps discret et continu - Modles sous forme de fonctions de transfert et d'quations d'tat - Interconnexion systme - Transformation entre modles Rduction de modles - Rponse frquentielle: Bode, Nyquist, Nichols, valeurs singulires - Rponses temporelles pour une impulsion, un chelon, un signal quelconque - Lieu des racines, placement des ples, commande optimale quadratique. System Identification Toolbox : MA, AR, ARMA, Box-Jenkins - Modles sous forme de fonctions de transfert et d'quation d'tat - Techniques rcursives et non rcursives - Validation de modle - Slection de l'ordre manuel ou automatique - Traitement du signal. Signal Processing Toolbox : Conception de filtres numriques et analogiques, implmentation, et simulation de rponse - Analyse et estimation spectrales, FFT, DCT et autres transformes - Modlisation paramtrique Traitement de signaux multi-chantillonns - Modulation et dmodulation. Image processing Toolbox : Filtrage et conception de filtres 2-D - Amlioration et restauration d'images Oprations morphologiques, gomtriques, et coloration - Transformations 2-D - Analyse d'images et statistiques. Optimization Toolbox : Programmation linaire et programmation quadratique - Calcul du minimum ou du maximum d'une fonction - Moindres carrs non linaires - Problmes semi-infinis et minimax - Optimisation muli-objectif - Optimisation sous contraintes - Solution d'quations. Symbolic Math Toolbox : Calcul symbolique, algbre linaire, et rsolution d'quations - Simplification d'expressions - Fonctions spciales - Prcision arithmtique variable - Accs au noyau Maple, y compris la bibliothque de base d'algbre linaire - L'"Extended Toolbox" ajoute la programmation et toutes les fonctions. Statistics Toolbox : Bta, binomiale, chi-deux, Poisson, et autres distributions - Gnration de nombres alatoires - Boxplots, probabilit, quantile-quantile, et autres graphiques - Rgression, polynmes, et analyse de la variance - Statistiques descriptives - Tests d'hypothse - Outils d'analyse commandables graphiquement . Math Library : Contient la librairie C des routines du noyau MATLAB - Est utilisable en standalone (sans MATLAB) ou en liaison avec le compilateur MATLAB. Nonlinear Control Design Blockset : Mise au point automatique de lois de commandes pour les systmes non linaires - Intgration complte aux schmas-blocs de SIMULINK - Editeur graphique pour les spcifications des paramtres de performance temporelle - Solution d'quations non linaires. DSP Blockset : Bibliothque de blocs SIMULINK permettant la conception, la simulation et la mise au point de systmes en traitement du signal - Plus de 100 blocs permettant la prise en compte dans les modles SIMULINK des oprations lmentaires de traitement du signal (buffers, FFI, etc.), arithmtique complexe, mathmatiques vectorielles et statistiques, fentrage, conception de filtres et filtrage, gnration et visualisation de signaux... - Compatibilit avec le Real-Time Workshop pour la gnration de code C et l'implantation sur cible - Complmentaire la Signal Processing Toolbox de MATLAB. Real-Time Workshop : Gnration automatique de code C partir de schmas-blocs SIMULINK en temps discret, temps continu ou systmes hybrides - Code optimis pour une excution rapide, portable lisible et bien document - Tableau de commande API - Choix de paramtres: paramtres en ligne ou vectoriels, code C

ANSI ou K&R, simulation en temps rel ou fixes, validation de code automatise, algorithmes d'intgration Code C gnr utilisable avec pratiquement tout systme temps rel du commerce ou propritaire. SIMULINK Accelerator : Acclre les simulations sous SIMULINK en transformant vos modles SIMULINK en fichiers excutables (ncessite le compilateur WATCOM C) Supporte les systmes en temps continu ou discret, les systmes hybrides et multichantillonns - Permet de changer les paramtres avant ou en cours de simulation, sans nouvelle compilation - Compare la structure de votre modle SIMULINK avec le dernier modle compil pour savoir si une nouvelle compilation est ncessaire - Supporte tous les algorithmes d'intgration de SIMULINK. Fixed-Point Blockset : Bibliothque de blocs SIMULINK permettant l'utilisation de composants en virgule fixe. Les blocs fournis incluent : oprations arithmtiques, gains et constantes, conversions virgule flottante/virgule fixe, tables d'interpolation 1 D et 2D, oprations logiques, relationnels, conversion/saturation, retards... Compatible avec le RealTime Workshop pour la gnration de code C et l'implantation sur cible. LMI Control Toolbox : Fonctions d'optimisation pour la rsolution d'ingalits matricielles - Fonctions spcialises pour l'analyse et la conception de contrleurs par une approche LMI. Model Predictive Control Toolbox : Conception et tests de commandes adaptatives - Inclut les principales approches pour la spcification du problme d'optimisation et l'estimation d'tat. Quantitative Feedback Theory Toolbox : Conception pratique de systmes boucls robustes - Prise en compte des spcifications de performances et des incertitudes sur le procd dans le domaine frquentiel Interface Utilisateurs Graphique complte pour la formulation de contrleurs simples et d'ordre peu lev, qui remplissent les critres spcifis. Robust Control Toolbox : Synthse optimale LQG/LTR - Synthse optimale H2 et H(infini) - Rduction de modles par valeurs singulires - Factorisation spectrale. Mu-Analysis and Synthesis Toolbox : Synthse et analyse Mu - Synthse optimale H2 et H(infini) - Thorie de l'analyse et de la synthse mu. Frequency Domain System Identification Toolbox : Identification de systmes dynamiques linaires partir de mesures de l'excitation et de la rponse frquentielle. MMLE3 Identification Toolbox : Identification de modles d'tats partir de donnes d'entre-sortie Algorithmes avancs mis au point la NASA Hi-Spec Toolbox : Estimation de spectres d'ordre suprieur - Approches conventionnelles et paramtriques Algorithmes avancs en traitement du signal. Spline Toolbox : Polynmes par morceaux et B-splines - Manipulation et construction de Splines - Fitting et lissage de courbes - iffrentiation de fonctions, intgration et valuation. Fuzzy Logic : Conception de systmes flous - Apprentissage neuroflou, adaptatif - Classification - Systmes d'infrences de type SUGENO - Gnration de code C - Blocs Logique Floue sous SIMULINK. Chemometrics Toolbox : Dveloppement et valuation de matrices de calibration - Dveloppement de mthodes d'analyse quantitative - Rgression linaire multiple - Analyse en composantes principales Moindres carrs partiels. PDE Toolbox : Rsolution de systmes d'quations aux drives partielles en 2-D par les mthodes des lments finis - Equations elliptiques, paraboliques, hyperboliques, aux valeurs propres - Equations coefficients complexes, constants ou variables en fonction de la position et de la solution - Conditions limites de Neumann, Dirichlet ou mixtes - Interface Utilisateurs volue permettant de traiter les applications standard suivantes: mcanique des structures, lectrostatique, magntostatique, lectromagntisme, milieux conducteurs, transferts de chaleur, diffusion - On dispose, en particulier, d'un meilleur adaptatif, d'un solveur non-linaire, d'outils de traitement des matrices creuses et de solveurs d'quations diffrentielles adapts. NAG Foundation Toolbox : Plus de 200 fonctions NAG (fonctions de la NAG Foundation Library) intgres et utilisables depuis MATLAB - Nombreux sujets couverts: optimisation, quations diffrentielles ordinaires

et aux drives partielles, intgration numrique, statistiques, etc. - Nom de fonctions et syntaxes d'appel drivs de ceux utiliss dans NAG. Financial Toolbox : Fournit un ensemble robuste de fonctions financires indispensables l'analyse quantitative et financire - Les applications comprennent la dtermination du prix des titres, le calcul d'intrts et de taux, l'analyse des produits drivs et l'optimisation de portefeuilles. Structural Dynamics Toolbox : Identification modale partir de donnes exprimentales - Analyse de modles aux lments finis dfinis provenant d'outils tels que NASTRAN... - Recalage de ces modles par rapport des donnes exprimentales - Interface Utilisateurs Graphique permettant la visualisation et l'analyse de fonctions de rponses frquentielles, l'identification de modes normaux et complexes, la visualisation et l'estimation des dformations de structures.

Comment compiler un programme MATLAB


1- Introduction 2- Pourquoi compiler des fonctions MATLAB ? 3 - Cration d'une fonction MATLAB compile 'MEX-files' a) Mcanisme de base b) Compilation simultan de plusieurs fonctions c) Compilation d'un fonction SIMULINK 4 - Cration d'une application externe indpendante de MATLAB. a) Mcanisme de base b) Gnration de programmes compils C et C++ c) Gnration de programmes C pour utilisation dans une autre application C. d) Gnration de fonctions objets 5 - Limitations et Restrictions 1- Introduction Le compilateur MATLAB est un produit assez jeune qui evolu assez vite. La version actuelle est la version 2.0 . Le compilateur gnre un code source C ou C++ partir d'une fonction MATLAB. Ce code C est ensuite compil afin d'obtenir:

soit une fonction MATLAB compile ('MEX-file'). soit une application externe qui puisse fonctionner sans MATLAB.

2- Pourquoi compiler des fonctions MATLAB ? Il y a au de bonnes raisons pour compiler une fonction MATLAB:

Pour augmenter la vitesse Pour crer une application indpendante de MATLAB. Un programme compil tourne plus vite qu'un programme interprt. Un code C contient des donnes de types plus simple. Pour MATLAB toutes les donnes sont des matrices (des tableaux). MATLAB vrifie la taille des tableaux chaque affectation d'lment ce que l'on peut eviter de faire en C.

Un code C compil tourne plus vite que son quivalent en MATLAB car :

MATLAB doit r-allouer de la mmoire en cours d'excution la ou en C on peut l'eviter. la fonction MATLAB est fortement vectorise. la fonction MATLAB passe beaucoup de temps utiliser des fonctions internes MATLAB mathmatiques (trs rapide) et graphiques (trs lent). contient des boucles (for,while). contient des variables que le compilateur traduit en 'real' ou en 'integer'. ne travaille que sur des relles.

La compilation d'une fonction MATLAB n'apportera pas forcement de gain si :

La compilation apportera des gains de temps si la fonction MATLAB :


3 - Cration d'une fonction MATLAB compile 'MEX-files' a) Mcanisme de base Le compilateur MATLAB 'mcc' transforme une fonction MATLAB en code source C qui est ensuite compil par l'outil 'mbuild'. Celui-ci gnre un code compil de la fonction (avec comme extension '.mexaxp')qui sera automatiquement utilis la place de la fonction MATLAB correspondante. Soit la fonction MATLAB suivante 'carre1' qui va nous servir d'exemple:
function mat = carre1(n); % calcul test for i=1:n, mat(i)=sqrt(i)*i; end

Pour compiler on tape sous MATLAB :


>> mcc -x carre1.m

On obtient un code source C 'carre1.c' et un excutable 'carre1.mexaxp' qui sera utilis la place de 'carre1.m'. Ces deux fichiers se trouve dans le rpertoire courant. L'utilisation de l'outil 'mbuild' est transparent pour l'utilisateur. Pour lancez la fonction on tape par exemple :
>> carre1(100)

Si l'on desire des informations sur la compilation l'option '-v' permet d'avoir toutes les informations en cours de la compilation.
>> mcc -vx carre1.m

b) Compilation simultan de plusieurs fonctions Si une fonction fait appel une ou plusieurs autres fonctions que vous avez crites, vous pouvez les compiles en mme temps. Attention, il faut que la fonction principale soit la premire cite parmi les arguments pour le compilateur . Par exemple :
>> mcc -x fonction-principale.m fonction1.m fonction2.m

On gnre un fonction compile 'fonction-principale.mexaxp', il n'y a pas de 'fonction1.mexaxp' et 'fonction2.mexaxp' c) Compilation d'une fonction SIMULINK Pour compiler on tape sous MATLAB :
>> mcc -S mafonction.m

On obtient un excutable 'mafonction.mexaxp' utilisable seulement MATLAB.

4 - Cration d'une application externe indpendante de MATLAB. a) Mcanisme de base Si l'on invoque le compilateur MATLAB avec la bonne option 'mcc -c', celui-ci gnre un code C qui peut tre intgr dans vos propres applications C. Aprs la compilation de votre application C l'aide de l'outil 'mbuild' les diffrents programmes objet sont links avec les librairies suivantes :

'MATLAB Math built-In Library' qui contient la version compile de la plupart des routines mathmatiques internes de MATLAB. 'MATLAB Math Toolbox Library' qui contient la version compile des routines mathmatiques externes de MATLAB (script). 'MATLAB Compiler Library' qui contient des routines spciales pour la manipulations de certaines structures de donnes. 'ANSI C Math library' librairie mathmatique standard fourni par le constructeur de la machine.

Vous obtenez alors un code excutable sur toutes les plate-formes COMPAQ/DEC du Centre. Attention ! avant de lancer votre programme sous UNIX il faut dfinir la chemin ou le programme trouvera les librairies Matlab par la commande: export LD_LIBRARY_PATH=/usr/local/matlab531/extern/lib/alpha Voyons un exemple, prenons la fonction 'carre2.m'.
function mat=carre2; % calcul test n=10000; for i=1:n, mat(i)=sqrt(i)*i; end

b) Gnration de programmes compils C et C++ Pour gnrer un code excutable C qui ne contient pas d'appel des fonctions graphiques mais seulement de calcul il suffit de taper la commande:
>> mcc -m carre2.m

De mme pour gnrer un code C++ on tape sous Matlab:


>> mcc -p carre2.m

c) Gnration de programmes C pour utilisation dans une autre application C. Pour gnrer le code C appropri on tape :
>> mcc -t -L C carre2.m

On obtient un programme C 'carre2.c' qui peut tre intgr dans un programme C externe. Si on a crit un programme C 'main.c' qui utilise la fonction 'carre2' on compilera le tout en tapant sous UNIX:
$ mbuild -o monprog monprog.c carre2.c

ou sous MATLAB par le commande


>> mcc -T link.exe monprog.c carre2.c

On peut maintenant excuter le programme 'monprog' sur n'importe quel DEC/ALPHA du Centre. d) Gnration de fonctions objets Le gnration de fonctions objets '.o' est intressante plusieurs titres :

La premiere raison est logique on ne peut pas generer un executable en compilant un fonction qui n'a pas de programme principale. Si on developpe une application assez importante, il est possible de ne compiler que les objets modifis d'ou un gain de temps la compilation. On peut ne fournir un autre utilisateur que les fonctions objets ce qui assure une bonne confidentialit (c'est du binaire)

Voici un exemple pour obtenir des fonctions objets: Ici on compile la fonction carre1 qui genere un programme C et un fichier objet. Puis on genere le programme C principal qui utilise cette fonction (juste pour viter d'crire le programme C) et on le compile ce qui donne une autre fichier objet
>> mcc -v -t -L C carre2 # Generation carre2.c >> mcc -v >> mcc -v >> mcc -v -T compile:exe carre2.c # Generation carre2.o -W main -L C carre2 # Generation carre2_main.c -T compile:exe carre2_main.c # Generation carre2_main.o

Puis on gnre l'excutable partir des fichiers objets:


>> mcc -T link:exe carre2.o carre2_main.o

ou sous UNIX par la commande:


$ mbuild -o carre2.o carre2_main.o

5 - Limitations et Restrictions du compilateur version 2.0 Il y a quelques restrictions qui font que le compilateur MATLAB ne peut pas transformer tous les codes MATLAB en code C. Le compilateur MATLAB ne peut pas compiler :

un script MATLAB, il faut que ce soit une fonction MATLAB, souvent il suffit de rajouter 'function f=nomfonction' en premire ligne. un code contenant 'eval','input'. un code qui utilise les objets MATLAB.

a) Restrictions supplmentaires concernant les applications externes Les applications externes ne peuvent accder :

aux fonctions de debug MATLAB comme 'dbclear'. aux fonctions graphiques comme 'surf','plot','get' et 'set' (bibliothque non disponible pour le moment) une application ne peut s'excuter que sur une plateforme du mme type, en l'occurrence DEC/COMPAQ soit les machines Berg, Webern et Schoenberg.

b) Restrictions levs par la version 2 du compilateur Le compilateur version 1.2 avait des restrictions trs contraignantes qui sont supprims, qui sont:

l'utilisation de load et save l'utilisation des fonctions SIMULINK l'optimsation du code est automatique et n'a plus besoin d'tre prcis par des options.

6 - Documentation Pour plus de renseignements tapez sous MATLAB 'help mcc' et'help mbuild'

Utilisation de la Bote outils Matlab Rseaux de Neurones


1- Gnralits a) Mcanisme de base b) Cration et apprentissage dun rseau c) Simulation (ou activation) dun rseau 2- Diffrents types de rseaux prdfinis a) Apprentissage comptitif (non-supervis, parfois appel VQ) b) LVQ (apprentissage comptitif supervis) c) Cartes auto-organisatrices d) Perceptron multicouches avec apprentissage par rtro-propagation e) Rseau probabiliste f) Rseaux fonctions radiales de base (FRB) d) Rseaux rcurrents 1 - Gnralits a) Gnration de donnes de test La fonction nngenc gnre des points distribus alatoirement selon des courbes gaussiennes. Ces donnes permettent de tester rapidement des algorithmes de classification. Exemple dutilisation (voir la dmo dapprentissage comptitif democ1) :
X = [0 1; 0 1]; clusters = 8; points = 10; std_dev = 0.05; P = nngenc(X,clusters,points,std_dev); plot(P(1,:),P(2,:),'+r');

La fonction nngenc gnre dans cet exemple 8 distributions gaussiennes de 10 points chacune en 2 dimension (cette dernire information est programme au moment de la dfinition de X). Lcart-type des gaussiennes est 0,05. Les centres des gaussiennes sont compris entre 0 et 1. Remarque : la fonction nngenc est non documente dans Matlab. Structure Matlab des rseaux Il sagit dune structure hirarchique (certains membres de la structure de base sont eux-mmes des structures) relativement complexe. Elle peut tre visualise lors de la cration du rseaux ou plus tard. Exemple :
net=newc( paramtres )

pas de point-virgule donc affichage Autre solution :


net=newc( paramtres ) ; net

b) Cration et apprentissage d un rseau La fonction de cration dun rseau est spcifique au modle de rseau utilis (newc, newlvq, etc).

Il existe 2 types dapprentissage : Incrmental : fonction adapt Par paquets : fonction train

Apprentissage incrmental (en-ligne, on-line) : les poids sont modifis chaque prsentation dune entre Apprentissage par paquets (hors-ligne, off-line, batch mode) : les poids sont modifis uniquement aprs prsentation de toutes les entres. c) Simulation (ou activation) d un rseau
a=sim(net, p) ;

o net est le pointeur retourn par une fonction de cration de rseau. 2 - Diffrents types de rseaux pr-dfinis a) Apprentissage comptitif (non-supervis, parfois appel VQ) Cration dun rseau pour lapprentissage comptitif : fonction newc Exemple : cration dun rseau de 2 neurones 2 entres :
net=newc([0 1 ; 0 1], 2) ;

Le 1er argument indique la plage de variation des 2 entres. Dans le cas dun grand nombre dentres... ? Apprentissage de base (rgle de Kohonen) : learnk Apprentissage avec paramtre de conscience : learncon Lapprentissage est lanc soit par la fonction adapt (incrmental) soit par train (par paquets). Ces 2 fonctions auront le mme effet. Paramtres par dfaut : Les poids sont initialiss la moiti de la plage dentre Les biais sont initialiss avec la fonction initcon, qui initialise les biais en vue de lutilisation du mode dapprentissage avec paramtre de conscience. Fonction dapprentissage : rgle de Kohonen : learnk Dmo : democ1 b) LVQ (apprentissage comptitif supervis) Cration dun rseau pour le LVQ : newlvq Liste des fonctions et dmo : help lvq Dmo : demolvq1 Rappel : algorithmes de base VQ et LVQ : -application dune entre -recherche du neurone vainqueur -modification des poids (cas VQ : rapprochement de lexemple cas LVQ : rapprochement ou loignement selon que le neurone vainqueur est le neurone dsir ou non)

Dans Matlab le rseau pour le LVQ est programm au moyen de 2 couches : une couche de comptition pour la dtermination du neurone vainqueur (la sortie de ce dernier est mise 1, celle des autres neurones 0) une couche de neurones linaires pour la classification

La 2e couche comporte un neurone par classe, la 1re comporte un neurone par sous-classe. Lapprentissage modifie les poids de la premire couche. Les neurones de la 2e couche combinent certaines sorties des neurones de la 1re au moyen de fonctions OU. Exemple 10 vecteurs dentre appartenant 2 classes. Les vecteurs dentres sont disposs de telle faon quil faut au moins 4 sous-classes. Chaque classe sera lunion de 2 sous-classes. Ces informations se traduisent donc par 4 neurones dans la 1re couche et 2 dans la 2e. Points choisis, en dimension 2 (matrice 2 lignes, 10 colonnes) :
P=[-3 2 2 0 0 0 0 +2 +2 +3 ; 0 +1 1 +2 +1 1 2 +1 1 0] ;

Cibles (indices de classe de chaque point) :


Tc=[1 1 1 2 2 2 2 1 1 1] ;

Cration du rseau
net=newlvq((minmax(P), 4, [.6 .4]);

1er argument : plage de variation des entres (affichage par minmax(P) ) 2e argument : nombre de neurones dans la couche de comptition 3e argument : pourcentage dappartenance des entres pour chacune des 2 classes (linformation du nombre de classes fait partie de cet argument) Par dfaut les poids de la 1re couche sont initialiss avec la fonction midpoint. Celle-ci initialise la moiti de la plage de variation : ici 0. On le vrifie en entrant :
net.IW{1,1} >ans= 0 0 0 0 0 0 0 0

Les poids entre la 1re et la 2e couche sont fixes. Affichage :


net.LW{2,1} >ans= 1 1 0 0 0 0 1 1

Activation du rseau (simulation dans la terminologie de Matlab)


Y=sim(net,P)

La fonction sim retourne le rsultat sous forme de 10 vecteurs de dimension 2 : un 0 reprsente un neurone inactif, un 1 un neurone actif. A cette premire activation toutes les entres sont classes dans la 1re classe. En effet lapprentissage na pas encore eu lieu. Pour convertir ces vecteurs en indices (lindice 1 correspondra au 1er neurone actif et lindice 2 au 2e :

Y2=vec2ind(Y);

Affiche 10 fois le chiffre 1. Apprentissage On commence par fixer des paramtres dapprentissage :
net.trainParam.epochs=1000; net.trainParam.lr=0.05 ; %100 par dfaut %pas de valeur par dfaut

puis on lance lapprentissage :


net=train(net,P,T) ;

Affichage des poids rsultats :


net.IW{1,1}

Affichage des rsultats de classification :


Y=sim(net,P)

Affichage graphique des entres et des poids : Gnralisation (=activation avec des donnes non-apprises) : On choisit une entre proche dun vecteur dapprentissage :
vec=[0 ; 0.5]; Y=sim(net, vec); Yc1=vec2ind(Y) >Yc1=2

Ce vecteur dentre a donc t class dans la 2 classe, ce qui est correct. Conditions respecter pour lapprentissage comptitif : La couche de comptition doit possder suffisamment de neurones, et chaque neurone de classe tre connect suffisamment de neurones de la couche de comptition. c) Cartes auto-organisatrices Cration du rseau Elle est commande par la fonction newsom. Le premier argument de cette fonction contient les bornes des entres, et le second le nombre de neurones du rseau ainsi que leur arrangement. Par exemple :
net=newsom([0 2 ; 0 1], [2 3]) ;

cre un rseau de 2 x 3 neurones, dont les entres 2 dimensions peuvent tre comprises entre 0 et 2 pour la 1re dimension et 0 et 1 pour la 2e. Types de voisinages Il existe 3 types de topologies de rseaux : grille rectangulaire (gridtop) hexagonale (hextop) alatoire (randtop)

Par dfaut, le type slectionn est le type hexagonal. Pour modifier ce paramtre, il suffit de forcer le 3e paramtre de la fonction newsom. Par exemple pour forcer le type gridtop :
newsom(([0 2 ; 0 1], [2 3], gridtop ) ;

Principe de l apprentissage en 2 phases La phase dorganisation globale (ordering phase) stend sur un nombre dtapes gal LP.order_steps ; la valeur par dfaut est 1000. Le taux dapprentissage est gal au paramtre LP.order_lr, dont la valeur par dfaut est 0,9, et dcrot au cours de lapprentissage jusqu la valeur dfinie par LP.tune_lr, gale 0,02 par dfaut. La distance de voisinage est initialement gale la distance maximale entre 2 neurones, puis dcrot au cours de lapprentissage jusqu la valeur dfinie par LP.tune_nd, gale 1 par dfaut. La phase de rglage fin (tuning phase) prend le relais de la phase dorganisation, avec comme taille de voisinage la valeur dfinie par LP.tune_nd. Le taux dapprentissage commence avec la valeur dfinie par LP.tune_lr, puis dcrot beaucoup plus lentement que dans la phase prcdente. Le nombre de cycles pour cette phase doit tre beaucoup plus grande que dans la phase prcdente. Pour modifier ces paramtres, afficher la syntaxe de la fonction newsom laide de la ligne de commande help newsom. Lancement de l apprentissage Lapprentissage est command par lappel de la fonction train. Lapprentissage de Kohonen est programm par lutilisation de la fonction learnsom. La modification des poids intervient aprs chaque prsentation dune nouvelle entre, indpendamment du type de fonction dapprentissage slectionn : trainwb1 (apprentissage en mode batch) ou adaptwb (apprentissage en mode instantan). Lapprentissage affecte le neurone vainqueur et ses voisins de la faon suivante : les poids du vainqueur sont modifi avec le taux dapprentissage dfini, et ses voisins sont modifis avec un taux dapprentissage gal la moiti de celui-ci. Affichage de l tat du rseau La fonction plotsom, avec comme argument un rseau dj cr, permet dafficher les relations de voisinage entre les neurones sous forme de grille.
Dmos Demosm1 Demosm2

d) Perceptron multicouches avec apprentissage par rtro-propagation La fonction de cration dun rseau est newff, pour feed-forward (car dans ces rseaux lactivit ne se propage que de lentre vers la sortie). Exemple de syntaxe :
net=newff([-1 2 ; 0 5], [3,1], { tansig , purelin }, traingd ) ;

Cette commande cre le rseau et initialise ses poids. 4e argument : algorithme dapprentissage. Diffrents types : learngd : apprentissage par descente de gradient learngdm : version avec moment de learngd traingd : mme chose que learngd mais en mode off-ligne (batch learning) traingdm : version avec moment de traingd e) Rseau probabiliste La fonction newpnn cr un rseau probabiliste. Il sagit dun rseau compos de 2 couches : la premire est une couche de neurones fonctions radiales de base (FRB), ce qui signifie 2 choses : les neurones calculent la distance entre un vecteur dentre et leur vecteur poids ;

leur fonction de transfert est une gaussienne la seconde est une couche de comptition : elle prend les sorties de la couche FRB, remplace la sortie maximale de cette couche par un 1 et les autres par un 0. Cette mthode fonctionne en apprentissage supervis, cest dire que lapprentissage ncessite comme information un ensemble de vecteurs dentre associs avec une sortie dsire du rseau. La fonction newpnn cre dans la 1re couche 1 neurone par exemple dapprentissage. Ce rseau est appel probabiliste car il peut tre vu comme limplmentation de la mthode des fentres de Parzen, qui consiste centrer une gaussienne sur chaque exemple dapprentissage. Chaque classe est alors constitue par une somme de gaussiennes dont lamplitude et ltalement reste dterminer. Exemple Considrons le tableau P 2 lignes et 7 colonnes suivant (il est en effet transpos par le ) :
P=[0 0;1 1;0 3;1 4;3 1;4 1;4 3] ;

puis un vecteur comportant les indices des classes dsires (=cibles) :


Tc=[1 1 2 2 3 3 3] ;

La fonction newppn a besoin dune matrice avec des 1 aux bons endroits. Cela est ralis avec la fonction ind2vec :
T=ind2vec(Tc)

qui donne :
T= (1,1) (1,2) (2,3) 1 1 1

etc. qui signifie quil y a dans la matrice T des 1 aux positions (1,1), (1,2), (2,3) Cration du rseau et simulation :
net=newpnn(P,T) ; Y=sim(net,P) ; Yc=vec2ind(Y) affiche : Yc= 1 1 2 2 3 3 3

Les 6 vecteurs dapprentissage sont donc correctement classs. Ltape suivante serait de tester le rseau avec des vecteurs non-appris. Dmo
demopnn1

Remarque : Il ny a pas de phase dapprentissage comme dans la plupart des autres rseaux de neurones. Ici le calcul des paramtres du rseau est effectu au moment de la cration du rseau. f) Rseaux fonctions radiales de base (FRB) Il existe 2 types de rseaux, crs par newrbe et newrb. newrbe

Cette fonction cre un rseau fonctions radiales de base possdant autant de neurones dans la premire couche (neurones de codage) que dexemples dentre. Exemple dutilisation :
net=newrbe(P, T, spread);

P : exemples dapprentissage, sous forme de colonnes dans une matrice T : sorties dsires sous forme de vecteur dont la dimension est le nombre de classes spread : paramtre dtendue des gaussiennes Le principal inconvnient de cette mthode est quelle ncessite un neurone par vecteur dapprentissage, ce qui peut devenir coteux en mmoire et en temps de traitement pour les grosses bases dapprentissage. newrb Cre un rseau construction pogressive. Les neurones sont crs un par un, en fonction dune erreur de sortie : chaque itration le rseau choisit lexemple dentre qui minimise cette erreur. Ce vecteur est alors copi dans les poids dun neurone FRB, et devient alors un reprsentant dune classe. Cette opration est rpte jusqu ce que lerreur de sortie passe en dessous du seuil demand. Exemple dutilisation :
net=newrbe(P, T, goal, spread);

Les paramtres P, T et spread sont les mmes que pour newrbe. Le paramtre goal est un seuil indiqu par lutilisateur pour lerreur de sortie, en dea duquel la construction du rseau sarrte. g) Rseaux rcurrents Rseau de Hopfield Fonction de cration et de dtermination des poids (apprentissage) : newhop Entres : cibles (points dquilibre, entres mmoriser, apprendre) ; matrice T de ces vecteurs Sorties : les poids et les seuils Utilisation : net=newhop(T) ;

You might also like