ALGORYTMY SZTUCZNEJ INTELIGENCJI Sieci neuronowe 06.12.2014 Krzysztof Salamon 1 Wstęp Sprawozdanie to dotyczy ćwiczeń z zakresu sieci neuronowych realizowanym na przedmiocie: Algorytmy Sztucznej Inteligencji. Wykonane zadanie dotyczyło zbudowania w programie Statistica odpowiedniej sieci neuronowej, służącej do klasyfikacji. Wykorzystywanym zbiorem danych był zbiór IrisSNN (posiadający 150 obserwacji), który zawierał 5 atrybutów: długość działki, szerokość działki, długość płatka, szerokość płatka oraz odmiana – opisująca gatunek irysa. Dodatkowym atrybutem w zbiorze był NNSET który posłużył do rozdzielenia danych na zbiór uczący i walidacyjny. Po zbudowaniu odpowiedniej sieci neuronowej wygenerowano 5 modeli, z czego 3 zostały wybrane. Podczas analizy modeli wykorzystałem narzędzia takie jak: macierz pomyłek, wykres – ramka-wąsy (dla atrybutu długość płatka) predykcja. 2 Tworzenie sieci neuronowej W tym rozdziale opisane zostało przygotowanie sieci neuronowej, której zadaniem była klasyfikacja danych wejściowych. 2.1 Wybór zadania dla sieci neuronowej Pierwszym krokiem wymaganym do realizacji zadania był wybór zadania dla sieci neuronowej - w tym celu należało zaznaczyć klasyfikację w polu „nowa analiza”. Rysunek 1 Wybór zadania sieci neuronowej 2.2 Definicja zmiennych Dla tworzonej sieci neuronowej należało sprecyzować zmienne wejścia oraz zmienną wyjściową. Statistica umożliwia taką czynność w zakładce Podstawowe, w której można wybrać również sposób tworzenia modeli – zaznaczono opcję „projekt sieci użytkownika”. W przypadku zestawu danych IrisSNN jako zmienne wejściowe (ilościowe) wybrano 4 atrybuty: długość działki, szerokość działki, długość płatka, szerokość płatka. Natomiast jako zmienną wyjściową oznaczono atrybut odmiana. Rysunek 2 Wybór zmiennych 2.3 Wybór podzbiorów Kolejnym krokiem był wybór podzbiorów – uczącego oraz walidacyjnego. Zbiór danych IrisSNN posiadał atrybut NNSET który definiował podział danych na próby. W tym celu w zakładce „wybór podzbiorów” zaznaczono Identyfikator grupy, który umożliwia zdefiniowanie grupy uczącej/walidującej na podstawie wartości danego atrybutu. Elementami zbioru uczącego zostały wszystkie wiersze posiadające w kolumnie NNSET wartość UCZĄCY. Elementami próby walidacyjnej zostały wszystkie wiersze posiadające w kolumnie NNSET wartość WALIDACYJNY. Rysunek 3 Podział na próby: uczącą i walidacyjną 2.4 Określenie podstawowych cech sieci Dla tworzonej sieci neuronowej wybrano typ - „perceptron wielowarstwowy”. Jako funkcję błędu sieci określono sumę kwadratów, funkcją aktywacji neuronów ukrytych została funkcja: tangens hiperboliczny, natomiast funkcją aktywacji neuronów wyjściowych -funkcja liniowa. Liczba wygenerowanych sieci została ustawiona na 5, a liczba neutronów w warstwie ukrytej na 6. Rysunek 4 Konfiguracja sieci neuronowych 3 Wynik uczenia W tym rozdziale prezentuje wynik uczenia sieci neuronowych, ich analizę oraz graficzną interpretację sieci. 3.1 Wybór modeli sieci neuronowej Po wygenerowaniu 5 sieci, na podstawie jakości próby walidacyjnej, wybrano trzy najlepsze: • 2 sieć - MLP463 o jakości=97,142857 • 4 sieć - MLP463 o jakości=94,285714 • 5 sieć - MLP463 o jakości=94,285714 Rysunek 5 Wybrane sieci neuronowe 3.2 Graficzny model sieci neuronowej Model sieci neuronowej przedstawia się następująco: Rysunek 6 Graficzny model sieci neuronowej 3.3 Analiza sieci neuronowych – macierz pomyłek Po wygenerowaniu macierzy pomyłek, można stwierdzić, że optymalną siecią dla zbioru walidacyjnego była sieć nr 2. Dla odmiany Setosa, sieć nie popełniła żadnego błędu dla 23 prób. Dla odmiany Versicol, sieć pomyliła się raz, a 23 zestawy danych zaklasyfikowało poprawnie – to daje poprawność dla tej odmiany w wysokości 95,83333%, sieć pomyliła się w 4,166667 przypadków. Sieć raz pomyliła się również dla odmiany Virginic - na 23 próby, co daje poprawność równą 95,65217%, błędnie zaklasyfikowała 4,34783%. Łącznie, dla wszystkich odmian poprawność sieci wyniosła 97,14286% (błędne 2,85714%), czyli na 70 przypadków poprawnie sklasyfikowała 68 zestawów danych. Poprawność klasyfikacji 4 sieci dla wszystkich odmian wynosi 94,28571% (błędne 5,71429) - na 70 przypadków 66 zaklasyfikowano poprawnie, a 4 źle. Patrząc pod kątem odmiany Setosa poprawnych klasyfikacji było 22 z 23, co dało poprawność wynoszącą 95,6522. Dla odmiany Versicol sieć pomyliła się dwukrotnie – niepoprawnie sklasyfikowano 8,3333%, natomiast 22 sklasyfikowano poprawnie – 91,66667%. Sieć nr 4 sklasyfikowała 22 z 23 (poprawność: 95,65217%) przypadków poprawnie dla odmiany Virginic. Ostatnia wybrana przeze mnie sieć bezbłędnie sklasyfikowała zestawy danych dla odmiany Setosa. Dla odmiany Versicol poprawność wyniosła 91,66667% (22 na 24 poprawne), pomyliła się natomiast w 8,33333% klasyfikacji. Sieć dla odmiany Virginic pomyliła się dwukrotnie na 23 próby, co daje poprawność klasyfikacji na poziomie 91,30435% (błędnie zaklasyfikowano 8,69565%). Dla wszystkich odmian łącznie, sieć numer 5 zaklasyfikowała poprawnie 66 z 70 zestawów danych, czyli poprawność klasyfikacji wynosi 94,28571% (błąd 5,71429%). Rysunek 7 Macierz pomyłek 3.4 Analiza sieci neuronowych – predykcja Na podstawie dwóch wybranych błędnych klasyfikacji (przedstawionych na rysunku 8) można stwierdzić, że dla 71 zestawu danych, błąd popełniły sieci 4 i 5 – zamiast odmiany Versicol, sklasyfikowały dane do odmiany Virginic. Dla wiersza 84, wszystkie sieci popełniły błąd klasyfikacji, zamiast odmiany Versicol zaklasyfikowały dane do klasy Virginic. Podsumowując predykcję można stwierdzić, że sieć: • 2.MLP 4-6-3 pomyliła się dwukrotnie, w pierwszym przypadku zamiast zakwalifikować dane do zbioru Versicol zakwalifikowała do zbioru Virginic, w drugim z kolei sieć zakwalifikowała dane do zbioru Virginic, choć prawidłową klasą była Versicol; • 4.MLP 4-6-3 pomyliła się czterokrotnie, z czego raz zamiast wybrać klasę Setosa, zakwalifikowano dane do klasy Versical, sieć 2 razy błędnie zakwalifikowała dane do klasy Virginic – zamiast Versical . Ostatnią pomyłką sieci było zakwalifikowanie danych do Versicol zamiast Virginic; • 5.MLP 4-6-3 pomyliła się czterokrotnie, sieć 2 razy błędnie zakwalifikowała dane do klasy Virginic – zamiast Versical . Pozostałe 2 pomyłki sieci wystąpiły przy sklasyfikowaniu obiektów do klasy Versicol, choć prawidłową klasą była Virginic. Rysunek 8 Arkusz predykacji 3.5 Grupowanie klas ze względu na długość płatka Po wygenerowaniu wykresu ramkowego dla długości płatka, grupowanego względem odmiany, można stwierdzić, że sprawdzany atrybut wyraźnie rozdziela odmianę Setosa od pozostałych. Dane nieodstające dla tej odmiany zawierają się pomiędzy wartościami 1,1 a 1,9, mediana wynosi 1,5. Dla odmiany Versicol wartość minimalna wynosi 3,3 (wartość odstająca 3), mediana 4,35 a wartość maksymalna 5,1. Zbiór danych dla ostatniej z badanych odmian irysów posiada medianę wynoszącą 5,55, wartość minimalną 4,5 a maksymalną równa 6,9. Z wykresu wynika, że atrybut długość płatka pozwala dobrze rozróżnić klasę Setosa od Versicol i Virginic, dzięki czemu sieci neuronowe popełniły mniej błędów klasyfikując kwiaty odmiany Setosa, niż rozróżniając od siebie odmiany Versicol i Virginic, gdzie wartości zachodzą na siebie. Rysunek 9 Wykres grupujący długość płatka względem odmiany 4 Podsumowanie Podczas realizowanych ćwiczeń zbudowano efektywne klasyfikatory odmian irysów wykorzystujące sieci neuronowe. Dla wybranego zbioru danych, w próbie walidacyjnej najlepsza sieć osiągnęła jakość wynoszącą około 97,14%, myląc się dwukrotnie na 70 przypadków. Podczas analizy danych zauważono również, jak różnice w danym atrybucie (długość płatka) mogą wpłynąć na trafność klasyfikacji - dla pokrywających się wartości klasyfikator częściej się mylił. Reasumując, sieć neuronowa jest efektywnym narzędziem klasyfikacji obiektów.