ESI 3 - Instytut Sterowania i Systemów Informatycznych

Transkrypt

ESI 3 - Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Wydział Elektrotechniki, Informatyki i
Telekomunikacji
Instytut Sterowania i Systemów Informatycznych
ELEMENTY SZTUCZNEJ INTELIGENCJI
Semestr letni 2010
Laboratorium nr 3
WSTĘP DO SZTUCZNYCH SIECI NEURONOWYCH
Prowadzący: …………………………………………………..
Cele ćwiczeń:
1. Poznanie podstaw budowy sztucznych sieci neuronowych
2. Typy sieci neuronowych
3. Implementacja modelu perceptronu prostego w programie Matlab
Zadania:
1. Zapoznać się z budową pojedynczego sztucznego neuronu. Wymienić jego najważniejsze
elementy i określić za jakie zadania one odpowiadają. Czy w jakikolwiek sposób jest on
podobny do modelu biologicznego?
2. Wymienić popularne funkcje aktywacji.
3. Wyjaśnić pojęcie potencjału membranowego.
4. Zapoznać się z działaniem perceptronu prostego przy użyciu dema Simple Neuron and
Transfer Functions (polecenie >>run nnd2n1).
5. Co to jest bias i jak wpływa jego wartość na otrzymane wartości wyjściowe neuronu?
6. Uruchomić demo >>run nnd2n2 i wywnioskować, jak zmienia się wartość wyjściowa pod
wpływem zmiany wektora wejściowego.
7. Na podstawie poniższego schematu omówić najprostszą metodę uczenia neuronu.
8. Wyjaśnić pojęcie separowalności liniowej.
9. Perceptron tworzymy za pomocą funkcji newp(PR,S), która zwraca obiekt opisujący
tworzoną sieć. Parametr PR jest macierzą i określa liczbę wejść neuronu, dla każdego z wejść
tworzymy w macierzy PR jeden wiersz składający się z dwóch wartości a mianowicie
minimalnej oraz maksymalnej wartości sygnału, jaki może pojawić się się na danym wejściu.
Parametr S jest liczbą i określa liczbę neuronów w tworzonej sieci.
Przykład:
net=newp([-2 2;-1 1],1); - stworzono sieć składającą się z jednego neuronu i dwóch wejść i
zapamiętano jej strukturę w zmiennej net
Sprawdzenie struktury sieci za pomocą właściwości inputweights i biases
Przykład:
iw=net.inputweights{1,1}
ib=net.biases{1}
Przypisywanie wartości wag i biasów : IW{1,1}, b{1}
Przykład:
net.IW{1,1}=[-1 1] – przypisanie wartości wag
net.b{1}=[1] – przypisanie wartości biasow
Uczenie on-line perceptronu za pomocą funkcji adapt(net,p,t) gdzie parametr net opisuje
uczoną sieć, p to tablica z wektorami uczącymi a t to oczekiwane wartości wyjść neuronu dla
danych wzorców uczących. Uczenie tą metodą gwarantuje nauczenie perceptronu w
skończonej liczbie iteracji.
Przykład:
p={[2; 2] [1; -2] [-1; 1]};
t={0 1 1};
net=adapt(net,p,t);
Uczenie off-line perceptronu za pomocą funkcji train(net,p,t) gdzie parametr net opisuje
uczoną sieć, p to macierz z danymi uczącymi a t to oczekiwane wartości wyjść neuronu dla
danych wzorców uczących. Uczenie tą metodą nie gwarantuje nauczenia perceptronu w
skończonej liczbie iteracji.
Przykład:
p=[2 1 -1; 2 -2 1];
t=[0 1 1];
net=train(net,p,t);
Symulacja perceptronu za pomocą funkcji sim(net,p), gdzie net opisuje strukturę
symulowanej sieci a p dane wejściowe.
Przykład:
Symulacja perceptronu z dwoma wejściami za pomocą dwóch wzorców testowych.
p={[1;1] [1;-1]};
a=sim(net.p);
Zadania do samodzielnego wykonania
Zbadać czy poniższe zadania klasyfikacji wzorców możliwe są do realizacji przy użyciu
perceptronu, jeżeli zadanie jest możliwe do realizacji wyznaczyć wektor wag w, dla których
neuron będzie klasyfikował elementy dwóch zbiorów A i B:
A={a1,a2,a3}, B={b1,b2} gdzie a1={-0.5,-0.5) a2=(0.5,-1) a3=(-1,1), b1=(1,2) b2=(-0.5,2.5)
A={a1,a2}, B={b1,b2} gdzie a1={-0.5,-0.5) a2=(0.5,0.5), b1=(0.3,-0.5) b2=(0,1)
A={a1,a2}, B={b1,b2,b3} gdzie a1={-0.5,-0.5) a2=(-0.5,0.5) b1=(0.3,-0.5), b2=(-0.1,1), b3=(-0.9,0)
A={a1,a2}, B={b1,b2} gdzie a1={-1,-1) a2=(5,2), b1=(0,3) b2=(2,-2)
Dokonać uczenia perceptronu dla problemów z zadania 1 za pomocą funkcji adapt oraz
train, porównać wyniki.
Dane są dwa zbiory A={a1,a2,a3}, B={b1,b2} gdzie a1={-0.5,-0.5) a2=(-0.5,0.5) a3=(-80,100),
b1=(0.3,-0.5) b2=(-0.1,1), przeprowadzić na ich podstawie uczenie perceptronu. Jakie wnioski
nasuwają się po analizie procesu uczenia.
Zbadać czy poniższe zadanie klasyfikacji możliwe są do realizacji przy użyciu sieci dwóch
perceptronów, jeżeli zadanie jest możliwe do realizacji wyznaczyć wagi w, dla których sieć
będzie klasyfikował elementy czterech zbiorów A,B,C,D. A={a1,a2,a3}, B={b1,b2}, C={c1,c2,c3},
D={d1,d2}, gdzie a1={1,12) a2=(7,18) a3=(8,16), b1=(8,6) b2=(10,8), c1={3,5) c2=(0,2) c3=(-3,8),
d1=(-5,-15) d2=(-15,-13).
Wyznaczyć 10 wzorców uczących liniowo separowalnych, podzielić je na 4 klasy oraz:
Utworzyć perceptron składający się z 2 neuronów i nauczyć go klasyfikować dane wzorce do
poszczególnych klas.
Zbadać zdolności uogólniające perceptronu poprzez podawanie sygnałów zbliżonych do
sygnałów uczących i obserwację odpowiedzi sieci na te sygnały.
Literatura:
1. Korbicz J., Obuchowicz A., Uciński D., „Sztuczne sieci neuronowe. Podstawy i
zastosowanie”, Warszawa 1994.

Podobne dokumenty