Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- N=7;
- ro=0.7;
- pocet_neuronov = 4;
- Prk = [1 1 0 0 0 0 1; 0 0 1 1 1 1 0; 1 0 1 1 1 1 0; 1 1 1 1 0 0 0; 0 0 1 1 0 1 0];
- t_vahy = ones(1,N);
- b_vahy = t_vahy/(N+1);
- Neuron=NaN*zeros(2,N,4)
- % prvy priklad
- y=b_vahy*Prk(1,:)';
- s=t_vahy.*Prk(1,:);
- t_vahy_nove=s;
- b_vahy_nove=s/(0.5+sum(s));
- Neuron(1,:,1)=b_vahy_nove(:);
- Neuron(2,:,1)=t_vahy_nove(:);
- % spracovanie dalsich prikladov
- for pr=2:size(Prk,1)
- priradeny = 0;
- A = [1:pocet_neuronov];
- while (size(A)>0) & (~priradeny) % ~ = non
- vitaz_y=-10;
- for i=1:size(A)
- b_vahy = squeeze(Neuron(1,:,i));
- y(1)=b_vahy*Prk(pr,:)'; %sum(Prk(pr,:).*b_vahy
- % doprogramovat - najst index neuronu s najvacsiou hodnotou
- end;
- vitaz_y
- vitaz_i
- % zmensit mnozinu A o vitazny neuron
- b_vahy = squeeze(Neuron(1,:,vitaz_i));
- t_vahy = squeeze(Neuron(2,:,vitaz_i));
- s = t_vahy.*Prk(pr,:);
- podiel = (sum(s)/(sum(Prk(pr,:)));
- if podiel > ro
- % idem aktualizovat vahy
- priradeny=1;
- end;
- % ak som vycerpal vsetky neurony a ziaden nerezonoval
- % aktualizovat vahy pre uplne novy neuron
- if (podiel<=ro) & size(A)==0
- pocet_neuronov = pocet_neuronov+1;
- s = ones(1,N)*Prk(pr,:);
- t_vahy_nove=s;
- b_vahy_nove=s/(0.5+sum(s));
- Neuron(1,:,pocet_neuronov)=b_vahy_nove;
- Neuron(2,:,pocet_neuronov)=t_vahy_nove;
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement