cwicz2


Ćwiczenie 2. Możliwości pojedynczego neuronu (perceptronu)
Program do napisania (zamiast wykonywania ćwiczenia):
symulacja działania pojedynczego neuronu ze skokową oraz sigmoidalną funkcją aktywacji (dowolny
język programowania). Przetestowanie działania na funkcjach AND, OR, NOR, NAND, XOR, . Dodanie
kolejnego neuronu w celu umożliwienia nauki XOR.
Ćwiczenie:
Stworzyć w MS Excel symulator neuronu. Przetestować działanie tego symulatora dla funkcji
logicznych OR, AND, NOR, NAND, XNOR lub XOR.
1) Na początku wykorzystać skokową funkcję aktywacji:
a) początkowe obliczenia przeprowadzić krok po kroku i  ręcznie sprawdzić algorytm
modyfikacji wag. Obliczenia wykonać dla jednego kroku, w którym nastąpi modyfikacja
wag, czyli gdy odpowiedz neuronu była nieprawidłowa (WSKAZÓWKA 2):
- zapisać zestaw wag przed modyfikacją
- zapisać zestaw wag po jednym kroku uczenia
- sprawdzić algorytm modyfikacji wag dokonując odpowiednich obliczeń
b) wykonać uczenie sieci dla odpowiednich ciągów uczących (dla AND, OR, XOR)
- zmieniać współczynnik szybkości uczenia i sprawdzić jaki ma on wpływ na
proces uczenia
- czy pojedynczy neuron jest w stanie nauczyć się realizacji każdej z tych funkcji
logicznych?  analizy dokonać wykonując odpowiednie rysunki
c) dla nauczonej sieci, dla każdego z uzyskanych zestawów wag narysować wykres linii
prostej rozdzielającej punkty w przestrzeni sygnałów wejściowych (WSKAZÓWKA 5)
w1 ×ð x1 +ð w2 ×ð x2 +ð b =ð 0
gdzie:
w1, w2, b  to wartości wag połączeń odpowiednio wejść x1, x2 i biasu
e =ð w1 ×ð x1 +ð w2 ×ð x2 +ð b jest to Å‚Ä…czne pobudzenie neuronu
Jeśli (e < 0), to funkcja aktywacji (f(e) = 0) w przeciwnym wypadku (f(e) = 1)
d) zweryfikować działanie neuronu przy wykorzystaniu ciągu weryfikującego
(WSKAZÓWKA 4):
- obliczyć wyjścia sieci dla uzyskanego zestawu wag i kolejnych wektorów z ciągu
weryfikujÄ…cego
- czy odpowiedzi sieci są zgodne z oczekiwaniami  napisać wnioski
2) Zmienić funkcję aktywacji na funkcję sigmoidalną:
a) dla funkcji (OR lub AND lub NOR lub NAND) początkowe obliczenia przeprowadzić
krok po kroku i  ręcznie sprawdzić algorytm modyfikacji wag (WSKAZÓWKA 3):
- zapisać zestaw wag przed modyfikacją
- zapisać zestaw wag po jednym kroku uczenia
- sprawdzić algorytm modyfikacji wag dokonując odpowiednich obliczeń
b) wykonać uczenie sieci dla odpowiednich ciągów uczących
- czy pojedynczy neuron z sigmoidalną funkcją aktywacji jest w stanie nauczyć się
realizacji każdej z tych funkcji logicznych?
c) zweryfikować działanie neuronu przy wykorzystaniu ciągu weryfikującego:
- obliczyć wyjścia sieci dla uzyskanego zestawu wag i kolejnych wektorów z ciągu
weryfikujÄ…cego
- czy odpowiedzi sieci są zgodne z oczekiwaniami  napisać wnioski
3) Zmienić funkcję aktywacji na funkcję skokową  zmienić topologię sieci (dodać neuron w warstwie
ukrytej) i przeprowadzić uczenie dla funkcji logicznej XOR lub XNOR (WSKAZÓWKA 1). Obliczenia
wykonywać przy użyciu apletu http://ii.pwsz.bialapodlaska.pl/~mk/perceptronPrg/html/index.html).
Wykonać zrzuty ekranu z wynikami obliczeń.
a) dla nauczonej sieci zweryfikować działanie neuronu przy wykorzystaniu ciągu
weryfikujÄ…cego:
- obliczyć wyjścia sieci dla uzyskanego zestawu wag i kolejnych wektorów z ciągu
weryfikujÄ…cego
- czy odpowiedzi sieci są zgodne z oczekiwaniami  napisać wnioski,
- sprawdzić działanie apletu, wykonując odpowiednie obliczenia
4) Czy pojedynczy neuron jest w stanie nauczyć się funkcji NAND, NOR, NOT, XNOR? Jaka jest jego
budowa w każdym z przypadków? Napisać zasadę określającą możliwości pojedynczego neuronu.
5) Przetestować działanie neuronu bez wejścia BIAS (podstawić różne zestawy wag początkowych).
Jakie problemy mogą się pojawić podczas uczenia takiego neuronu? Czy zawsze nauczy się funkcji
logicznych?
6) Przetestować i opisać wpływ współczynnika szybkości uczenia na naukę neuronu.
W sprawozdaniu napisać wnioski dotyczące każdego z etapów obliczeń oraz wnioski końcowe.
Zestawy do wyboru:
Zestaw Treść zadania
1 OR, NAND, XOR
2 NOR, AND, XOR
3 OR, AND, XNOR
4 OR, NAND, XNOR
5 NOR, AND, XNOR
6 NOR, OR, XOR
7 AND, NAND, XOR
8 NOR, OR, XNOR
9 AND, NAND, XNOR
10 NOR, NAND, XOR
11 NOR, NAND, XNOR
12 NOR, AND, XOR
13 OR, NOR, XNOR
14 OR, NAND, XOR
15 OR, NAND, XOR
16 OR, NAND, XOR
WSKAZÓWKI:
Wskazówka 1). Dla przypomnienia: XOR to następująca funkcja logiczna:
Zgodnie z pokazanym modelem, sieć musi mieć dwa wejścia i jedno wyjście.
Ciąg uczący powinien składać się z czterech następujących wektorów uczących
x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 0
Wskazówka 2) Kolejne etapy w jednym kroku uczenia przy skokowej funkcji aktywacji:
1) dla danego wektora uczÄ…cego (x1, x2, d) wyliczenie Å‚Ä…cznego pobudzenia e =ð w1 ×ð x1 +ð w2 ×ð x2 +ð b
1, gdy e Å‚ð 0
ìð
2) wyliczenie aktualnego wyjÅ›cia sieci y =ð
íð0, gdy e <ð 0
îð
zaÅ‚ożyliÅ›my, że wartość progowa Qð = 0
3) w przypadku błędnej odpowiedzi sieci tzn. y`"d modyfikacja wag według następujących wzorów:
w1' =ð w1 +ðhð ×ð (d -ð y) ×ð x1
w2' =ð w2 +ðhð ×ð (d -ð y) ×ð x2
b' =ð b +ðhð ×ð (d -ð y) ×ð1
gdzie hð - współczynnik szybkoÅ›ci uczenia
Wskazówka 3) Kolejne etapy w jednym kroku uczenia przy sigmoidalnej funkcji aktywacji
1
f (x) =ð , bð =ð 1
:
1+ð exp-ðbð×ðx
1) dla danego wektora uczÄ…cego (x1, x2, d) wyliczenie Å‚Ä…cznego pobudzenia e =ð w1 ×ð x1 +ð w2 ×ð x2 +ð b
1
2) wyliczenie aktualnego wyjÅ›cia sieci y =ð
1+ð exp-ðe
3) w przypadku błędnej odpowiedzi sieci tzn. y`"d modyfikujemy wagi
Stosujemy tutaj regułę Delta:
Dðwi =ð hð ×ð (d -ð y) f ' (e)xi
1
Warto zauważyć, że dla funkcji sigmoidalnej o wzorze
f (x) =ð
1 +ð exp-ðx
f '(x) =ð f (x) ×ð (1-ð f (x))
Modyfikacja wag przebiega następująco:
w1' =ð w1 +ðhð ×ð (d -ð y) ×ð f (e) ×ð (1-ð f (e)) ×ð x1
w2' =ð w2 +ðhð ×ð (d -ð y) ×ð f (e) ×ð (1-ð f (e)) ×ð x2
b' =ð b +ðhð ×ð (d -ð y) ×ð f (e) ×ð (1-ð f (e))×ð1
Wskazówka 4) Weryfikacja działania neuronu:
 Nauczona sieć neuronowa poddawana jest procesowi weryfikacji.
