Advertisement
thibthibaut

MainFinal

Dec 13th, 2015
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 2.89 KB | None | 0 0
  1. clear all
  2. close all
  3.  
  4. source "pmc.m";
  5. load "usps_napp10.dat"
  6.  
  7.  
  8. #Get arguments
  9. arg_list = argv();
  10.  
  11. epsilon = str2num( arg_list{1} ) ;
  12. nbrLayers = str2num( arg_list{2} ) ;
  13. nbrNeurones = str2num( arg_list{3} );
  14.  
  15.  
  16.  
  17. #Xapp : ligne = exemple , colonne  = pixels
  18. #Yapp : colonne = numero de classe
  19. #Yapp passe de simple classe numérique a multi classe binaire.
  20. #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
  21. #Chaque ligne de Xapp est un échantillon et chaque pixel est un feature.
  22.  
  23.  
  24.  
  25. xtmp = xapp;
  26. ytmp = yapp;
  27. xapp = xtest;
  28. yapp = ytest;
  29. xtest = xtmp;
  30. ytest = ytmp;
  31.  
  32.  
  33.  
  34. #Random
  35. for i = 1 : size(xapp,1)
  36.  
  37.   id1 = ceil(rand() * size(xapp,1));
  38.   id2 = ceil(rand()*size(yapp,1));
  39.  
  40.   tmpx = xapp(id1,:);
  41.   tmpy = yapp(id1,:);
  42.  
  43.   xapp(id1,:)=xapp(id2,:);
  44.   yapp(id1,:)= yapp(id2,:);
  45.  
  46.   xapp(id2,:)=tmpx;
  47.   yapp(id2,:)=tmpy;
  48. end
  49.  
  50. #max (xapp),max(xtest) , max(val) , xapp = xapp / val , (xapp*2) - 1
  51.  
  52.  
  53.  
  54. #Normalisation des données
  55. xMaxApp = max(xapp(:));
  56. xMaxTest = max(xtest(:));
  57. xMax = max(xMaxApp,xMaxTest);
  58.  
  59.  
  60. xapp = xapp/xMax;
  61. xtest = xtest/xMax;
  62.  
  63. xapp = ((xapp*2)-1);
  64. xtest = ((xtest*2)-1);
  65.  
  66.  
  67. Yt=change_Y_discri(ytest);
  68. Ya=change_Y_discri(yapp);
  69.  
  70.  
  71.  
  72.  
  73. IDSFinal = [];
  74. data = [];
  75.  
  76. load "IDSFinal.dat" IDSFinal
  77.  
  78. pas = 0.01;
  79.  
  80.  
  81. Xba = xapp(:,IDSFinal([1:80],1));
  82. Xbt = xtest(:,IDSFinal([1:80],1));
  83.  
  84.  
  85. if( nbrLayers == 1 )
  86.   [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones} );
  87. elseif( nbrLayers == 2 )
  88.     [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones} );
  89. elseif( nbrLayers == 3 )
  90.     [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones, nbrNeurones} );
  91. elseif( nbrLayers == 4 )
  92.     [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones, nbrNeurones, nbrNeurones} );
  93. elseif( nbrLayers == 5 )
  94.     [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,epsilon, {nbrNeurones, nbrNeurones, nbrNeurones, nbrNeurones, nbrNeurones} );
  95. endif
  96.  
  97. SucessRateAppB = test_classif_pmc(Xbt,Yt,pmc);
  98. SucessRateTestB = test_classif_pmc(Xba,Ya,pmc);
  99.  
  100. printf("SucessRateTest : %f\n", SucessRateTestB);
  101. data = [data; epsilon, nbrLayers, nbrNeurones, SucessRateTestB];
  102. save "dataset.dat" data;
  103.  
  104.  
  105. #meshgrid permet vue 3D (pour la dychotomie)
  106. #Différente couche neuronal
  107. # couche d'entréee ( input )
  108. # couche de sortie ( classe )
  109. # couche caché ( binaire )
  110. # elasticité = liaison synaptique
  111. # le but est de déterminer les poids w pour obtenir les bon yapp en fonction de xapp
  112. # un neurone est est une fonction plus la somme des entrée multiplié par des poids
  113. #un neurone n'a qu'une sortie
  114. #10,10 = 2 couches de 10 neurones cachée
  115.  
  116.  
  117. #printf("Learning error : %f\nTest error : %f\n", SucessRateApp,SucessRateTest);
  118.  
  119. #Algo : par dichotomie , pas au dessus de 300 neurones et 5 couche
  120.  
  121. #Test avan random et apres random
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement