clear all % definiujemy ciag uczacy x=[1 1 0 0 0 1 1 0]; z=[0 0 1 1]; % inicjujemy siec net=init_net(2,2,1); ile_lekcji=2000; zanik=0.95; historia_wag=zeros(ile_lekcji,length(net.out.w)); figure(1) subplot(121) % rysujemy stan poczatkowy podzialu ix0=find(z<=0); ix1=find(z>0.5); plot(x(ix0,1),x(ix0,2),'bo',x(ix1,1),x(ix1,2),'ro' ) xlim([-0.2 1.2]) ylim([-0.2 1.2]) %pause for lekcja = 1:ile_lekcji sz=z;%+1/lekcja*z.*randn(size(z)); [net,Q]=ucz_net(net,x,sz,zanik); % uczymy siec ciagu {x,sz} d(lekcja)=Q; % zapamietujemy blad historia_wag(lekcja,:)=net.out.w; if mod(lekcja,1)==0 for i=1:length(x) net=sim_net(net,x(i,:)); y(i)=net.out(1).out; end subplot(221) % rysunek aktualnego podzialu % prog jest ustawiony na 0.5 ix0=find(z<=0.5); ix1=find(z>0.5); iy1=find(y>0.5); iy0=find(y<=0.5); plot(x(ix0,1),x(ix0,2),'bo',x(ix1,1),x(ix1,2),'ro',... % przynaleznosc do klas wg z rysowana kolkiem x(iy0,1),x(iy0,2),'b+',x(iy1,1),x(iy1,2),'r+' ) % przynaleznisc do klas wg. y rysowana + disp(sprintf('z: %.2f %.2f %.2f %.2f', z(1), z(2), z(3), z(4) )) disp(sprintf('y: %.2f %.2f %.2f %.2f', y(1), y(2), y(3), y(4) )) xlim([-0.2 1.2]) ylim([-0.2 1.2]) subplot(223) sk=1:lekcja; semilogy(sk,d,'r') subplot(122) sk=1:ile_lekcji; plot(sk,historia_wag) drawnow %pause end end