Advertisement
gr4viton

as

Oct 19th, 2015
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.37 KB | None | 0 0
  1. % Řešení příkladu 3 z předmětu MUIN
  2. % Jednovrstvá neuronová síť s přenosovou funkcí hyperbolického tangentu
  3. % úpravy:
  4. % 19-10-2015 davidek
  5.  
  6. clear all
  7. close all
  8. clc
  9.  
  10.  
  11. num_bias = 1;
  12. num_in = 5;
  13. num_neuron = num_in ;
  14.  
  15. in_bias = 1
  16.  
  17. r_obr = 1;
  18. s_obr = num_in;
  19. in = csvread('data.csv'); % vstupní data
  20.  
  21.  
  22. w = (rand(r_obr * s_obr + num_bias, num_neuron)*2-1)/100   % pocatecni nastaveni vah, vcetne prahu
  23. vystup = zeros(1, num_neuron);
  24. d = eye(num_neuron, num_in)*2-1;                           % vytvoreni žádaných hodnot na výstupu
  25.  
  26. mu = 0.01;                                   % koeficient uceni
  27. max_iter = 2000;                            % maximalni pocet iteraci
  28. iter = 1;                                   % iterace    
  29. Ec = 100;                                   % chyba site
  30. Ec_max = 0.5;                               % maximalni chyba site pro ukonceni
  31.  
  32. while (iter < max_iter)&&(Ec > Ec_max)      % iterace uceni
  33.     Ec = 0;
  34.     for vzor = 1:num_in
  35. %         %%%%%%FOREM
  36. %         for neuron = 1:10
  37. %             vystup(neuron) = tanh([in(vzor, :) 1] * w(:, neuron));
  38. %             chyba = (d(vzor, neuron) - vystup(neuron));
  39. %             w(:, neuron) = w(:, neuron) + (my * (1 - vystup(neuron)^2) * chyba  * [in(vzor, :) 1])';
  40. %             Ec = Ec + 0.5 *chyba * chyba';
  41. %         end
  42. %         %%%%%%MATICOVE
  43.             vystup = tanh([in(vzor, :) in_bias] * w);
  44.             chyba = (d(vzor, :) - vystup);            
  45.             w = w + [in(vzor, :) 1]' * mu * (chyba .* (1 - vystup.^2));
  46.             Ec = Ec + 0.5 * chyba * chyba';
  47.     end
  48.     Ec_it(iter) =  Ec;
  49.     iter = iter + 1;
  50. end
  51.  
  52. figure(1)
  53. plot(Ec_it)  
  54. title('Chyba site');
  55. xlabel('Iterace');
  56. ylabel('Ec');                %vykresleni prubehu chyby
  57.  
  58.  
  59. sum_max = 0.5
  60. pom_test = csvread('data.csv');
  61. pom_test = pom_test .* ((1-sum_max) + sum_max * rand(size(pom_test)) )
  62.     figure (2)
  63.     pom = 0;
  64. for i = 1:5
  65.     if i == 6
  66.         figure(4)
  67.         pom = 5;
  68.     end
  69.    
  70. %     vstup
  71.     subplot(3,5,i-pom)
  72.     colormap(gray);         %cernobile vykreslovani
  73.     bar(in(i, :));
  74.     ylim([-1, 1])
  75.    
  76. %     zašumělý vstup
  77.     subplot(3,5,i+5-pom)
  78.     bar(pom_test(i,:));
  79.     ylim([-1, 1])
  80.    
  81. %     výstup z naučené neruronové sítě
  82.     subplot(3,5,i+10-pom)
  83.     vysledek = tanh([pom_test(i,:) 1] * w);
  84.     bar(vysledek);
  85.     ylim([-1, 1])
  86. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement