Opis procedur do projektowania sieci neuronowych

w środowisku MATLAB-4.0
   

deltalin / deltalog / deltatan / getdelta / getdelta / hardlim / hardlims /

learnbp / learnbpm / logsig / nwlog / nwtan / purelin / rands / satlin /

tansig / trainbp / trainbpa / trainbpm / trainbpx /

 

A) Funkcje aktywacji:

hardlim - funkcja skoku jednostkowego

hardlims - symetryczna funkcja skoku jednostkowego

logsig- log-sigmoid funkcja

tansig - tan-sigmoid funkcja

purelin - funkcja liniowa

satlin - funkcja liniowa ograniczona

Sposób uzycia jest taki sam dla wszystkich tych funkcji i ma dwie formy bez biasu i z biasem.

- bez biasu:

Y=nazwa(W*X) (np. Y=hardlim(W*X), Y=tansig(W*X) itd.)

- z biasem:

Y=nazwa(W*X,B) ) (np. Y=hardlim(W*X,B), Y=tansig(W*X,B) itd.)

gdzie:

X - wektor wartosci wejsciowych

W - macierz wag

B - wektor biasu

Y - macierz wartosci wyjsciowych

B) Funkcje obliczania "delty"

  • deltalinliniowa funkcja delta

  • deltaloglog-sigmoid funkcja delta

  • deltatantan-sigmoid funkcja delta

sposób wolania tych funkcji:

- dla sieci jednowarstwowej

D = nazwa(Y,E)

gdzie:

E = T - Y

T - macierz uczaca

Y - macierz odpowiedzi

E - macierz bledów

D - macierz wartosci "delty"

- dla sieci wielowarstwowych

dla ostatniej warstwy l macierz wartosci Dl liczymy jak dla sieci jednowarstwowej natomiast dla warstwy poprzedzajacej l-1 wartosci Dl-1 liczymy nastepujaco:

Dl-1= nazwa(Yl-1,Dl,Wl)

gdzie:

Wl- - macierz wag dla warstwy l

i tak postepujemy z kolejnymi warstwami (cofajac sie).

przyklad dla sieci dwu warstwowej (l = 2)

Y1 = logsig(W1*X,B1)

Y2 = logsig(W2*Y1,B2)

E = T - Y2

D2 = deltalog(Y2,E)

D1 = deltalog(Y1,D2,W2)

Dla pozostalych funkcji aktywacji generujemy funkcje �delta"

  • getdeltatworzenie funkcja delta dla danej funkcji aktywacji

przykladowo:

DF = getdelta(�tansig�)

w tym przypadku funkcja DF jest równowazna funkcji deltatan

C) Funkcje uczace (obliczajace poprawki do wag i biasu):

  • learnbp uczenie ze wsteczna propagacja bledu

  • learnbpm uczenie ze wsteczna propagacja bledu z zastosowaniem metody momentum

jest jeszcze 7 innych funkcji uczacych.

sposób uzycia tych funkcji:

[dW,dB] = learnbp(X,D,lr)

[dW,dB] = learnbpm(X,D,lr,mc, dW,dB)

gdzie:

dW - macierz poprawek wag

dB - macierz poprawek biasów

X - macierz wartosci wejsciowych

D - macierz wartosci "delty"

lr - wspólczynnik uczacy

mc - wspólczynnik metody momentum

przyklad dla sieci dwu warstwowej, pierwsza warstwa typu logsig druga tansig.

for epoch=1:40

Y1 = logsig(W1*X,B1)

Y2 = tansig(W2*Y1,B2)

E = T - Y2

D2 = deltatan(Y2,E)

D1 = deltalog(Y1,D2,W2)

[dW1,dB1] = learnbp(X,D1,lr)

W1=W1+dW1

B1=B1+dB1

[dW2,dB2] = learnbp(Y1,D2,lr)

W2=W2+dW2

B2=B2+dB2

end

D) Funkcje do trenowania sieci:

  • trainbp trenowanie sieci ze wsteczna propagacja bledu

  • trainbpm trenowanie sieci ze wsteczna propagacja bledu z metoda momentum

  • trainbpa trenowanie sieci ze wsteczna propagacja bledu i uczeniem adaptacyjnym

  • trainbpx trenowanie sieci ze wsteczna propagacja bledu z metoda momentum i uczeniem adaptacyjnym

jest jeszcze 4 innych funkcji uczacych

sposób uzycia: trainbp

- dla sieci jednowarstwowej:

  • [W1,B1,TE,TR]=trainbp(W1,B1,'F1',X,T,TP)

- dla sieci dwuwarstwowej:

  • [W1,B1,W2,B2,TE,TR]=trainbp(W1,B1,'F1', W2,B2,'F2',X,T,TP)

- dla sieci trzywarstwowej:

  • [W1,B1,W2,B2,W3,B3,TE,TR]=trainbp(W1,B1,'F1', W2,B2,'F2',W3,B3,'F3',X,T,TP)

gdzie:

F - nazwa funkcji aktywacji dla danej warstwy

TP - wektor o parametrach (df, maxepoch, err, lr)

df - czestotliwosc wyswietlania na wykresie

maxepoch - maksymalna liczba kroków uczenia

err - akceptowany poziom suma kwadratów bledu

lr - wspólczynnik uczacy. typowo 0.01-0.001 lub mniej

TE - aktualny numer kroku uczenia

TR - wektor zapisujacy sume kwadratu bledu

sposób uzycia: trainbpa

podobnie jak dala trainbp, róznica jest w wektorze TP

TP - wektor o parametrach (df, maxepoch, err, lr, lrinc, lrdec, errratio)

df - czestotliwosc wyswietlania na wykresie

maxepoch - maksymalna liczba kroków uczenia

err - akceptowany poziom suma kwadratów bledu

lr - wspólczynnik uczacy. typowo 0.01-0.001 lub mniej

lrinc - mnoznik do wzrostu lr. Typowo 1.05.

lrdec - mnoznik do zmniejszania lr. Typowo 0.7.

errrratio - maksymalny stosunek do starego bledu bez �rejecting� nowych wartosci wag i biasu. Typowo 1.04.

sposób uzycia: trainbpm

podobnie jak dala trainbp, róznica jest w wektorze TP

TP - wektor o parametrach (df, maxepoch, err, lr, mom, errratio)

df - czestotliwosc wyswietlania na wykresie

maxepoch - maksymalna liczba kroków uczenia

err - akceptowany poziom suma kwadratów bledu

lr - wspólczynnik uczacy. typowo 0.01-0.001 lub mniej

mom - wspólczynnik momentum. Typowo 0.95.

errrratio - maksymalny stosunek do starego bledu bez �rejecting� nowych wartosci wag i biasu. Typowo 1.04.

sposób uzycia: trainbpx

podobnie jak dala trainbp, róznica jest w wektorze TP

TP - wektor o parametrach (df, maxepoch, err, lr, lrinc, lrdec, mom, errratio)

df - czestotliwosc wyswietlania na wykresie

maxepoch - maksymalna liczba kroków uczenia

err - akceptowany poziom suma kwadratów bledu

lr - wspólczynnik uczacy. typowo 0.01-0.001 lub mniej

lrinc - mnoznik do wzrostu lr. Typowo 1.05.

lrdec - mnoznik do zmniejszania lr. Typowo 0.7.

mom - wspólczynnik momentum. Typowo 0.95.

errrratio - maksymalny stosunek do starego bledu bez �rejecting� nowych wartosci wag i biasu. Typowo 1.04.

E) inne wybrane funkcje:

rands - generowanie macierzy wag i wektora biasu o wartosciach statystycznych o jednorodnym rozkladzie z zakresu [-1,1]

sposób uzycia:

[W,B]=rands(M,N)

otrzymujemy macierz W o wymiarach MxN i wektor B o wymiarze M

nwlog - generowanie macierzy wag i wektora biasu przy uzyciu metody Nguyen-Widrow do inicjalizacji ich wartosci dla warstwy log-sigmoid przy uzyciu wstecznej propagacji bledu.

sposób uzycia:

[W,B]=nwlog(M,N)

otrzymujemy macierz W o wymiarach MxN i wektor B o wymiarze M

nwtan - generowanie macierzy wag i wektora biasu przy uzyciu metody Nguyen-Widrow do inicjalizacji ich wartosci dla warstwy tan-sigmoid przy uzyciu wstecznej propagacji bledu.

sposób uzycia:

[W,B]=nwtan(M,N) wejscie.htm

otrzymujemy macierz W o wymiarach MxN i wektor B o wymiarze M 

powrót



/