• Nie Znaleziono Wyników

Katedra Informatyki i Automatyki

N/A
N/A
Protected

Academic year: 2022

Share "Katedra Informatyki i Automatyki"

Copied!
26
0
0

Pełen tekst

(1)

Katedra Informatyki i Automatyki

Realizacja radialnej sieci neuronowej, klasyfikującej gatunki zwierząt.

Badanie wpływu parametrów sieci na proces uczenia.

Projekt realizowany na przedmiot Sztuczna Inteligencja

Jacek Ciuba

152082

Czerwiec 2019

(2)
(3)

Spis treści

1 Opis problemu 4

1.1 Opis zestawu danych . . . 4

1.1.1 Opis klas . . . 4

1.1.2 Opis atrybutów . . . 5

1.1.3 Przygotowanie danych do pracy . . . 5

2 Sztuczna sieć neuronowa - podstawy teoretyczne 6 2.1 Neuron . . . 6

2.2 Definicja sieci radialnej . . . 8

3 Podstawy matematyczne 10 4 Eksperymenty 12 4.1 Implementacja sieci w programie MATLAB . . . 12

4.2 Listing kodu użytego do przeprowadzenia uczenia sieci i eksperymentów . . . 13

4.3 Eksperyment pierwszy . . . 15

4.4 Eksperyment drugi . . . 20

5 Podsumowanie projektu 25

(4)

1 Opis problemu

Celem projektu jest realizacja sieci neuronowej uczącej się klasyfikacji gatunków zwierząt.

Dodatkowo należy przeprowadzić serię eksperymentów, badających wpływ parametrów sieci na proces uczenia.

1.1 Opis zestawu danych

Zestaw danych uczących został pobrany ze strony:

http://archive.ics.uci.edu/ml/datasets/Zoo

Charakterystyka danych wiele zmiennych Charakterystyka atrybutów rzeczywiste Powiązane zadania klasyfikacja

Liczba rekordów 101

Liczba atrybutów 17

Brakujące wartości brak

Strefa życie

Data udostępnienia danych 1990-05-15

Tablica 1: Specyfikacja danych

Dane zostały zebrane i udostępnione przez Richard Forsyth z Nottingham.

Zbiór danych zawiera 15 atrybutów typu logicznego, jeden atrybut typu tekstowego oraz dwa atrybuty typu liczbowego całkowitego. Atrybut "type"przyjmowany jest za atrybut przynależ- ności do danej klasy.

1.1.1 Opis klas

Każda klasa reprezentuje jedno z królestw zwierząt.

Numer Królestwo Liczebność klasy

1 Ssaki 41

2 Ptaki 20

3 Gady 5

4 Ryby 13

5 Płazy 4

6 Owady 8

7 Bezkręgowce 10

Tablica 2: Specyfikacja klas

Rekordy w zbiorze są podzielone na klasy w sposób nierównomierny - najbardziej liczną grupę tworzą ssaki.

(5)

1.1.2 Opis atrybutów

Każdy z atrybutów opisuje cechy konkretnego zwierzęcia. Atrybuty są różnego typu, lecz zdecy- dowana większość jest typu logicznego.

Numer Atrybut Typ danych

1 animal name nazwa zwierzęcia tekstowy

2 hair czy ma włosy logiczny

3 feathers czy ma pióra logiczny

4 eggs czy znosi jajka logiczny

5 milk czy daje mleko logiczny

6 airborne czy lata logiczny

7 aquatic czy żyje w wodzie logiczny

8 predator czy jest drapieżnikiem logiczny

9 toothed czy posiada zęby logiczny

10 backbone czy jest bezkręgowcem logiczny

11 breathes czy oddycha logiczny

12 venomous czy jest jadowite logiczny

13 fins czy posiada płetwy logiczny

14 legs ile posiada nóg

liczby całkowite z zestawu wartości {0,2,4,5,6,8}

15 tail czy posiada ogon logiczny

16 domestic czy jest udomowione logiczny

17 catsize czy jest kotem logiczny

18 type przynależność do klasy liczby całkowite z przedziału [1,7]

Tablica 3: Specyfikacja atrybutów

1.1.3 Przygotowanie danych do pracy

Atrybut animal name ma postać tekstową i mógł zostać zamieniony na wartości liczbowe, lecz nazwy zwierząt są unikalne i zostały pominięte w procesie nauki.

15 spośród pozostałych 17 atrybutów jest typu logicznego, więc nie wymagają normalizacji.

Atrybut type, określa przynależność do klasy, więc nie podjęto normalizacji tego atrybutu, w celu łatwiejszego odczytu przynależności.

Jedynym atrybutem wymagającym normalizacji, jest więc atrybut legs.

Poddano więc każdy element tego atrybutu, do następującego wzoru:

X0 = X − Xmin

Xmax− Xmin

(1) gdzie:

• X’ - znormalizowany element atrybutu

(6)

• X - nieznormalizowany element atrybutu

• Xmin - minimalna wartość spośród wszystkich atrybutów tego samego typu

• Xmax - maksymalna wartość spośród wszystkich atrybutów tego samego typu

W ten sposób otrzymano znormalizowane wartości w przedziale <0,1> dla atrybutu legs.

2 Sztuczna sieć neuronowa - podstawy teoretyczne

Sieć neuronowa jest to system przeznaczony do przetwarzania informacji, którego budowa i zasada działania są w pewnym stopniu wzorowane na funkcjonowaniu fragmentów rzeczywi- stego (biologicznego) systemu nerwowego. Na przesłankach biologicznych oparte są schematy sztucznych neuronów wchodzących w skład sieci oraz (w pewnym stopniu) jej struktura.

Wyróżniającą cechą sieci neuronowej jako narzędzia informatycznego jest możliwość kom- puterowego rozwiązywania przy jej pomocy praktycznych problemów bez ich uprzedniej mate- matycznej formalizacji. Dalszą zaletą jest brak konieczności odwoływania się przy stosowaniu sieci do jakichkolwiek teoretycznych założeń na temat rozwiązywanego problemu. Założenie o przyczynowo-skutkowych zależnościach między wejściem a wyjściem nie musi być egzekwowane.

Najbardziej zmienną cechą sieci neuronowej jest jej zdolność uczenia się na podstawie przykładów [2].

2.1 Neuron

Pod koniec XIX wieku, Santiago Ramón y Cajal odkrył, że mózg składa się z komórek ner- wowych, które nazwano neuronami. Schemat komórki nerwowej jest przedstawiony na rysunku 1a.

Rysunek 1: (a) Schemat neuronu biologicznego, (b) schemat neuronu sztucznego

(7)

Neuron składa się z ciała komórki oraz dwóch rodzajów wypustek. Wypustki nazywane den- drytami są rozgałęzionymi strukturami służącymi do transmisji sygnałów od innych neuronów do ciała komórki. Natomiast do transmisji sygnału z ciała komórki do innych neuronów służy jedna wypustka nazywana aksonem.

Komunikacja między neuronami - w postaci transmisji impulsów nerwowych - odbywa się za pomocą synapsów.

W celu przedstawienia matematycznego modelu neuronu rys. 1b, przyjęto następujące ozna- czenia:

X = [X1, X2, ..., Xn]T - sygnały wejściowe W = [W1, W2, ..., Wn]T - wagi synaptyczne b - wartość przesunięcia (bias)

v - ważona suma wejść wraz z przesunięciem f - funkcja aktywacji

y - wartość wyjściowa neuronu

Formuła opisująca działanie sztucznego neuronu wyraża się zależnością:

y = f (v) (2)

gdzie

v =

n

X

i=1

WiXi+ b (3)

Wyjściem neuronu jest więc wynik funkcji aktywacji, która za parametr przyjmuje ważoną sumę wejść wraz z przesunięciem, czyli parametr v. [6]

(8)

2.2 Definicja sieci radialnej

Sieć o radialnych funkcjach bazowych (RBF - Radial Basis Function) posiada zwykle jedną warstwę ukrytą, zawierającą neurony radialne, z których każdy modeluje gaussowską po- wierzchnię odpowiedzi. Z uwagi na silnie nieliniowy charakter funkcji, zazwyczaj wystarcza jedna warstwa ukryta do zamodelowania funkcji o dowolnym kształcie. Warunkiem utworzenia przez sieć RBF skutecznego modelu dowolnej funkcji jest jednak zapewnienie w strukturze sieci dostatecznej liczby neuronów radialnych. Jeśli jest ich wystarczająco dużo, można do każdego istotnego szczegółu modelowanej funkcji przywiązać odpowiedni neuron radialny, co gwarantuje, że uzyskane rozwiązanie będzie odwzorowywało zadaną funkcję z całkowicie satysfakcjonującą wiernością. Pozostaje jeszcze pytanie, w jaki sposób należy połączyć wyjścia ukrytych neuronów radialnych aby uzyskać wymaganą wartość wyjściową sieci. Okazuje się, że wystarczy po prostu zastosować kombinację liniową tych wartości wyjściowych (tzn. ważoną sumę wartości funkcji gaussowskich). Sieć RBF posiada więc warstwę wyjściową zawierającą neurony liniowe z liniową funkcją aktywacji [1].

Rysunek 2: Sieć typu RBF

(9)

Sieci radialne składają się z neuronów, których funkcje aktywacji realizują odwzorowanie

x → ϕ(||x − c||), x ∈ Rn, (4)

gdzie (|| · ||) oznacza normę Euklidesową

d(p, q) = d(q, p) =p

(q1− p1)2+ (q2− p2)2+ ... + (qn− pn)2= v u u t

n

X

i=1

(qi− pi)2 (5) gdzie p = (p1, p2, ..., pn)i q = (q1, q2, ..., qn)to dwa punkty w n-wymiarowej przestrzeni Eu- klidesowej.

Funkcję ϕ(||x−c||) nazywamy radialnymi funkcjami bazowymi. Ich wartości zmieniają się ra- dialne wokół środka c.

Neurony w warstwie ukrytej realizują odwzorowanie (4). Liczba tych neuronów jest równa liczbie wektorów x w zbiorze uczącym lub mniejsza. Neuron w warstwie wyjściowej realizuje operację ważonej sumy sygnałów wyjściowych neuronów w warstwie ukrytej, co można wyrazić za pomocą następującego wzoru:

y =

K

X

i=1

wiϕ(||x − ci||) (6)

gdzie K to liczba neuronów w pierwszej warstwie.

Jako funkcję aktywacji w sieciach radialnych często wykorzystuje się funkcję Gaussa. W postaci funkcji jednej zmiennej opisana jest ona wzorem:

ϕ(||x − ci||) = exp(−β||x − c||2) (7) gdzie β odpowiada za szerokość krzywej dzwonowej.

Proces uczenia sieci radialnej sprowadza się do odpowiedniego dobrania wag wi oraz centrów ci neuronów radialnych.

(10)

3 Podstawy matematyczne

Podstawą matematyczną funkcjonowania sieci radialnych jest twierdzenie Covera o sepa- rowalności wzorców, stwierdzając, że złożony problem klasyfikacyjny zrzutowany nieliniowo w przestrzeń wielowymiarową ma większe prawdopodobieństwo być liniowo separowalny niż przy rzutowaniu w przestrzeń o mniejszej liczbie wymiarów. [4]

Przy oznaczeniu przez ϕ(x) wektora funkcji radialnych ϕ(x)= [ϕ1(x), ϕ2(x), ..., ϕK(x)]T w N -wymiarowej przestrzeni wejściowej, podział tej przetrzeni na X+, X, przy czym X+ i X reprezentują 2 klasy przetrzeni, jest nielinowo ϕ-separowalny, jeśli istnieje taki wektor wag w, że:

wTϕ(x) > 0 dla x ∈ X+ (8)

wTϕ(x) < 0 dla x ∈ X (9)

wTϕ(x) = 0reprezentuje granicę między obu klasami.

Istnieje dowód, że każdy zbiór wzorców losowo rozmieszczony w przestrzeni wielowymiaro- wej jest ϕ-separowalny z prawdopodobieństwem równym 1 pod warunkiem odpowiedniego dużego wymiaru K przestrzeni rzutowania. W praktyce oznacza to, że przyjęcie dostatecznie dużej liczby neuronów ukrytych realizujących funkcję radialną ϕi(x) zapewnia rozwiązanie problemu klasy- fikacyjnego przy użyciu dwu warstw sieci: warstwy ukrytej realizującej wektor ϕ(x) i warstwy wyjściowej o jednym neuronie liniowym opisanym wektorem wagowym w. [4]

Najprostsza sieć neuronowa typu radialnego działa na zasadzie wielowymiarowej inter- polacji, której zadaniem jest odwzorowanie p różnych wektorów wejściowych

xi(i = 1, 2, ..., p) z przestrzeni wejściowej N -wymiarowej w zbiór liczb p liczb rzeczywistych di(i = 1, 2, ..., p). Odpowiada to przyjęciu p neuronów ukrytych typu radialnego i określeniu takiej funkcji odwzorowania F (x), dla której spełnione są warunki interpolacji

F (xi) = di (10)

Przyjęcie p neuronów ukrytych połączonych wagami wi z neuronami wyjściowymi (li- niowymi) odpowiada tworzeniu sygnałów wyjściowych sieci jako sumy wagowej wartości poszcze- gólnych funkcji bazowych. Niech dana będzie sieć radialna o jednym wyjściu i p parach uczących (xi, di). Przy założeniu p centrów umieszczonych w kolejnych wektorach xi, to jest ci = xi, otrzymuje się układ równań liniowych względem wag wi. Układ ten można zapisać w postaci macierzowej

ϕ11 ϕ12 ... ϕ1p

ϕ21 ϕ22 ... ϕ2p ... ... ... ...

ϕp1 ϕp2 ... ϕpp

 w1

w2 ...

wp

=

 d1

d2 ...

dp

 (11)

gdzie ϕji = ϕ(||xj − xi||) dotyczy funkcji radialnej w centrum xi, przy wektorze wymu- szającym xj. Oznaczając macierz o elementach ϕji jako φ i przyjmując oznaczenia wektorów w = [w1, w2, ..., wp]T, d = [d1, d2, ..., dp]T, równanie (11) może być zapisane w prostej postaci macierzowej

φw = d (12)

(11)

Rozwiązanie układu równań (11) o wymiarach p×p przy dużych wartościach p staje się trudne, gdyż macierze bardzo duże są zwykle źle uwarunkowane. Dlatego potrzebna jest re- dukcja wag, tutaj sprowadzająca się do redukcji liczby funkcji bazowych. Poszukuje się zatem rozwiązania suboptymalnego w przestrzeni o mniejszym wymiarze, które z dostatecznie dużą dokładnością aproksymuje rozwiązanie dokładne. Przy ograniczeniu się do K funkcji bazowych rozwiązanie aproksymujące można przedstawić w postaci

F (x) =

K

X

i=1

wiϕ(||x − ci||) (13)

gdzie K < p, a ci(i = 1, 2, ..., K)jest zbiorem centrów, które należy wyznaczyć. W szczegól- nym przypadku, przy założeniu K = p, można otrzymać rozwiązanie dokładne o ci= xi.

Zadanie aproksymacji polega na dobraniu odpowiedniej liczby oraz parametrów funkcji radialnych ϕ(||x − ci||) i takim doborze wag wi(i = 1, 2, ..., K), aby rozwiązanie (13) najlepiej przybliżało rozwiązanie dokładne. [5] Problem doboru parametrów funkcji radialnych oraz warto- ści wag wisieci można zatem sprowadzić do minimalizacji funkcji celu, którą przy wykorzystaniu normy euklidesowej daje się zapisać w postaci

E =

p

X

i=1

" K X

j=1

wjϕ(||xi− cj||) − di

#2

(14)

W równaniu tym K reprezentuje liczbę neuronów radialnych, natomiast p liczbę par uczą- cych (xi, di), gdzie xi jest wektorem wejściowym, a di - odpowiadającą mu wielkością zadaną.

Oznaczmy przez d = [d1, d2, ..., dp]T wektor wielkości zadanych, przez w = [w1, w2, ..., wK]T wektor wag sieci, a przez G - macierz radialną, zwaną macierzą Greena

G =

ϕ(||x1− c1||) ϕ(||x1− c2||) ... ϕ(||x1− cK||) ϕ(||x2− c1||) ϕ(||x2− c2||) ... ϕ(||x2− cK||)

... ... ... ...

ϕ(||xp− c1||) ϕ(||xp− c2||) ... ϕ(||xp− cK||)

 (15)

Przy ograniczeniu liczby funkcji bazowych do K, macierz G jest macierzą prostokątną o liczbie wierszy zwykle dużo większej niż liczba kolumn (p  K ). Przy założeniu znajomości parametrów funkcji radialnych, problem optymalizacyjny (14) sprowadza się zatem do rozwiązania układu równań liniowych względem wag w

Gw = d (16)

Wobec prostokątność macierzy G wektor wag w wyznacza się, wykorzystując pojęcie pseu- doinwersji macierzy G, to jest

w = G+d (17)

gdzie G+= (GTG)−1GT oznacza pseudoinwersję macierzy prostokątnej G. W praktyce nu- merycznej pseudoinwersja jest obliczana przy wykorzystaniu dekompozycji głównych składowych z ang. Singular Value Decomposition [5].

(12)

4 Eksperymenty

4.1 Implementacja sieci w programie MATLAB

Dzięki zastosowaniu oprogramowania MATLAB R2019a i toolboxów, które oferuje, sieć została stworzona z wykorzystaniem funkcji o nazwie newrb, której algorytm działania jest następujący [2]:

1. Stworzona zostaje sieć dwuwarstwowa beż żadnego neuronu w warstwie pierwszej.

2. Na wejścia sieci zostają podawane kolejne wektory uczące i dla nich zostaje obliczony błąd wyjściowy (dla każdej próbki uczącej zapamiętany zostaje błąd oddzielnie).

3. Zostaje wybrany wektor uczący, dla którego błąd jest największy i do warstwy pierwszej zostaje dodany neuron radialny (wykorzystujący zawsze funkcję radbas jako funkcję ak- tywacji) o wagach równych składowym tego wektora uczącego.

4. Następnie wagi neuronu liniowego w warstwie drugiej zostają tak dobrane, aby zminimali- zować błąd sieci.

5. Punkty 2-4 powtarzane są tak długo, aż błąd działania sieci nie spadnie poniżej progu podanego przez użytkownika jako parametr funkcji newrb. Innym parametrem metody newrb jest liczba neuronów, po której przekroczeniu wykonywanie algorytmu powinno zostać przerwane. Domyślnie ta liczba jest równa rozmiarowi ciągu uczącego.

Funkcja newrb przyjmuje następujące argumenty:

• X - macierz złożona z wektorów wejściowych.

• T - macierz złożona z wektorów zawierających informacje o celu.

• GOAL - wartość błędu średniokwadratowego, który chcemy uzyskać (domyślnie 0.0).

• SPREAD - szerokość funkcji radialnej (domyślnie 1.0).

• MN - maksymalna liczba neuronów w pierwszej warstwie (domyślnie liczba wektorów uczących).

• DF - liczba neuronów dodawana między widokami (domyślnie 25).

(13)

4.2 Listing kodu użytego do przeprowadzenia uczenia sieci i ekspery- mentów

1 nntwarn off

2 clear

3 %%%%%%%%%%%%%%%%

4 input = importdata('input2.txt', ';', 0);

5 output = importdata('output2.txt', ';', 0);

6 %%%%%%%%%%%%%%%%

7 Xn = normalize(input, 'range'); %znormalizowane dane

8 Xns = Xn.';

9 %%%%%%%%%%%%%%%%

10 T = output.';

11 Ts = T;

12 %%%%%%%%%%%%%%%%

13 GOAL = 0.25/16;

14 MN = 101;

15 DF = 2;

16 %%%%%%%%%%%%%%%%

17 i=1;

18 bestPK = 0;

19 sc_v = .01:.01:10;

20 for sc =.01:.01:10

21 [net, tr] = newrb(Xns, Ts, GOAL, sc, MN, DF);

22 y = sim(net, Xns);

23 PK(i) = (1-sum(abs(T-y)>=0.5)/length(Xns))*100;

24 epoch = tr.epoch;

25 perf = tr.perf;

26 for ii=1:1:length(tr.perf)

27 MSE(i, ii) = tr.perf(ii);

28 end

29 i=i+1;

30 end

31 %%%%%%%%%%%%%%%%

32 f1 = figure;

33 mesh(1:1:size(MSE,2), sc_v, MSE(:,1:size(MSE,2)));

34 set(gcf,'color','w');

35 ylabel('Spread Constant');

36 xlabel('Liczba neuronw');

37 zlabel('Mean Squared Error');

38 %%%%%%%%%%%%%%%%

39 f2 = figure;

40 plot(sc_v, PK, 'r');

41 set(gcf,'color','w');

42 xlabel('Spread Constant');

43 ylabel(' P o p r a w n o klasyfikacji [%]');

44 %%%%%%%%%%%%%%%%

45 f3 = figure;

46 set(gcf,'color','w');

47 plot(MSE(1,2:end), 'r','LineWidth',2);

48 hold on;

49 plot(MSE(1000,2:end), 'b','LineWidth',2);

50 lgd = legend('SC=0.01','SC=10');

51 lgd.FontSize = 20;

52 xlabel('Liczba neuronw');

53 ylabel('MSE');

54 %%% Eksperyment 1

55 all = horzcat(Xn,output);

56 sortedInput = sortrows(all,17);

57 eksperyment1 = sim(bestNet, sortedInput(:,1:16)');

(14)

58 %%%%%%%%%%%%%%%%

59 f4 = figure;

60 plot(sortedInput(:,17), 'r');

61 hold on;

62 plot(eksperyment1', 'b');

63 ylabel('klasa');

64 %%%%%%%%%%%%%%%%

65 [net1, tr1] = newrb(Xns, Ts, 0, 0.01, 20, 1);

66 [net2, tr2] = newrb(Xns, Ts, 0, 10, 20, 1);

67 %%%%%%%%%%%%%%%%

68 %%% Eksperyment 2

69 eksperyment2 = sim(net1, sortedInput(:,1:16)');

70 eksperyment22 = sim(net2, sortedInput(:,1:16)');

71 f5 = figure;

72 set(gcf,'color','w');

73 plot(sortedInput(:,17), 'r','LineWidth',4);

74 hold on;

75 plot(eksperyment2', 'b','LineWidth',3);

76 hold on;

77 plot(eksperyment22', 'g','LineWidth',2);

78 ylabel('Klasa');

79 xlabel('Przypadek');

80 %%%%%%%%%%%%%%%%

81 test_input = importdata('test_input.txt', ';', 0);

82 test_output = importdata('test_output.txt', ';', 0);

83 all2 = horzcat(test_input,test_output);

84 sortedInput2 = sortrows(all2,17);

85 %%% Eksperyment 3

86 eksperyment3 = sim(net1, sortedInput2(:,1:16)');

87 eksperyment33 = sim(net2, sortedInput2(:,1:16)');

88 f6 = figure;

89 set(gcf,'color','w');

90 plot(sortedInput2(:,17), 'r','LineWidth',4);

91 hold on;

92 plot(eksperyment3', 'b','LineWidth',3);

93 hold on;

94 plot(eksperyment33', 'g','LineWidth',2);

95 grid on;

96 grid minor;

97 ylabel('Klasa');

98 xlabel('Przypadek');

(15)

4.3 Eksperyment pierwszy

Na wejście sieci podano nieposortowany, znormalizowany zbiór danych.

Przedział Spread Constant = [0.01:0.01:10]

Maksymalna liczba neuronów = 101 Żądany błąd = 0.0;

Celem eksperymentu jest sprawdzenie wpływu Spread Constant na uczenie sieci.

Uzyskane wykresy:

Rysunek 3: Wykres powierzchniowy dla błędu MSE w zależności od ilości neuronów radialnych i współczynnika SC

Z wykresu można odczytać, że powyżej wartości około 3.0 współczynnika Spread Constant, jego parametr nie ma już dużego wpływu na uczenie sieci.

Największy wpływ SC na naukę sieci można zauważyć w przedziale SC od 1 do 3, dla sieci po- siadającej od jednego do pięciu neuronów radialnych.

Z kolei dla sieci powyżej 50 neuronów w pierwszej warstwie, Spread Constant nie odgrywa już większej roli podczas nauki sieci.

(16)

Rysunek 4: Wykres współczynnika poprawności klasyfikacji od współczynnika Spread Constant, dla sieci które osiągnęły swój cel

Na tym wykresie można zauważyć anomalie spowodowane zbyt dużym współczynnikiem SC, dla wartości powyżej 7.

Z teorii wynika, że zbyt duży współczynnik szerokości funkcji radialnej, powinien zacząć wpływać negatywnie poprawność klasyfikacji sieci radialnej - będzie to dobry eksperyment do wykonania.

(17)

Rysunek 5: Wykres błędu MSE od ilości neuronów radialnych w sieci, dla SC=0.01 oraz SC = 10

Na wykresie można zauważyć, jak znacząco wpływa Spread Constant na jakość uczenia sieci.

Czerwonym kolorem oznaczono Spread Constant wynoszący 0.01, niebieskim 10.

Z powyższych wykresów, można zauważyć że współczynnik Spread Constant znacząco wpływa na proces uczenia sieci w przedziale od 0 do 3. Podkreśla to szczególnie ostatni wykres, gdzie można zauważyć że sieć z SC wynoszącym 10 i liczbą neuronów równą około 20, jest tak samo wydajna jak sieć z SC wynoszącym 0.01 i liczbą neuronów równą około 35.

(18)

Pytanie teraz brzmi, czy sieć o niskim SC i wysokim błędzie MSE, posiada będzie gorzej klasyfikowała niż sieć o wysokim SC i niskim błędzie MSE.

Jak się okazuje, jednak nie do końca. (sieć była uczona nieposortowanymi danymi)

Rysunek 6: Wykres klasyfikacji sieci względem oczekiwanej odpowiedzi

Czerwonym kolorem na wykresie, oznaczono oczekiwaną odpowiedź sieci. Kolorem niebie- skim, oznaczono sieć, której parametry są następujące: SC = 10, MN = 20, GOAL = 0.

Kolorem zielonym, oznaczono sieć, która na poprzednim wykresie miała większy błąd MSE, czyli następujące parametry: SC = 0.01, MN = 20, GOAL = 0.

Jak można zauważyć gołym okiem, sieć która wypadała wcześniej lepiej, źle oszacowała przynależ- ność ponad 20 reprezentantów - jednak jej atutem jest wysoki PK dla gatunków niedominujących w zbiorze danych.

Sprytne oko zauważy, że coś jest nie tak na osi Przypadków. Tak, do sprawdzenia klasyfikacji użyto tych samych danych co do uczenia! Można więc stwierdzić, że niebieska sieć fatalnie kla- syfikuje reprezentantów 3 gatunów.

Sieć zielona z kolei nie klasyfikuje idealnie, ale na tyle dobrze, aby poprawnie stwierdzić przyna- leżność.

(19)

Co z pozostałymi 15 przypadkami?

Odpowiedź znajduje się poniżej.

Rysunek 7: Wykres klasyfikacji sieci względem oczekiwanej odpowiedzi

Na powyższym wykresie, kolory zgadzają się z poprzednimi.

Wykres może być niepokojący, ponieważ sieć zielona zwróciła klasyfikacje negatywne.

Jest to jednak możliwe, ponieważ po sprawdzeniu wag przed ostatnim neuronem, duża część z nich jest ujemna. Z kolei wszystkie wagi sieci niebieskiej są pozytywne.

Znając więc teorię, można stwierdzić, że takie odpowiedzi są możliwe.

Niestety dla danych testowych, sieć zielona nie wypadła już tak dobrze jak wcześniej. Sklasyfi- kowała ona poprawnie 8 z 15 przypadków, których wcześniej nigdy nie widziała.

Sieć niebieska, poprawnie sklasyfikowała 6 z 15 przypadków, rozpoznając przy tym tylko 3 ga- tunki.

(20)

4.4 Eksperyment drugi

Ostatni wykres z poprzedniego eksperymentu wyjątkowo mnie zaintrygował, w celu poszukiwa- nia przyczyny takiego klasyfikowania.

Na pierwszą myśl przypadł parametr, który wymagał normalizacji. Był to parametr legs, który opisywał ilość nóg danego zwierzęcia.

Usunięto ten parametr z przypadków uczących. Teraz żaden parametr nie wymaga normalizacji.

Parametry uczenia sieci pozostają identyczne jak w poprzednim eksperymencie.

Rysunek 8: Wykres powierzchniowy dla błędu MSE w zależności od ilości neuronów radialnych i współczynnika SC

Na pierwszy rzut oka, wykres nie różni się za bardzo od poprzedniego. Jednak po dokład- niejszym przyglądnięciu się powierzchni, zauważyć można, że dla jednego neuronu i wartości SC równej blisko zera, MSE wynosi 3,5 a nie 4 jak to było w pierwszym eksperymencie. Powierzchnia również wydaje się być mniej postrzępiona dla SC równego 2.

(21)

Rysunek 9: Wykres współczynnika poprawności klasyfikacji od współczynnika Spread Constant, dla sieci które osiągnęły swój cel

Na powyższym wykresie, widać wpływ usunięcia parametru legs na poprawność klasyfikacji od Spread Constant. Anomalii występuje zdecydowanie mniej, w szczególności dla wyższych wartości Spread Constant. Jednak ani jedna sieć, nie uzyskała stu procentowej klasyfikacji.

Stwierdzić więc można, że prawdopodobnie usunięto decydujący parametr o przynależności do klasy.

(22)

Rysunek 10: Wykres błędu MSE od ilości neuronów radialnych w sieci, dla SC=0.01 oraz SC = 10

Na wykresie można zauważyć, że sieć osiągała bardziej satysfakcjonujący cel dla mniejszej liczby neuronów, w przeciwieństwie do poprzedniego eksperymentu, przede wszystkim dla sieci której współczynnik Spread Constant wynosi 0.01.

(23)

Rysunek 11: Wykres klasyfikacji sieci względem oczekiwanej odpowiedzi

Przypominając, czerwonym kolorem na wykresie, oznaczono oczekiwaną odpowiedź sieci. Ko- lorem niebieskim, oznaczono sieć, której parametry są następujące: SC = 10, MN = 20, GOAL

= 0. Kolorem zielonym, oznaczono sieć, która na poprzednim wykresie miała większy błąd MSE, czyli następujące parametry: SC = 0.01, MN = 20, GOAL = 0.

Jak można zauważyć wynik jest zaskakujący. Sieć niebieska która nie była skora do współ- pracy, nagle zaczęła dużo lepiej klasyfikować reprezentantów drugiej klasy. Niestety straciła wła- ściwości prawie idealnej klasyfikacji dla reprezentantów klas od 4 do 7.

Sieć zielona z kolei niezbyt bardzo zmieniła swój bieg na wykresie.

Na zabiegu usunięcia jednego atrybutu ze zbioru danych, skorzystała do tej pory najlepiej sieć nie- bieska.

(24)

Otrzymany wykres dla pozostałych 15 przypadków testujących, jest najbardziej zaskakujący.

Rysunek 12: Wykres klasyfikacji sieci względem oczekiwanej odpowiedzi

Sieć niebieska, względem sieci niebieskiej z poprzedniego eksperymentu, stała się bardziej elastyczna. Sklasyfikowała poprawnie tyle samo przypadków co wcześniej, jednak więcej ich było dla reprezentantów wyższych klas.

Sieć zielona, skorzystała najlepiej podczas wykonywania tego eksperymentu. Sklasyfikowała po- prawnie 14 z 15 przypadków testowych.

Ujemną odpowiedź sieci, uzyskano tylko dla jednego przypadku, którego wartość nie jest aż tak mała jak wcześniej.

Po sprawdzeniu wag siei zielonej i skorelowaniu ich z poprzednimi wagami, zauważyć można, że nie są one tak bardzo zróżnicowane - jak to miało miejsce wcześniej.

W sieci zielonej, najbardziej uległy zmianie końcowe wagi. Jednak ani jedna z nich nie przyjęła wartości mniejszej od zera.

Zatem można dojść do wniosku, że sieć uczona danymi, które przyjmują wartości 1 lub 0, jest bardziej efektowna podczas testowania sieci, których Spread Constant jest mały, jednak nasza sieć ani razu nie osiągnie stu procentowej poprawności klasyfikacji.

(25)

5 Podsumowanie projektu

Celem projektu było zapoznanie się z tematyką sztucznej inte- ligencji. Podczas projektu należało się przede wszystkim zapoznać z teoretycznymi aspektami sieci neuronowych. Nie było to łatwe zadanie, ze względu na olbrzymią sferę jaką pokrywa ta tematyka. Istnieje wiele metod projektowania sieci, oraz źródeł do pobierania nauki, co powo- duje dodatkową trudność w wykonaniu projektu. Po przeglądnięciu dosłownie wszystkich książek nt. sztucznej inteligencji, dostępnych w bibliotece, poruszających temat sieci RBF, ukończono pomyślnie ten projekt.

Do zrealizowania radialnej sieci neuronowej, klasyfikującej gatunki zwierząt użyto dwóch wersji środowiska Matlab: Matlab2018b oraz Matlab2019a. Obydwa środowiska były zainstalowane na dwóch róż- nych systemach operacyjnych: MacOS oraz Windows 10. Jednak róż- norodność środowisk nie spowodowała żadnych widocznych różnic cza- sów nauczania sieci. Wykonane eksperymenty oraz przedstawiona ana- liza otrzymanych wykresów, pozwoliły na dokładne zbadanie wpływu parametrów Spread Constant oraz maksymalnej liczby neuronów na uczenie sieci. Z każdym nowym analizowanym wykresem, sieci neu- ronowe coraz bardziej zaczęły mnie ciekawić - co było, mam nadzieje, również oczekiwane podczas realizacji tego projektu.

Przypadkiem okazało się, że usunięcie jednego wyróżniającego się

atrybutu z zestawu danych, przyczynia się do zmniejszenia współczyn-

nika poprawności klasyfikacji poniżej 100% dla nauczonych 1000 sieci

neuronowych. Jednak usunięcie tego atrybutu, poprawiło poprawność

klasyfikacji testowanego zbioru danych z 53% do 93%! Można zatem

bezapelacyjnie stwierdzić, że zabieg ten miał pozytywny wpływ na

otrzymany model sieci.

(26)

Literatura

[1] Statsoft: Internetowy Podręcznik Statystyki. Kraków, 2006. Do- stępne na:

https://www.statsoft.pl/textbook/stneunet.html#radial (dostęp: 6 czerwca 2018).

[2] Rutkowski L.: Metody i techniki sztucznej inteligencji. Wydawnic- two naukowe PWN, Warszawa, 2012.

[3] Tadeusiewicz R., Szaleniec M.: Leksykon Sieci Neuronowych. Wy- dawnictwo Fundacji "Projekt Nauka", Wrocław, 2015.

[4] Osowski S.: Sieci Neuronowe w ujęciu algorytmicznym. Wydawnic- two Naukowo Techniczne, Warszawa, 1996.

[5] Osowski S.: Sieci Neuronowe do przetwarzania informacji. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2000.

[6] Zajdel R.: Materiały pomocniczne do przedmiotu Sztuczna Inteli- gencja. Dostępne na

http://materialy.prz-rzeszow.pl/\pracownik/pliki/34/

sztuczna-inteligencja-cw6-model-neuronu.pdf (dostęp: 8

czerwca 2018).

Cytaty

Powiązane dokumenty

Dla dodatniej liczby naturalnej n znaleźć wzór na największą potęgę liczby pierwszej p dzielącą n!4. Rozłożyć na czynniki pierwsze

Ponieważ wszystkie wnioski PA s¸ a spełnione w (N, +, ·, &lt;, 0, 1), powyższe oznacza, że T h(N ) składa si¸e ze wszystkich wniosków

Weźmy algorytm, A, powiedzmy, za każdym razem, gdy porównuje on dwa elementy, to łączymy

Na podstawie obserwacji obliczono prawdopodobieństwo p=0,1 że któryś komputerów w czasie zajęć jest wolny (równe dla wszystkich pięciu

Tolerancja jest logicznym następstwem przyjętego stanowiska normatywnego, jeśli to stanowisko obejmuje jedno z poniższych przekonań: (1) co najmniej dwa systemy wartości

Pokazać, że zbiorem wartości tej funkcji jest przedział ]1, 2]..

Ka˙zdy element zbioru F ma tylko jeden element

Dow´ od: Wystarczy poda´ c przyk lad elementu w R[X] dla kt´orego nie istnieje element odwrotny.. W´ owczas, X nie ma elementu odwrotnego i R[X] nie jest