• Nie Znaleziono Wyników

Wprowadzenie do Sieci Neuronowych — Laboratorium 04 — Adaline, nieliniowe reprezentacje

N/A
N/A
Protected

Academic year: 2021

Share "Wprowadzenie do Sieci Neuronowych — Laboratorium 04 — Adaline, nieliniowe reprezentacje"

Copied!
4
0
0

Pełen tekst

(1)

Projekt pn. „Wzmocnienie potencjału dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych”

realizowany w ramach Poddziałania 4.1.1 Programu Operacyjnego Kapitał Ludzki

Wprowadzenie do Sieci Neuronowych — Laboratorium 04 — Adaline, nieliniowe reprezentacje

Maja Czoków, Jarosław Piersa 2013-10-23

1 Powtórzenie

1.1 Adaline

Maszyna Adaline (Adaptive Linear Network) składa się z n wejść x1, .., xn (w ogólności rzeczywistych) oraz stowarzyszonych z każdym wejściem wag w1, .., wn(+ ewentualnie próg w0). Przyjmujemy, że funkcja aktywująca ma postać identycznościową, tj. odpowiedź jednostki:

O(x1, .., xn) =

n

X

i=1

wi· xi (+w0)

Jednostka zwraca odpowiedź rzeczywistą, co za tym idzie pozwala na aproksymację funkcji ciągłych.

1.1.1 Uczenie Adaline

Dane: Lista m danych wejściowych Ei = (ei1, .., ein), gdzie i = 1..m oraz odpowiadających im poprawnych odpowiedzi Ci∈ R.

Wynik: Wartości wag wj maszyny, która będzie minimalizowała funkcję błędu:

ERROR =

m

X

i=1

(S(ei1, .., ein) − Ci)2

Algorytm:

1. Przypisujemy wagi losowo małe wokół zera.

2. Losowo wybieramy przykład E oraz poprawną odpowiedź C uczący z listy.

w = [0.42, -1.55, -2.34]

-10 -5

0 5

10 x

-4 -2 0 2 4

y -40

-20 0 20 40

z

Rysunek 1: Uczenie jednostki Adaline

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Wyrażam zgodę na wydruk dokumentu do celów dydaktycznych

1

(2)

3. Obliczamy aktywację jednostki na przykładzie E

S =

n

X

i=1

wiei

4. Przypisujemy

wj:= wj+ ρ(C − S) · ej

gdzie ρ > 0 — jest małą stałą uczenia.

5. Jeżeli algorytm przebiegł określoną liczbę iteracji lub osiągnął odpowiednio niski błąd, to kończymy. W przeciwnym wypadku wracamy do 2.

2 Zadania

2.1 Zadanie 2.1. Klasyfikacja punktów na R

2

— nieliniowe kernele

• Napisz (zmodyfikuj z poprzednich zajęć) w Octavie / Matlabie funkcję implementującą działanie perceptronu, który poza współrzędnymi (x, y) oraz obciążeniem w0 przyjmuje również x2, Y2, x · y. Funkcja za argument powinna nadal przyjmować wektor dwóch danych wejściowych oraz wektor wag długości sześć elementów.

% x = [ x , y ]

% lub

% x = [ x1 , y1

% x2 , y2

% ...

% xn , yn ];

% w = [ w1 , ... , w6 ];

f u n c t i o n ret = P e r c ( x , w ) s = s i z e( x );

% x , y +1 x ^2 y ^2 xy

x1 = [ x , o n e s ( s (1) , 1) , x (: ,1).^2 , x (: ,2).^2 , x (: ,1).* x (: ,2)];

ret = s i g n( x1 * w ’);

end

• Wygeneruj dwie chmury danych uczących na R2, tym razem nieseparowalne:

M = 20;

EX = [r a n d n( M , 1) -3; r a n d n( M , 1) -3; r a n d n( M , 1 ) + 3 ; r a n d n( M , 1 ) + 3 ; r a n d n( M , 1); r a n d n( M , 1) ];

EY = [r a n d n( M , 1) -3; r a n d n( M , 1 ) + 3 ; r a n d n( M , 1 ) + 3 ; r a n d n( M , 1) -3;

r a n d n( M , 1); r a n d n( M , 1) ];

C = [ o n e s (4* M , 1); - o n e s ( 2* M , 1 ) ] ;

• Wyświetl wygenerowane dane I P o s = f i n d( C = >0);

I N e g = f i n d( C < 0 ) ; f i g u r e( 1 ) ;

h o l d off ;

p l o t( EX ( I P o s ) , EY ( I P o s ) , ’ r + ’);

h o l d on ;

p l o t( EX ( I N e g ) , EY ( I N e g ) , ’ bs ’);

l e g e n d(’ D a n e u c z a c e pos ’, ’ neg ’)

2

(3)

• Wygeneruj losowe wagi i wyświetl jak perceptron klasyfikuje kawałek płaszczyzny:

N = 2 0 0 ;

w = r a n d n(1 , 6);

T e s t X = r a n d(200 , 2 ) * 1 0 -5;

% n a s z p e r c e p t r o n t e r a z d z i a l a na c a l e j t a b l i c y d a n y c h Out = P e r c ( TestX , w );

I P o s = f i n d( Out > 0 ) ; I N e g = f i n d( Out < 0 ) ; f i g u r e(2)

h o l d off ;

p l o t( T e s t X ( IPos , 1) , T e s t X ( IPos , 2) , ’ r + ’);

h o l d on ;

p l o t( T e s t X ( INeg , 1) , T e s t X ( INeg , 2) , ’ bo ’);

l e g e n d(’ L o s o w e w a g i pos ’, ’ neg ’);

• Zaimplementuj SPLA (plik spla.m) dostosowany doperceptronu działającego na zmodyfikowanych danych wejściowych.

(copy-paste z zajęć drugich z modyfikacją części poprawiającej wagi):

f u n c t i o n w a g i = s p l a ( EX , EY , C ) ( . . . )

if ( O != C ( j ) ) x = EX ( j );

y = EY ( j );

x1 = [ x , y , +1 , x ^2 , y ^2 , x * y ];

Err = C ( j ) - O ;

w a g i = w a g i + Err * x1 ; end

( . . . )

end % f u n c t i o n

• Naucz perceptron na przykładach wygenerówanych w pierwszym punkcie. Wyświetl mapę klasyfikacyjną jak wyżej ale już dla nauczonych wag.

w a g i = S P L A ( EX , EY , C );

Out = P e r c ( TestX , w a g i );

f i g u r e( 3 ) . ( . . . )

2.2 Zadanie 2.2

• Dane uczące z punktu 2.1 przedstaw w biegunowym układzie współrzędnych tzn:

(x, y) → (r, α),

gdzie r ∈ [0, +∞) jest odległością od punktu (0, 0), a α ∈ [0, 2π) jest kątem nachylenia prostej przechodzącej przez (x, y) i (0, 0).

• wzory:

r =p

x2+ y2, α = atan(y/x).

UWAGA: Jeżeli x = 0 to α = π/2 (dla y > 0) lub α = 3π/2 (dla y < 0).

• Wyświetl dane uczące w nowej reprezentacji. Czy teraz są łatwiejsze do klasyfikacji?

• Zbuduj perceptron, który poza x, y operuje również na ich biegunowych współrzędnych i naucz go na danych uczących (copy-paste punktu 2.1 z małymi modyfikacjami).

3

(4)

3 Zadania programistyczne (do wyboru)

3.1 Zadanie 1. Klasyfikacja punktów na R

2

Wykorzystując perceptrony, perceptrony z rozproszonymi reprezentacjami (np RBF), algorytmy konstrukcyjne dla sieci skierowanych (następne zajęcia) i wsteczną propagację błędu (za dwa zajęcia) naucz systemy klasyfikacji punktów na R2 / R3 (dla ambitnych: R4). Porównaj działanie na różnych danych uczących, zaproponuj własne dane.

• dla każdego z systemów oblicz procent poprawnie klasyfikowanych danych,

• w miarę możliwości: wyświetl dane uczące i poklasyfikowane,

• porównaj koszt czasowy (uczenie) i pamięciowy poszczególnych systemów.

Zadanie punktowane za 2 lub 3 punkty w zależności od możliwości programu.

4

Cytaty

Powiązane dokumenty

popełnianego przez sieć w trakcie procesu uczenia, ale może być także obserwowana za pomocą “mapy” pokazującej, jak wygląda działanie sieci dla różnych wartości.

Obiekt (czyli tak naprawdę folder o nazwie swojego nazwiska znajdujący się w folderze Winkalka) przesyłacie Państwo po spakowaniu do mnie mailem do piątku 19.06.2020 do godziny 16:00

1.2.7 Algorytm uczenia perceptronu (Simple perceptron learning algorithm, SPLA).. Jest to podstawowy

• (*) Skonstruuj dane jednowymiarowe składające się z trzech przykładów uczących, którego nie będzie wstanie rozwiązać perceptron, a który rozwiąże sieć.. Podaj

Po ostatniej wieczornej obserwacji oblicza się wartości średnie dobowe poszczególnych parametrów i dokonuje się zestawień przebiegu zjawisk w danej dobie.. Co

Pręt AB o długości 2l, do którego przymocowano jednakowe ciężarki o masie m, obraca się ze stałą prędkością kątową ω dokoła pionowej osi obrotu Oz przechodzącej przez

Tak jak w rachunku funkcji jednej zmiennej minima i maksima lokalne funkcji dwóch zmiennych nazywamy ekstremami lokalnymi..

Tak jak w rachunku funkcji jednej zmiennej minima i maksima lokalne funkcji dwóch zmiennych nazywamy ekstremami lokalnymi..