Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- close all;
- load baza_cyfry100
- acc_arr=[];
- mse_wal=[];
- mse_ucz=[];
- rozm_BD = size(baza_we_100, 2);
- ind = randperm(rozm_BD);
- liczba = 0.25*rozm_BD;
- baza_ucz_we = baza_we_100(:,ind(1:2*liczba));
- baza_wal_we = baza_we_100(:,ind(2*liczba+1:3*liczba));
- baza_test_we = baza_we_100(:,ind(3*liczba+1:4*liczba));
- baza_ucz_wy = baza_wy_100(:,ind(1:2*liczba));
- baza_wal_wy = baza_wy_100(:,ind(2*liczba+1:3*liczba));
- baza_test_wy = baza_wy_100(:,ind(3*liczba+1:4*liczba));
- n = size(baza_ucz_we,1);
- k = size(baza_ucz_wy,1);
- eta = 0.15;
- beta = 1.25;
- Epoki = 10000;
- a = -0.1;
- b = 0.1;
- W = (b-a)*rand(n,k)+a;
- w0 = 0.5*ones(1,k);
- W = [w0; W];
- for ep = 1 : Epoki
- L = randi([1 size(baza_ucz_we,2)],1);
- x = baza_ucz_we(:,L);
- x = [-1; x];
- u = W'*x;
- y = 1./(1+exp(-beta*u));
- ty = baza_ucz_wy(:,L);
- d = ty - y;
- if mod(ep,100) == 0
- mse_ucz= [mse_ucz, mse(d)];
- end
- if mod(ep,100) == 0
- iterator=0;
- for i = 1 : size(baza_wal_we,2)
- x = baza_wal_we(:,i);
- x = [-1; x];
- u = W'*x;
- y = 1./(1+exp(-beta*u));
- if i == size(baza_wal_we,2)
- ty = baza_wal_wy(:,i);
- d = ty - y;
- mse_wal= [mse_wal, mse(d)];
- end
- [M1,I1]=max(baza_wal_wy(:,i));
- [M2,I2]=max(y);
- if I1 == I2
- iterator=iterator+1;
- end
- end
- accuraccy=iterator/size(baza_wal_we,2);
- acc_arr=[acc_arr,accuraccy];
- end
- dW = eta*x*d';
- W = W+dW;
- end
- figure(1);
- plot(acc_arr);
- figure(2);
- plot(mse_wal);
- figure(3);
- plot(mse_ucz);
- %{
- for i = 1 : size(baza_test_we,2)
- x = baza_test_we(:,i);
- x = [-1; x];
- u = W'*x;
- y = 1./(1+exp(-beta*u));
- [baza_test_wy(:,i) y]
- end
- %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement