Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.40 KB | None | 0 0
  1. function data = coach(P,filter,act_func,learningstyle,learningfunc)
  2. trainingfunc = '';
  3. hardlim_flag = 0;
  4. if strcmp(learningstyle,'Incremental') == 1
  5. % set layer transfer function [purelin or any other]
  6. keySet = {'gradient rule','gradient rule improved with momentum','hebb rule','hebb rule with decaying weight','Widrow-Hoff learning rule'};
  7. valueSet = {'learngd','learngdm','learnh','learnhd','learnwh'};
  8. M = containers.Map(keySet,valueSet);
  9. trainingfunc = M(learningfunc);
  10. else
  11. keySet = {'gradient descent','gradient descent with adaptive learning rate','gradient with moment','Levenberg-Marquardt','scaled conjugate gradient'};
  12. valueSet = {'traingd','traingda','traingdm','trainlm','trainscg'};
  13. M = containers.Map(keySet,valueSet);
  14. trainingfunc = M(learningfunc);
  15. end
  16.  
  17. AT = load('PerfectArial.mat');
  18.  
  19. T1 = AT.Perfect;
  20. T=[];
  21. for c = 1:50
  22. T =[T T1];
  23. end
  24.  
  25. switch filter
  26. case 'Perceptron'
  27. perc = perceptron;
  28. perc = train(perc,P,T);
  29. case 'Associative Memory'
  30. classifier.performParam.lr = 0.5; % learning rate
  31. classifier.trainParam.goal = 1e-6; % goal=objective
  32. W = T*pinv(P);
  33. P = W * P;
  34. end
  35.  
  36. switch act_func
  37. case 'Hardlim'
  38. act_func='hardlim';
  39. hardlim_flag = 1;
  40. case 'Linear'
  41. act_func = 'purelin';
  42. otherwise
  43. act_func = 'logsig' ;
  44.  
  45. end
  46.  
  47. T=[];
  48. for c = 1:50
  49. T =[T eye(10)];
  50. end
  51.  
  52. if hardlim_flag == 1
  53. classifier = perceptron;
  54. classifier = configure(classifier,P, T);
  55.  
  56.  
  57. W1=rand(10,256);
  58. b1=rand(10,1);
  59.  
  60. classifier.IW{1,1}=W1;
  61. classifier.b{1,1}=b1;
  62. classifier = train(classifier, P, T);
  63.  
  64. else
  65.  
  66. classifier = network;
  67. classifier.numInputs = 1;
  68. classifier.inputs{1}.size = 256;
  69. %set the number of layers
  70. classifier.numLayers = 1;
  71. classifier.layers{1}.size = 10;
  72.  
  73. %connect input to layer 1
  74. classifier.inputConnect(1) = 1;
  75. %connect bias to layer 1
  76. classifier.biasConnect(1) = 1;
  77. classifier.outputConnect(1) = 1;
  78.  
  79. %nect(1) = 1;
  80.  
  81.  
  82. %learningfunc = '';
  83.  
  84.  
  85. if strcmp(learningstyle,'Incremental') == 1
  86. % set layer transfer function [purelin or any other]
  87. classifier.layers{1}.transferFcn = act_func;
  88. classifier.trainFcn = 'trainlm';
  89. classifier.inputweights{1,1}.learnFcn= trainingfunc;
  90. classifier = train(classifier,P,T) ; % train network
  91.  
  92. else
  93. classifier.layers{1}.transferFcn = act_func;
  94.  
  95. %chamo a funcao train
  96. classifier.trainFcn = trainingfunc;
  97. classifier = trainc(classifier,P,T) ; % train network
  98.  
  99. end
  100. end
  101.  
  102. %DADOS AQUI PARA ESTUDO
  103. P = load('t.mat');
  104.  
  105. test = P.test;
  106. result = classifier(test);
  107. T = [eye(10) eye(10) eye(10) eye(10) eye(10) eye(10) eye(10) eye(10) eye(10) eye(10)];
  108. performance = perform(classifier,T,result)
  109. new = [];
  110. [Maxs,I] = max(result);
  111. counter = 0;
  112. for i = 1:100
  113. if(mod(I(i),10)==i)
  114. counter = counter + 1;
  115. end
  116. end
  117. accuracy = counter/100
  118. data = {filter, act_func, learningstyle, learningfunc, performance, accuracy};
  119. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement