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 /
A) Funkcje aktywacji: hardlim - funkcja skoku jednostkowego hardlims - symetryczna funkcja skoku jednostkowego 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" 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" przykladowo: DF = getdelta(�tansig�) w tym przypadku funkcja DF jest równowazna funkcji deltatan C) Funkcje uczace (obliczajace poprawki do wag i biasu): 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:
jest jeszcze 4 innych funkcji uczacych - dla sieci jednowarstwowej:
- dla sieci dwuwarstwowej:
- dla sieci trzywarstwowej:
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 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. 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. 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 |
/