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.