Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.90 KB | None | 0 0
  1. clear all;
  2. close all;
  3.  
  4. load baza_cyfry100
  5. acc_arr=[];
  6. mse_wal=[];
  7. mse_ucz=[];
  8. rozm_BD = size(baza_we_100, 2);
  9. ind = randperm(rozm_BD);
  10. liczba = 0.25*rozm_BD;
  11.  
  12. baza_ucz_we = baza_we_100(:,ind(1:2*liczba));
  13. baza_wal_we = baza_we_100(:,ind(2*liczba+1:3*liczba));
  14. baza_test_we = baza_we_100(:,ind(3*liczba+1:4*liczba));
  15.  
  16. baza_ucz_wy = baza_wy_100(:,ind(1:2*liczba));
  17. baza_wal_wy = baza_wy_100(:,ind(2*liczba+1:3*liczba));
  18. baza_test_wy = baza_wy_100(:,ind(3*liczba+1:4*liczba));
  19.  
  20.  
  21. n = size(baza_ucz_we,1);
  22. k = size(baza_ucz_wy,1);
  23. eta = 0.15;
  24. beta = 1.25;
  25. Epoki = 10000;
  26. a = -0.1;
  27. b = 0.1;
  28. W = (b-a)*rand(n,k)+a;
  29. w0 = 0.5*ones(1,k);
  30. W = [w0; W];
  31.  
  32. for ep = 1 : Epoki
  33.    L = randi([1 size(baza_ucz_we,2)],1);
  34.    x = baza_ucz_we(:,L);
  35.    x = [-1; x];
  36.    u = W'*x;
  37.    y = 1./(1+exp(-beta*u));
  38.    ty = baza_ucz_wy(:,L);
  39.    d = ty - y;
  40.    if mod(ep,100) == 0
  41.    
  42.        mse_ucz= [mse_ucz, mse(d)];
  43.        
  44.    end
  45.    if mod(ep,100) == 0
  46.        
  47.        iterator=0;
  48.        for i = 1 : size(baza_wal_we,2)
  49.            
  50.            x = baza_wal_we(:,i);
  51.            x = [-1; x];
  52.            u = W'*x;
  53.            y = 1./(1+exp(-beta*u));
  54.            
  55.            if i == size(baza_wal_we,2)
  56.                 ty = baza_wal_wy(:,i);
  57.                 d = ty - y;
  58.                 mse_wal= [mse_wal, mse(d)];
  59.            end
  60.            [M1,I1]=max(baza_wal_wy(:,i));
  61.            [M2,I2]=max(y);
  62.            if I1 == I2
  63.                
  64.                 iterator=iterator+1;
  65.            
  66.            
  67.             end
  68.         end
  69.         accuraccy=iterator/size(baza_wal_we,2);
  70.         acc_arr=[acc_arr,accuraccy];
  71.    end
  72.    
  73.    dW = eta*x*d';
  74.    W = W+dW;
  75. end
  76. figure(1);
  77. plot(acc_arr);
  78. figure(2);
  79. plot(mse_wal);
  80. figure(3);
  81. plot(mse_ucz);
  82. %{
  83. for i = 1 : size(baza_test_we,2)
  84.    x = baza_test_we(:,i);
  85.    x = [-1; x];
  86.    u = W'*x;
  87.    y = 1./(1+exp(-beta*u));
  88.    [baza_test_wy(:,i) y]
  89. end
  90. %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement