/
Wooohich
/
Matlab_Neuron
Обзор
Документация
Войти
/
Wooohich
/
Matlab_Neuron
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Neuron
106 строк
2 KB
Wooohich
create Neuron
20 окт 2024, 01:01
20 окт 2024, 01:01
01d6a01
Код
Авторство
О чём код?
%clear; S1 = 4; S2 = 5; SOut = 1; j = 1; for j = 1 : S1* S2 WL1(j) = 0.01; end j = 1; for j = 1 : S2 WL2(j) = 0.01; end smm = [-4.23817060201052e-12 -1.21243122364119e-10 -3.04496493991086e-12 -8.49924649897229e-12 -1.13172795348979e-09]; sm22 = [-9.11294822426412]; for j = 1 : S2 sm(j) = 0.01; end sm2 = 0.1; answ = 1; nansw = 0; ctr = 0; nr = []; lay1 = []; lay2 = 0; k = 10; g = 1; a = 1; res = 1; %sko<0.002 it's normal sko = 0; SKO = []; RMSS = []; ind = (length(Train)/2)/length(Train); err = 0; flag = 0; point = 0; for epoch = 1:7000 sko = 0; SKO = []; err = 0; for k =10:length(Train) for b = 1 : S1 input(b) = Train(k,b); end answ = Train(k,5); % Neuron for g = 1 : S2 nr = WL1((1+((g-1)*S1)):g*S1) .* input; lay1(g) = 1/(1+exp(-(sum(nr) + sm(g)))); end nr = WL2.*lay1; lay2 = 1/(1+exp(-(sum(nr) + sm2))); OSw = (answ - lay2)*(lay2*(1-lay2)); if lay2 < 0.5 lay2 = 0; end if lay2 > 0.5 lay2 = 1; end if lay2 ~= answ err = err + 1; end SKO(k-9) = OSw; sm2 = sm2 +(a*OSw); for g = 1:length(WL2) CorrWL2(g) = a * OSw * lay1(g); end for g = 1 : length(lay1) OSWL1(g) = (OSw*WL2(g))*(lay1(g)*(1-lay1(g))); end for g = 1 : length(input) for p = 1 : length(lay1) CorrWL1(res) = a * OSWL1(p) * input(g); res = res + 1; end sm(g) = a * OSWL1(g); end res = 1; WL1 = WL1 + CorrWL1; WL2 = WL2 + CorrWL2; end err = err/length(Train); sko = rms(SKO); RMSS(epoch) = sko; if epoch > 3 if err < ind WL11 = WL1; WL22 = WL2; smm = sm; sm22 = sm2; flag = 1; point = 0; err = err end if flag == 1 point = point + 1; WL1 = WL11; WL2 = WL22; sm = smm; sm2 = sm22; end if point == 300 break; end end end