Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Antrenare (sau invatare) inseamna modificarea ponderilor si a bias-urilor retelei neurale. Prezentam doua tipuri de invatare: incrementala si batch (la gramada).
Ponderile si bias-urile sunt actualizate de fiecare data cand o intrare este aplicata retelei. Poate fi aplicata atat retelelor statice cat si dinamice.
Sa consideram urmatoarea retea statica:
Dorim sa antrenam reteaua astfel incat sa aproximeze functia liniara t=2*p1+p2. Atunci pentru intrarile
iesirile dorite (target-uri) vor fi
Pentru inceput luam rata de invatare 0.
net = newlin([-1 1;-1 1],1,0,0);
net.IW ];
net.b
Vom prezenta intrarile si target-urile ca date secventiale:
P = ;
T = ;
Pentru antrenarea retelei, scriem
[net,a,e,pf] = adapt(net,P,T);
Vedeti ce valori au parametrii a (iesirea retelei) si e (eroarea).
Vom stabili rata de invatare la 0.1 si reapelam functia de antrenare adapt
net.inputWeights.learnParam.lr=0.1;
net.biases.learnParam.lr=0.1;
[net,a,e,pf] = adapt(net,P,T);
Cum se modifica parametrii a si e fata de apelarea anterioara?
Putem antrena incremental si o retea dinamica.
net = newlin([-1 1],1,[0 1],0.1);
net.IW ];
net.biasConnect
Pi = ;
P = ;
T = ;
[net,a,e,pf] = adapt(net,P,T,Pi);
Ce valori au ponderile si bias-ul acum?
Ponderile si bias-urile sunt actualizate o singura data dupa ce toate intrarile si target-urile au fost prezentate retelei.
In cazul retelei statice prezentate, scriem
net = newlin([-1 1;-1 1],1,0,0.1);
net.IW ];
net.b
P = [1 2 2 3; 2 1 3 1];
T = [4 5 7 7];
[net,a,e,pf] = adapt(net,P,T);
Ce valori au ponderile si bias-ul dupa antrenare?
Pentru antrenarea batch a retelelor statice se poate folosi si functia train:
net = newlin([-1 1;-1 1],1,0,0.1);
net.IW ];
net.b
P = [1 2 2 3; 2 1 3 1];
T = [4 5 7 7];
net.inputWeights.learnParam.lr = 0.1;
net.biases.learnParam.lr = 0.1;
net.trainParam.epochs
net = train(net,P,T);
Comparati ponderile cu cele obtinute prin antrenarea cu adapt.
In cazul retelelor dinamice, antrenarea batch se realizeaza cu functia train:
net = newlin([-1 1],1,[0 1],0.02);
net.IW ];
net.biasConnect
net.trainParam.epochs
Pi = ;
P = ;
T = ;
net=train(net,P,T,Pi);
Ce valori au ponderile dupa antrenare?
Copyright © 2024 - Toate drepturile rezervate