Praktikumide aruanne Automaatjuhtimissüsteemide jätkukursus
% funktsiooniga, täpsus
% kasvab. 5 neuronit on juba 10'-10, mis on piisavalt
% hea. Lineaarse aktiveerimis
% funktsiooniga on 1 neuron sama täpne.
net.trainFcn = 'trainlm' %treenimisfunktsioon Levenberg
% Marquardt teist järku tuletiste maatriksil põhinev
net.trainParam.epochs=5000 %iteratsioonide arv
Treenime selle loodud närvivõrgu valitud parameetritega ja algoritmiga.
net=train(net,P,T)
%sim(net,[-1;2]) - närvivõrk oskab mitteilmutatult arvutada 0.3*x1 + 0.9*x2
%ans =
% 1.5000
W1=net.IW{1,1} %sisendite kaalukoefitsendid
W2=net.LW{2,1} %kihi kaalukoefintsendid
B1=net.b{1} %iga neuroni nihe (bias), aktiveerimisfunktisooni nihe
B2=net.b{2}
W2*B1+B2 % peaaegu null - järelikult W_2*0_1-0_2
Proovisime ka keerulisemat funktsiooni
y=(x_1*x_2)/((x_1+x_2)^2+10)
Sellist asja ei saaks ainult lineaarsete kihtidega lahendada, vähemalt peidetud kiht
peab olema mittelineaarse aktiveerimisfunktsiooniga.