Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
Laborator Inteligenta Artificiala


Laborator Inteligenta Artificiala




Laborator Inteligenta Artificiala

Backpropagarea este o metoda de antrenare a retelelor neurale, obtinuta prin generalizarea algoritmului Widrow-Hoff pentru retele cu mai multe layere si cu functiii de transfer derivabile.

Functii de transfer folosite: logsig, tansig, purelin.

Pentru a afla care este numele functie care este derivata unei functii, scriem

tansig('deriv')

Aceasta retea neurala poate fi antrenata pentru a aproxima orice functie care are un numar finit de puncte de discontinuitate.

Crearea unei retele feedforward




net=newff([-1 2; 0 5],[3,1],,'traingd');

In timpul antrenarii, ponderile si bias-urile sunt modificate astfel incat sa minimizeze functia de performanta net.performFcn (implicit este mse). Exista mai multi algoritmi de antrenare a retelelor feedforward, toti folosind insa gradientul functiei de performanta pentru a calcula ajustarile care trebuie facute pentru a minimiza functia de performanta.

Algoritmi de antrenare

Batch gradient descent

net.trainFcn='traingd';

Alti parametrii asociati invatarii: epochs, show, goal, time, min_grad, lr.

p = [-1 -1 2 2;0 5 0 5];

t = [-1 -1 1 1];

net=newff(minmax(p),[3,1],,'traingd');

net.trainParam.lr = 0.05;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

[net,tr]=train(net,p,t);

Rulati programul demonstrativ nnd12sd1.

Batch Gradient Descent with Momentum - nu se tine cont doar de gradientul local ci si tendinta recenta a suprafetei de eroare. In acest mod se poate evita blocarea intr-un minim local al functie de eroare. Ponderile se modifica cu suma ponderata dintre ultima actualizare si gradient. Parametrul care pondereaza suma ia valori intre 0 si 1. Daca mc este 0 actualizarea se bazeaza numai pe gradient. Daca mc este 1 actualizarea se face cu valoarea de la pasul anterior si gradientul este ignorat.

Functia care implementeaza acest algoritm se numeste traingdm.

p = [-1 -1 2 2;0 5 0 5];

t = [-1 -1 1 1];

net=newff(minmax(p),[3,1],,'traingdm');

net.trainParam.show = 50;

net.trainParam.lr = 0.05;

net.trainParam.mc = 0.9;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

[net,tr]=train(net,p,t);

Rulati programul demonstrativ nnd12mo.

Variable Learning Rate



Daca eroarea la un moment este mai mare cu max_perf_inc (de obicei 1.04) decat eroarea la momentul anterior, actualizarea nu are loc iar rata de invatare scade (se inmulteste cu lr_dec = 0.7). Altfel, ponderile se actualizeaza iar rata de invatare creste (se inmulteste cu lr_inc = 1.05).

Functia care implementeaza acest algoritm se numeste traingda (traingdx cu momentum).

p = [-1 -1 2 2;0 5 0 5];

t = [-1 -1 1 1];

net=newff(minmax(p),[3,1],,'traingda');

net.trainParam.show = 50;

net.trainParam.lr = 0.05;

net.trainParam.lr_inc = 1.05;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

[net,tr]=train(net,p,t);

Rulati programul demonstrativ nnd12vl.

Resilient Backpropagation

Daca folosim functii de transfer sigmoide, atunci pentru valori mari ale input-urilor gradientul are valori foarte mici. Se foloseste doar semnul gradientului pentru a da directia de actualizare a ponderilor. Daca gradientul are acelasi semn pentru doua iteratii succesive, valoarea de actualizare se mareste cu factorul delt_inc. Daca gradientul isi schimba semnul atunci valoarea de actualizare se micsoreaza cu factorul delt_dec.

Functia care implementeaza acest algoritm se numeste trainrp.

p = [-1 -1 2 2;0 5 0 5];

t = [-1 -1 1 1];

net=newff(minmax(p),[3,1],,'trainrp');

net.trainParam.show = 10;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

[net,tr]=train(net,p,t);

Aplicatii

  1. Sa se aproximeze functia sin. (1-5-1 tansig, purelin).
  1. Sa se stabileasca paritatea unui sir de 3 biti (3-10-10-1 tansig).







Politica de confidentialitate





Copyright © 2021 - Toate drepturile rezervate