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