dr inż. Małgorzata Krętowska Wydział Informatyki PB Sztuczne sieci
Transkrypt
dr inż. Małgorzata Krętowska Wydział Informatyki PB Sztuczne sieci
dr inż. Małgorzata Krętowska
Wydział Informatyki PB
Sztuczne sieci neuronowe
Pracownia specjalistyczna nr 5
Zakres materiału: Problem XOR. Metoda wstecznej propagacji błędu.
Zadania
Wynikiem poniższych zadań powinny być funkcje (pliki .m) z deklaracją struktur sieci:
Zad 1 Przeanalizować działanie dwóch podanych na wykładzie struktur sieci neuronowych pozwalających
na rozwiązanie problemu XOR. Sprawdzić poprawność ich działania i zależności pomiędzy wejściem sieci a
wartościami wyjść poszczególnych neuronów. (funkcja network)
Zad 2* Stworzyć model sieci neuronowej pozwalającej na badanie parzystości dla N=4 przy pomocy sieci
zbudowanej z neuronów dyskretnych. Sprawdzić działanie poszczególnych neuronów warstwy ukrytej i
wyjściowej. (funkcja network)
Zad 3 Stworzyć model sieci do rozwiązywania problemu XOR zbudowany z neuronów z logistyczną funkcją
aktywacji (funkcja newff). Nauczyć sieć wykorzystując algorytm wstecznej propagacji błędu:
a) wykorzystując algorytm największego spadku przy różnych wartościach parametru uczenia oraz
jednakowych wagach początkowych (wartości 0)
b) wykorzystując algorytm największego spadku z momentum i adaptacyjnym doborem
współczynnika uczenia.
Czy są widoczne różnice w działaniu powyższych algorytmów?
Zad 4 Zrealizować zadanie 3 korzystając z narzędzia NNTool.
Zad 5* Symulacje analogiczne jak w Zad 3 przeprowadzić na przykładzie sieci służącej do badania
parzystości dla N=4. Porównać zbieżność algorytmu wstecznej propagacji błędu bez i z zastosowaniem
techniki momentu.
*zadanie dodatkowe
Opcje MATLABA:
Przykładowy plik .m definiujący własną sieć neuronową:
function net = siec()
%sieć I do problemu XOR
net=network(2,2,[1;1],[1 1;0 0],[0 0;1 0],[0 1],[0 1]);
%{
powyŜsza deklaracja sieci neuronowej jest równowaŜna
wykonaniu ponizszych instrukcji:
net=network;
net.numInputs=2;
net.numLayers=2;
net.biasConnect=[1;1];
net.inputConnect=[1 1;0 0];
net.layerConnect=[0 0;1 0];
net.outputConnect=[0 1];
net.targetConnect=[0 1];
%}
%liczba neuronów w sieci
net.layers{1}.size=2;
net.layers{2}.size=1;
%rodzaj neuronów w sieci
net.layers{1}.transferFcn='hardlim';
net.layers{2}.transferFcn='hardlim';
%parametry neuronów
%wartości wag połączeń warstwy I z wejściem I i II
net.IW{1,1}=[1;-1.5];
net.IW{1,2}=[1.5;2];
% wartości progów warstwy I
net.b{1}=[2; -1];
% wartości wag połączeń warstwy 2
net.LW{2}=[1 2];
% wartość progu w neuronie warstwy II
net.b{2}=[0];
Definicja sieci jednokierunkowej do wstecznej propagacji błędu:
net=newff
Przykład:
net=newff(minmax(P),[2 1],{'logsig', 'logsig'}, 'traingd','learngd');
net=newff(minmax(P),[2 1],{'logsig', 'logsig'});
logsig – logistyczna funkcja aktywacji
traingd – algorytm największego spadku
learngd – algorytm największego spadku
traingdm - algorytm największego spadku z momentum
traingdx – algorytm największego spadku z momentum i adaptacyjnym doborem
współczynnika uczenia
mse- błąd średnio-kwadratowy