Aproksymacja funkcji przy pomocy wielowarstwowej sieci

Transkrypt

Aproksymacja funkcji przy pomocy wielowarstwowej sieci
Aproksymacja funkcji przy pomocy wielowarstwowej sieci perceptronowej
Przedmiot: Sieci neuronowe i ich zastosowania
Zadanie polega na zorganizowaniu oraz nastrojeniu sieci perceptronowej składającej się z dwóch warstw.
Zadaniem sieci jest aproksymacja funkcji.
1. Przygotowanie próbek. Należy wygenerować próbki treningowe dla wybranej funkcji jednej zmiennej, przykładowo: X=0:10, Y=sin(X/2.5)+cos(X) oraz testujące: X=0:0.01:10, Y=sin(X/2.5)+cos(X).
Wykonać wykres próbek (treningowych oraz testujących na jednym układzie współrzędnych).
2. Organizacja sieci. Należy przygotować wielowarstwową sieć perceptronową. Inicjacja sieci: net=
newff( X, Y, liczba neuronów, funkcje przejścia, algorytm strojenia). Przykład: net=
newff( X, Y, 10, {’logsig’,’purelin’}, ’traingd’) skutkuje inicjacją sieci na podstawie
zbioru X, Y z 10 neuronami w pierwszej warstwie, funkcje przejścia: sigmoidalna w pierwszej warstwie oraz liniowa w warstwie wyjściowej, algorytm strojenia ’traingd’ (gradient descent backpropagation).
Po zainicjowaniu sieci należy sprawdzić najistotniejsze parametry:
• liczbę warstw (net.numLayers).
• funkcje przejścia w poszczególnych warstwach (net.layers{k}.transferFcn, gdzie k – nr
warstwy).
• wartość współczynnika uczenia (net.trainParam.lr).
• liczbę iteracji (net.trainParam.epochs).
3. Obliczenia. Uczenie sieci przeprowadzamy przy pomocy net = train(net,X,Y), natomiast jakość
działania weryfikujemy: YS = sim(net,X).
Przebieg laboratorium:
• Przeprowadzić przykładowy trening sieci: net = newff( X, Y, 5). Czy strojenie zakończyło
się po ustalonej liczbie iteracji? Jaka jest wartość oraz za co dopowiada funkcja net.divideFcn?
Sprawdzić jakość działania sieci dla próbek testujących. Wykonać wykresy próbek treningowych, testujących wraz z odpowiedziami sieci.
• Dla liczby iteracji wynoszącej 3000 oraz wyłączonej funkcji: net.divideFcn=’’, należy sprawdzić wpływ liczby neuronów w pierwszej warstwie na jakość działania sieci. Iterując po liczbie
neuronów (od 1 do 10) przeprowadzić trening, test oraz przedstawić na wykresie (próbki wraz
z odpowiedziami sieci). Ile wynosi optymalna liczba neuronów?
• Dla ustalonej, optymalnej liczby neuronów znaleźć odpowiednią liczbę iteracji.
• Dysponując odpowiednią topologią sieci przeprowadzić proces uczenia dla metod ’traingda’
oraz ’traingdm’. Sprawdzić parametry uczenia sieci (net.trainParam). W przypadku metody ’traingda’ znaleźć optymalną wartość współczynnika uczenia. Czym wyróżniają się
zastosowane tryby uczenia? Która metoda jest najodpowiedniejsza?
1

Podobne dokumenty