Instrukcja

Transkrypt

Instrukcja
Katedra Elektrotechniki Teoretycznej i Informatyki
Przedmiot: Zintegrowane Pakiety Obliczeniowe W
Zastosowaniach InŜynierskich
Numer ćwiczenia:
6
Temat: Wprowadzenie do Neural Network Toolbox –
model sztucznego neuronu, jednowarstwowa
sztuczna sieć neuronowa z nieliniową funkcją
aktywacji.
1. PODSTAWY TEORETYCZNE
Sztuczna sieć neuronowa SSN jest matematycznym “odpowiednikiem” sieci neuronowej
ludzkiego mózgu. Sztuczna sieć neuronowa składa się z prostych elementów pracujących
równolegle. Podobnie jak w naturze, połączenia pomiędzy elementami określają funkcje,
które ma spełnić sieć. Dostosowywanie sieci neuronowej do rozwiązywania danego
zagadnienia wiąŜe się z doborem odpowiedniej struktury sieci oraz ustawieniem wag
połączeń pomiędzy elementami sieci.
Zazwyczaj sieci neuronowe są projektowane i trenowane w taki sposób by dla danego
zestawu danych wejściowych uzyskiwać określone wartości na wyjściu sieci. Ilustracja tego
procesu znajduje się na rysunku 1. Sieć jest „dostosowywana” na podstawie wyniku
porównania aktualnej odpowiedzi sieci oraz poŜądanej odpowiedzi aŜ do etapu, w którym
następuje zgodność obu wartości (w rzeczywistości dąŜy się by obie wartości były
porównywalnie bliskie). Ten charakter procesu wymaga duŜej ilości par wartości zwanych
uczącymi: wejście, poŜądana odpowiedź.
Cel
Wejście
SSN zawierająca
połączenia pomiędzy
neuronami
Wyjście
Porównanie
Dobór wartości
wag
Rysunek 1. Ilustracja procesu projektowania i trenowania sieci neuronowej.
NajwaŜniejszą cechą sieci neuronowych decydującą o jej zaletach i moŜliwościach jest
równoległość przetwarzania informacji przez wszystkie neurony. SSN znajdują zastosowanie
w wielu aplikacjach. Funkcje pełnione przez SSN moŜna ująć w kategorie:
1
•
•
•
•
•
•
aproksymacja i interpolacja,
rozpoznawanie i klasyfikacja wzorców,
kompresja,
predykcja,
identyfikacja i sterowanie,
asocjacja.
Na podstawie obserwacji działania rzeczywistego neuronu stworzono wiele modeli
matematycznych, uwzględniających właściwości komórki nerwowej. Przykładem sieci
neuronowej jest sieć perceptronowa.
Perceptron jest specyficznym rodzajem neuronu, który głównie słuŜy do klasyfikacji
danych wejściowych. Na wyjściu perceptronu uzyskuje się wartości 0-1. Schemat
pojedynczego układu przedstawiono poniŜej:
Wejścia
x1
x2
Wyjście
n
w1,1
w1,2
Funkcja
aktywacji
hardlim
Odpowiedź
sieci y
∑
w1,n
xn
b – potencjał
membranowy
Odpowiedź sieci:
y = hardlim(∑
∑wi,j xi + b)
Rysunek 2 Model perceptronu.
KaŜde wejście posiada odpowiednią wagę w1j. Odpowiedź y perceptronu określone
jest za pomocą funkcji hardlim, która daje wartość 0 dla argumentu mniejszego od zera i 1 dla
większego od zera. Takie binarne wyjście umoŜliwia klasyfikację danych wejściowych
poprzez podział przestrzeni wejściowej na dwa obszary – ten, dla którego stan wyjścia równa
się 0 i ten dla którego stan na wyjściu równa się 1. Przykładowy obszar dla dwuwejściowego
perceptronu z funkcją hardlim i wagami wejściowymi: w1,1 = -1, w1,2 = 1, b = 1 jest
przedstawiony na rysunku 3.
Dwa regiony klasyfikacji są zdefiniowane przez prostą decyzyjną o równaniu ∑wi,j xi
+ b = 0. Prosta ta jest prostopadła do prostej wyznaczanej przez współczynniki w macierzy
wag w i przesunięta o wartość b. Wszystkie wartości wejściowe leŜące powyŜej tej prostej
spowodują pojawienie się wartości y = 1 na wyjściu, wszystkie pozostałe przypadki dadzą w
rezultacie y = 0.
2
10
5
∑wi,j xi + b = 0
y=0
∑wi,j xi + b >0
y=1
0
-5
∑wi,j xi + b <0
y=0
-10
-10
-5
0
5
10
Rysunek 3. Podział przestrzeni wejściowej przez prosta decyzyjną
2. PROGRAM ĆWICZENIA
Zaprojektuj sieć typu perceptron modelującą funkcję logiczną AND i OR.
Dla funkcji AND sieć powinna działać według poniŜszej tabeli:
IN1 IN2 OUT
0
0
0
0
1
0
1
0
0
1
1
1
% Zmienna z wektorami wejściowymi
X = [ 0 0 1 1; ...
0 1 0 1];
% Zmienna z wartościami wyjściowymi
D =[0 0 0 1];
% tworzenie perceptronu z dwoma wejściami na które podawane są sygnały o
% wartościach od 0 do 1 i jednym neuronie
net = newp([0 1; 0 1], 1);
% inicjalizacja perceptronu
net = init(net);
% Narysuj wykres z zaznaczonymi elementami zbioru uczącego i prostą decyzyjną
% przed procesem uczenia
plotpv(X,D);
plotpc(net.IW{1},net.b{1});
pause
% przeprowadź proces uczenia sieci przy załoŜeniu Ŝe maksymalna liczba iteracji
% wynosi 200
net.trainParam.epochs = 400;
net = train(net,X,D);
% oblicz odpowiedź sieci na dane zawarte w wektorze X
3
Y = sim(net, X)
% Narysuj wykres z zaznaczonymi elementami zbioru uczącego i prostą decyzyjną
% po zakończeniu procesu uczenia
plotpv(X,D);
plotpc(net.IW{1},net.b{1});
W podobny sposób proszę zamodelować funkcję OR oraz EXOR.
OR
EXOR
IN1 IN2 OUT
0
0
0
0
1
0
1
0
0
1
1
1
IN1 IN2 OUT
0
0
0
0
1
1
1
0
1
1
1
0
ZADANIA:
1. Zinterpretować wykresy uzyskane za pomocą funkcji plotpc i plotpv
2. Wyznaczyć równanie prostej decyzyjnej na podstawie macierzy wag odczytanej ze struktury
sieci
3. Dlaczego nie moŜna wytrenować sieci EXOR?
4. Za pomocą funkcji plotxor wykreślić odpowiedź sieci.
4