Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- close all
- source "pmc.m";
- load "usps_napp10.dat"
- #Get arguments
- arg_list = argv();
- epsilon = str2num( arg_list{1} ) ;
- nbrLayers = str2num( arg_list{2} ) ;
- nbrNeurones = str2num( arg_list{3} );
- #Xapp : ligne = exemple , colonne = pixels
- #Yapp : colonne = numero de classe
- #Yapp passe de simple classe numérique a multi classe binaire.
- #random 2 nombre aléatoire entre 1 et le nombre de ligne , on stock la ligne xapp et yapp et on inverse les deux lignes
- #Chaque ligne de Xapp est un échantillon et chaque pixel est un feature.
- xtmp = xapp;
- ytmp = yapp;
- xapp = xtest;
- yapp = ytest;
- xtest = xtmp;
- ytest = ytmp;
- #Random
- for i = 1 : size(xapp,1)
- id1 = ceil(rand() * size(xapp,1));
- id2 = ceil(rand()*size(yapp,1));
- tmpx = xapp(id1,:);
- tmpy = yapp(id1,:);
- xapp(id1,:)=xapp(id2,:);
- yapp(id1,:)= yapp(id2,:);
- xapp(id2,:)=tmpx;
- yapp(id2,:)=tmpy;
- end
- #max (xapp),max(xtest) , max(val) , xapp = xapp / val , (xapp*2) - 1
- #Normalisation des données
- xMaxApp = max(xapp(:));
- xMaxTest = max(xtest(:));
- xMax = max(xMaxApp,xMaxTest);
- xapp = xapp/xMax;
- xtest = xtest/xMax;
- xapp = ((xapp*2)-1);
- xtest = ((xtest*2)-1);
- Yt=change_Y_discri(ytest);
- Ya=change_Y_discri(yapp);
- IDSFinal = [];
- data = [];
- load "IDSFinal.dat" IDSFinal
- pas = 0.01;
- Xba = xapp(:,IDSFinal([1:80],1));
- Xbt = xtest(:,IDSFinal([1:80],1));
- if( nbrLayers == 1 )
- [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones} );
- elseif( nbrLayers == 2 )
- [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones} );
- elseif( nbrLayers == 3 )
- [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones, nbrNeurones} );
- elseif( nbrLayers == 4 )
- [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones, nbrNeurones, nbrNeurones} );
- elseif( nbrLayers == 5 )
- [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones, nbrNeurones, nbrNeurones, nbrNeurones} );
- endif
- SucessRateAppB = test_classif_pmc(Xbt,Yt,pmc);
- SucessRateTestB = test_classif_pmc(Xba,Ya,pmc);
- printf("SucessRateTest : %f\n", SucessRateTestB);
- data = [data; epsilon, nbrLayers, nbrNeurones, SucessRateTestB];
- save "dataset.dat" data;
- #meshgrid permet vue 3D (pour la dychotomie)
- #Différente couche neuronal
- # couche d'entréee ( input )
- # couche de sortie ( classe )
- # couche caché ( binaire )
- # elasticité = liaison synaptique
- # le but est de déterminer les poids w pour obtenir les bon yapp en fonction de xapp
- # un neurone est est une fonction plus la somme des entrée multiplié par des poids
- #un neurone n'a qu'une sortie
- #10,10 = 2 couches de 10 neurones cachée
- #printf("Learning error : %f\nTest error : %f\n", SucessRateApp,SucessRateTest);
- #Algo : par dichotomie , pas au dessus de 300 neurones et 5 couche
- #Test avan random et apres random
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement