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
Backpropagarea inteligenta artificiala


Backpropagarea inteligenta artificiala




Backpropagarea

Metoda gradientului conjugat

Cautarea se face de-a lungul unor directii conjugate, ceea ce produce o convergenta mai rapida decat aplicand metoda coborarii pe gradient. Pentru a actualiza ponderile, la fiecare iteratie se cauta in directia gradientului conjugat pentru a determina valoarea care minimizeaza functia de-a lungul acelei linii.

Metoda Fletcher-Reeves (traincgf)

La prima iteratie algoritmul cauta in directia gradientului




Se face o cautare liniara de-a lungul directiei curente de cautare pentru a determina pasul de actualizare

Urmatoarea directie de cautare se alege astfel incat sa fie conjugata cu directiile anterioare de cautare

unde

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

t = [-1 -1 1 1];

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

net.trainParam.show = 5;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

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

Functia implicita de cautare liniara este srchcha (se poate schimba modificand valoarea parametrului srchFcn).

Rulati programul demonstrativ nnd12cg.

Metoda Polak-Ribiere (traincgp)

Diferenta fata de metoda anterioara consta in modul de calculare a lui bk

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

t = [-1 -1 1 1];

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

net.trainParam.show = 5;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

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

Metoda Powel-Beale (traincgb)

In cazul tuturor metodelor gradientului conjugat, directia de cautare va fi resetata periodic la valoarea negativului gradientului. Momentul standard de resetare are loc cand numarul iteratiilor este egal cu numarul parametrilor retelei. Pentru metoda Powel-Beale resetarea se face cand proprietatea de ortogonalitate intre    gradientul curent si cel anterior nu mai este indeplinita. Acest lucru este testat cu inegalitatea

Daca aceasta conditie este satisfacuta, directia de cautare este resetata la negativul gradientului.

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

t = [-1 -1 1 1];

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

net.trainParam.show = 5;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

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

Rutine de cautare liniara

Golden Section Search (srchgol)

Primul pas este localizarea intervalului in care se afla minimul functiei de performanta prin evaluarea functiei intr-o secventa de puncte, aflate la inceput la distanta delta si dubland distanta la fiecare pas de-a lungul directiei de cautare. Daca performanta creste intre 2 puncte successive atunci minimul a fost localizat. Urmatorul pas este reducerea intervalului in care se afla minimul. Se aleg 2 puncte in interval si in functie de valorile functie de performanta in aceste puncte, intervalul se micsoreaza. Procedura continua pana cand lungimea intervalului devina mai mica decat delta/scale_tol.

Sa se ruleze programul demonstrativ nnd12sd1.

Brent's Search (srchbre)

Este o combinatie intre cautarea golden section si interpolarea patratica. Se incepe prin stabilirea intervalului ca la metoda anterioara, insa se evalueaza functia de performanta in mai multe puncte. Se determina functia patratica ce trece prin aceste puncte si se calculeaza minimul ei. Daca minimul cade in interval, se foloseste la urmatorul pas al cautarii si se face o noua aproximare patratica. Daca minimul cade in afara intervalului atunci se aplica un pas al metodei golden search.

Hybrid Bisection-Cubic Search (srchhyb)

Este o combinatie intre metoda bisectiei si interpolarea cubica. Se realizeaza o interpolare cubica a unei functii folosind valorile functiei de performanta si derivatele ei in 2 punte. Daca minimul functiei obtinute cade in interval atunci se foloseste pentru a micsora intervalul. Altfel se aplica metoda bisectiei.




Charalambous'Search (srchcha)

Este o metoda hibrida. Foloseste interpolarea cubica impreuna cu o metoda de sectionare.

Algoritmi quasi-Newton

Algoritmul BFGS (trainbfg)

Metoda lui Newton este o alternativa la metodele gradientului conjugat pentru optimizare rapida. Actualizarea parametrilor se face cu regula

unde Ak este Hessiana functei de performanta la momentul k. Calcularea Hessianei in cazul unei retele neurale feedforward necesita calcule complexe. Metodele quasi-Newton lucreaza cu aproximari ale Hessianei.

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

t = [-1 -1 1 1];

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

net.trainParam.show = 5;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

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

Acest algoritm necesita mai multe calcule si mai multa memorie decat metodele gradientului conjugat. La fiecare pas se memoreaza aproximarea Hessianei care are dimensiunea numarului de parametri din retea.

Algoritmul One Step Secant (trainoss)

Poate fi considerat un compromis intre metoda gradientului conjugat si metoda quasi-Newton. Nu se memoreaza matricea Hessiana completa; la fiecare pas se presupune ca aproximarea anterioara este matricea identitate.

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

t = [-1 -1 1 1];

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

net.trainParam.show = 5;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

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

Algoritmul Levenberg-Marquardt (trainlm)

Cand functia de performanta este suma de termeni patratici, Hessiana poate fi aproximata astfel

si gradientul poate fi calculat

unde matricea J este Jacobianul ce contine derivatele functiei de eroare in raport cu ponderile si bias-urile iar e este vectorul erorilor. Calcularea matricei J este mai putin complexa decat calcularea Hessianei.

Algoritmul Levenberg-Marquardt foloseste urmatoarea regula de actualizare a parametrilor

Daca m este 0 se obtine metoda Newton. Daca m este foarte mare se obtine metoda coborarii pe gradient cu rata de invatare foarte mica. Metoda Newton este rapida in jurul minimului erorii. La o iteratie m este micsorat daca eroarea scade si este marit daca eroarea creste. Astfel, eroarea va fi intotdeauna micsorata la fiecare pas al algoritmului.

Parametrii invatarii: mu, mu_dec, mu_inc, mu_max.

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

t = [-1 -1 1 1];

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

net.trainParam.show = 5;

net.trainParam.epochs = 300;

net.trainParam.goal = 1e-5;

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

Rulati programul demonstrativ nnd12m.




loading...




Politica de confidentialitate


Copyright © 2020 - Toate drepturile rezervate