Ciąg weryfikujący dla OR, AND i XOR może wyglądać np. następująco:
x1 x2
0.05 0.05
0.95 0.05
0.05 0.95
0.95 0.95
Przykład (skokowa funkcja aktywacji):
Załóżmy, że po nauce zostały ustalone następujące wagi:
w1 = 1 w2 = 2 b = -1
x1 x2 e f (e)
0,05 0,05 -0,85 0
0,95 0,05 0,05 1
0,05 0,95 0,95 1
0,95 0,95 1,85 1
Jeśli weryfikowaliśmy działanie funkcji logicznej OR, to odpowiedzi neuronu są poprawne (takie jak
oczekiwaliśmy).
Wskazówka 5) Wykres linii prostej rozdzielającej punkty w przestrzeni sygnałów wejściowych:
Załóżmy, że po nauce zostały ustalone następujące wagi:
w1 = 1 w2 = 2 b = -1
w1 ×ð x1 +ð w2 ×ð x2 +ð b =ð 0
czyli
1×ð x1 +ð 2 ×ð x2 -ð1 =ð 0
funkcja liniowa :
x2 =ð -ð0,5 ×ð x1 +ð 0,5
x1 x2
0 0,5
0,1 0,45
0,2 0,4
0,3 0,35
0,4 0,3
0,5 0,25
0,6 0,2
0,7 0,15
0,8 0,1
0,9 0,05
1 0


Wyszukiwarka

Podobne podstrony:
cwicz2 3POPR
LAK cwicz2
cwicz22
cwicz25 tachimetria
cwicz2
Zalacznik Cwicz2 PP arytmet logika
Grafika cwicz2a2014
Ćwicz2
Cwicz27
Ćwicz2ME
Cwicz2
cwicz2
cwicz2

więcej podobnych podstron