Symulator sztucznych sieci neuronowych samouczek Sztuczna Inteligencja
|
|
- Ryszard Kowalczyk
- 9 lat temu
- Przeglądów:
Transkrypt
1 Każdą analizę rozpoczynamy od otwarcia pliku danych (można, oczywiście utworzyć nowy plik w ST Neural Networks, jednak, najczęściej mamy już dane, w formacie STATISTICA lub jakimś innym). Sieci neuronowe używane są do przewidywania wartości zmiennych wyjściowych (zależnych) na podstawie zmiennych wejściowych (zmiennych niezależnych). Stosownie do typu zmiennej wyjściowej, czy jest ona nominalna (jej wartością jest jedna z kilku kategorii) czy liczbowa, sieć neuronowa wykona klasyfikację (przyporządkowanie kategorii) lub regresję (poda wartość liczbową, przewidywaną dla zmiennej zależnej). Pewnymi, statystycznymi ekwiwalentami dla sieci neuronowych są: regresja logistyczna, dla klasyfikacji i regresja liniowa najmniejszych kwadratów dla przypadku regresji. Metody te mogą być równoważne pewnym prostym formom sieci neuronowych, mogą one być wykonywane w ST Neural Networks. Regresja logistyczna bazuje na założeniu normalności rozkładu klas i jednorodności macierzy kowariancji. Regresja liniowa, natomiast wymaga liniowej zależności pomiędzy zmiennymi wyjściowymi a wejściowymi oraz zakłada gaussowskie zaburzenie zmiennych wyjściowych. Gdy założenia te nie są spełnione, co jest częstym przypadkiem, sieci neuronowe dają dokładniejsze przewidywania. Plik danych, do wykorzystania w programie, powinien więc mieć pewną liczbę zmiennych, w kolumnach i pewną liczbę przypadków, w wierszach. Wczytywać można dane pochodzące z wielu różnych źródeł, najprościej ze STATISTICA jednak również, na przykład z plików tekstowych w formacie CSV, z rozdzielaniem przecinkami, powszechnie stosowanym przy wymianie danych między programami. W szczególności Excel może zapisać dane w tym formacie. Poniższy przykład polegał będzie, właśnie na wczytaniu pliku CSV. Okno Otwórz zbiór danych pojawia się automatycznie, po uruchomieniu ST Neural Networks, można je też wywołać z menu Plik / Otwórz... Wybierzmy Pliki typu: Rozdzielane przecinkami (*.csv). Znajdźmy plik BAROTROP (znajdujący się w katalogu Snn/Examples), zaznaczmy go i kliknijmy Otwórz. ST Neural Networks wyświetli okno Import plików tekstowych, które pomoże wykonać całą operację. Można tu wybrać znak separatora (zwykle rozpoznawany automatycznie), ciąg znaków na oznaczenia braku danych a także podać, czy plik danych zawiera, w pierwszym wierszu nazwy zmiennych oraz, w pierwszej kolumnie nazwy przypadków. W oknie widoczna jest próbka arkusza danych, z kilkoma pierwszymi wierszami i kolumnami. Strona 1 z 11
2 Sprawdźmy, że jako separator wybrany jest przecinek, że etykietami kolumn są nazwy zmiennych DŁUGOŚĆ i SZEROK a etykietami wierszy numery przypadków (01, 02), i kliknijmy Otwórz. ST Neural Networks przechowuje w pliku danych pewne dodatkowe informacje, o podziale przypadków na uczące, walidacyjne i testowe, i o zmiennych nominalnych. Informacja ta nie będzie, w sposób pewny i niezawodny przechowywana w plikach tekstowych. Warto więc zachować dane w formacie STATISTICA, co też ST Neural Networks zasugeruje, wyświetlając stosowny komunikat z ofertą zapisania danych w odpowiedniejszym formacie. Kliknijmy więc OK. Tak więc, plik danych jest otwarty a jednocześnie jest zachowany w formacie odpowiednim dla ST Neural Networks. Dane powinny zostać wyświetlone w oknie Edytor zbioru danych, przysłoniętym, być może częściowo oknem Automatycznego projektanta, który będzie opisany w następnym przykładzie. W następującym przykładzie wykorzystamy do budowy sieci Automatycznego projektanta w wersji podstawowej. Otwarty wcześniej plik danych zawiera dane o dwóch typach burz; barycznych i tropikalnych. Jest to zmodyfikowana wersja danych z pracy: Elsner, Lehmiller i Kimberlain (1996). Zapisany jest typ burzy i jej współrzędne geograficzne. Będziemy chcieli przewidywać typ burzy (jej klasyfikację) na podstawie jej współrzędnych geograficznych. Jest to prosty problem nieliniowy, pozwoli on dobrze zilustrować możliwości ST Neural Networks. KORZYSTANIE Z AUTOMATYCZNEGO PROJEKTANTA W WERSJI PODSTAWOWEJ Pierwsze okno Automatycznego projektanta oferuje wybór wersji. Wybierzmy wersję Podstawową i kliknijmy Dalej. Kolejne okno, Rodzaj problemu, pozwala wybrać problem standardowy lub szeregi czasowe. Pierwszy dotyczy niezależnych przypadków, których kolejność nie ma znaczenia, w drugim mamy do czynienia z uporządkowaną sekwencją przypadków, gdzie będziemy chcieli prognozować przyszłe wartości na podstawie dotychczasowych wartości danej zmiennej lub innych zmiennych. Strona 2 z 11
3 Wybierzmy problem Standardowy i kliknijmy Dalej. Pojawi się okno Wybór zmiennych wyjściowych, gdzie należy wybrać zmienną zależną, tj. tą, której wartości będą przewidywane na podstawie znanych wartości zmiennych niezależnych. W bieżącym przykładzie będzie to zmienna KLASA, zawierająca klasyfikację burz. Wybierzmy tą zmienną (zapewne będzie ona już wybrana, jako że ST Neural Networks "domyśla" się że ostatnia ze zmiennych jest zmienną zależną) i kliknijmy Dalej. Okno Wybór zmiennych wejściowych pozwala wybrać zmienne wejściowe, na podstawie których dokonywane będzie przewidywanie wartości zmiennej zależnej (zmienne te nazywane są też niezależnymi). Ponieważ nie zawsze mamy pewność czy wszystkie zmienne mają jakąś wartość dla przewidywania zmiennej zależnej, warto by zaznaczone było pole wyboru Szukaj optymalnego podzbioru wybranych zmiennych. Automatyczny projektant sprawdzi wybrane zmienne pod względem ich przydatności, określając, których użyć. Zmienne niezaznaczone przez użytkownika w ogóle nie są brane pod uwagę. Wybierzmy obie zmienne; DŁUGOŚĆ i SZEROKOŚĆ (geograficzne) i sprawdźmy czy załączone jest Szukanie optymalnego podzbioru. Podobnie jak poprzednio, obie zmienne powinny być wcześniej zaznaczone, jako że ST Neural Networks zakłada, że wszystkie zmienne powinny być wykorzystane. Klikamy Dalej. W oknie Długość cyklu projektowania możemy określić czas, jaki Automatyczny projektant ma poświęcić na zaprojektowanie efektywnej sieci neuronowej dla naszego zagadnienia. Na ogół, im dłużej Automatyczny projektant będzie pracował, tym lepsze będą efekty. Ponieważ jednak Automatyczny projektant informuje na bieżąco o każdym poprawieniu wyniku, możemy zaplanować mu długi czas, a w pewnym momencie przerwać jego pracę (naciskając klawisz ESCAPE), jeśli nie widać postępów. Czas można określić ogólnikowo, jako Krótki, Średni lub Długi, co może być bardzo względne, dla dużego zbioru danych i nawet Krótki może oznaczać znaczącą chwilę. Można też dokładnie określić czas, podając liczbę godzin i minut. W każdym razie, można być pewnym, że ST Neural Networks używa algorytmów należących do najbardziej zaawansowanych, znanych sposobów uczenia sieci, działających nawet stukrotnie szybciej od algorytmu wstecznej propagacji błędu, stosowanego w większości pakietów uczących sieci neuronowe. Warto też zaznaczyć, że, o ile uczenie sieci trwa długo to jej używanie jest niezwykle szybkie. Wybierzmy opcję Średni i kliknijmy Dalej. Okno Zapisywanie sieci pozwala zadecydować o liczbie sieci jaką Automatyczny projektant ma zachowywać. Tworzonych i testowanych jest wiele sieci i sensowne jest zapamiętanie, nie tylko dokładnie najlepszej. Jest po temu wiele powodów. Można, na przykład chcieć porównać efektywność wielu sieci o dobrej efektywności, gdyż mogą one mieć inne ważne zalety, jak mały rozmiar, a więc i dużą szybkość, lub mniejszą liczbę zmiennych wejściowych. Domyślnie ST Neural Networks zachowuje pewien zakres sieci różnych typów i o różnym stosunku dokładności (przewidywanych wartości) do złożoności sieci (liczbą neuronów ukrytych). ST Neural Networks zachowuje też, z każdym zbiorem danych Zbiór sieci. Są tam sieci związane z tym samym, konkretnym zbiorem danych. Każdą z nich można wybrać do uruchomienia. Automatyczny projektant umieści w zbiorze sieci wszystkie sieci do zachowania, co może prowadzić do szybkiego Strona 3 z 11
4 nagromadzenia się, nawet setek sieci, gdy wielokrotnie się go uruchamia. Większość z tych nagromadzonych sieci będzie mało użyteczna, jako, że następujące po nich są lepsze. Aby uchronić się przed takim nadmiarem określa się maksymalną liczbę sieci w zbiorze. Po zapełnieniu zbioru, w celu wstawienia nowej sieci ST Neural Networks usuwa najgorszą. Można też jednak wpisywać do zbioru wszystkie otrzymane sieci. Sprawdźmy, w oknie czy wybrane są: Porównuj efektywność z typem i złożonością oraz Zwiększ rozmiar zbioru sieci, i kliknijmy Dalej. Kolejne okno; Wyświetlane wyniki pozwala określić jaką informację chcemy otrzymać na ekranie po zakończeniu pracy Automatycznego projektanta. Będą to dane o najlepszej otrzymanej sieci. Opcje w tym oknie zależą od typu sieci. Sprawdźmy czy wybrane są: Arkusz z wynikami dla poszczególnych przypadków oraz Statystyki podsumowujące, i kliknijmy Zakończ. Automatyczny projektant zacznie teraz projektować sieci. Wypełniać się zacznie pasek postępu zadania (w prawym dolnym rogu głównego okna). Zegar (obok paska) zacznie odmierzać czas. Komputerowi z Pentium MMX projektowanie nie powinno zająć więcej niż minutę. W trakcie postępu procesu projektowania wyświetlane są komunikaty, pojawiają się one w oknie Automatyczny projektant - komunikaty, w dolnej części głównego okna. Najpierw Automatyczny projektant informuje o rodzaju podjętego projektu. Następnie komunikuje o kolejnych utworzonych sieciach, o ile są lepsze od poprzednich. W komunikatach podawany jest też błąd sieci (nie zajmujmy się teraz jego dokładną definicją, ważne jest to, że im mniejszy błąd tym lepiej). Przy końcu komunikatu podawana jest struktura sieci. Na przykład 2:2-10-1:1 oznacza, że sieć ma dwie zmienne wejściowe, które po preprocessingu wchodzą do sieci o trzech warstwach, gdzie pierwsza warstwa ma dwa neurony, druga, ukryta ma ich dziesięć a na wyjściu, po postprocessingu mamy jedną zmienną. Na końcu procesu poszukiwania sieci Automatyczny projektant podaje ile przetestował sieci, ile z nich zachował (zgodnie z tym co podano w oknie Zapisywanie sieci) i jaka jest efektywność najlepszej znalezionej sieci. Przy czym, uwagi o efektywności należy traktować z rezerwą, gdyż czasem osiągnięcie współczynnika poprawnych klasyfikacji równego 0.31 może być sukcesem, jeśli inne techniki dają zaledwie, np Jakie wielkości są podawane w komunikacie zależy od typu problemu. W tym przykładzie są to: współczynnik poprawnych klasyfikacji i pole pod krzywą ROC (patrz niżej). Najważniejszy jest tu współczynnik poprawnych klasyfikacji, powinien on wynosić 1.0, wskazując, że Automatyczny projektant znalazł rozwiązanie doskonałe. Wszystkie zachowane sieci są umieszczone w zbiorze sieci i wybrana jest najlepsza z nich. Automatyczny projektant wyświetla dwa okna wyników, zgodnie z ustawieniem w oknie Wyświetlane wyniki. Oba dotyczą najlepszej, aktualnie wybranej sieci. INTERPRETACJA STATYSTYK KLASYFIKACYJNYCH Strona 4 z 11
5 U góry głównego okna programu znajduje się okno wyników Statystyki dla problemów klasyfikacyjnych (które może być też przywołane z menu Statystyki / Statystyki klasyfikacyjne). Podsumowuje ono zgodność zaklasyfikowań poszczególnych przypadków. Każda kolumna odpowiada którejś z klas (typów) burz - BARO i TROP. W pierwszym wierszu podane są całkowite liczby przypadków typów burz jakie są w zbiorze danych. W drugim podana jest, dla każdej klasy liczba zgodnych przewidywań. W trzecim wierszu jest liczba niezgodności. Nie wykluczone, że wszystkie przypadki, w tym przykładzie, zaklasyfikowane są poprawnie. W czwartym wierszu zapisane są przypadki "nieokreślone", powinny tu być zera, do tej kwestii wrócimy przy późniejszym przykładzie z zastosowaniem Automatycznego projektanta w wersji zaawansowanej. Czwarty rząd podkreślony jest linią, która oddziela, znajdującą się poniżej tzw. macierz pomyłek. Widać tu, ile przypadków należących do konkretnych klas (kolumny) zostało przypisanych do różnych klas (wiersze). Macierz ta jest przydatna przy zagadnieniach o większej liczbie klas niż dwie. Wiersze arkusza danych podzielone są na trzy grupy, czarną, czerwoną i niebieską, odpowiadające trzem zbiorom przypadków: uczącemu, walidacyjnemu i testowemu, który to podział zostanie objaśniony dalej. Ważnym ograniczeniem metody sieci neuronowych (i związanych z nią metod nieliniowych) jest możliwość przeuczenia sieci albo nadmiernego dopasowania. Celem projektu sieci neuronowej jest znalezienie funkcji dobrze odpowiadającej nieznanej, rzeczywistej funkcji uzależniającej zmienne wyjściowe od zmiennych wejściowych. Wykonuje się to dopasowując funkcję do posiadanych punktów danych (przypadków). Jeśli jednak weźmiemy skomplikowaną funkcję o dużych krzywiznach, to zachodzi obawa, że dopasujemy się nadmiernie, ale raczej do szumu niż do rzeczywistej funkcji. Na poniższym rysunku widoczne jest dopasowanie linii regresji, w jednym wymiarze. Zapewne lepsza byłaby znacznie mniej skomplikowana krzywa, nawet jeśliby nie przechodziła tak dokładnie przez punkty danych. Lepsza w sensie precyzji przewidywania wartości dla nowych punktów. Najbardziej pożądaną własnością sieci neuronowych jest właśnie jej właściwe zachowanie się dla nowych danych, jest to urzeczywistnienie idei generalizacji wiedzy. Jak jednak przekonać się, czy sieć ma tą pożądaną cechę? Trzeba zarezerwować część danych dla wykonania tzw. próby krzyżowej, czyli walidacji sieci. Robi się to w dwóch etapach. Po pierwsze, w procesie uczenia sieci, w miarę komplikowania funkcji można sprawdzać sieć na danych walidacyjnych by zatrzymać uczenie, gdy walidacja zaczyna wypadać coraz gorzej. Po drugie, gdy mamy już wiele sieci, nie należy ich porównywać na podstawie zgodności przewidywań dla danych uczących, ze względu na możliwość przeuczenia i "za dobrego" dopasowania, a właśnie dla nowych danych, czyli danych walidacyjnych. Używając metody walidacji sieci, natknąć się można na inny problem. Mianowicie, gdy porównuje się wiele sieci i znajduje się jedną, o najmniejszych odchyłkach przy walidacji, to zachodzi podejrzenie, że jest to przypadkowe trafienie. Sieć ta może nie mieć rzeczywistych własności generalizacyjnych, a jedynie być bardzo dobrą dla tego zbioru przypadków walidacyjnych. Tak więc, rezerwuje się jeszcze jeden podzbiór danych, podzbiór testowy, który jest używany wyłącznie na zakończenie procesu projektowania sieci, dla sprawdzenia realności niskiego błędu dla podzbioru walidacyjnego. Sieć o dobrych własnościach generalizacyjnych powinna dać podobne błędy przy testowaniu i walidacji. Strona 5 z 11
6 Automatyczny projektant w wersji podstawowej przypisuje losowo przypadki do zbioru uczącego, walidacyjnego i testowego. Wszystkie statystyki podawane są z podziałem na te trzy podzbiory. Czarny kolor czcionki zawsze odpowiada zbiorowi uczącemu, czerwony walidacyjnemu a niebieski testowemu. Domyślnie, przypadki dzielone są w proporcjach 2:1:1, co w naszym przypadku oznacza 50 przypadków do uczenia sieci, 25 do walidacji i 25 do testowania. Jeśli efektywność sieci jest podobna dla wszystkich trzech podzbiorów przypadków, i jednocześnie jest doskonała lub prawie doskonała, to sieć rzeczywiście dobrze generalizuje pewien zasób wiedzy. Zamknijmy okno Statystyki dla problemów klasyfikacyjnych i zajmijmy się zawartością okna Uruchom dla zbioru danych. URUCHAMIANIE SIECI NEURONOWEJ W oknie Uruchom dla zbioru danych zawarte są przewidywania wykonane przez sieć neuronową. Okno to można wywołać z menu Uruchom / Zbiór danych. W pierwszej kolumnie umieszczona jest przewidywana przez sieć przynależność do klasy, w drugiej jest rzeczywista klasa, wg danych, trzecia kolumna zawiera ocenę zgodności klasyfikacji (w tym prostym przypadku są dwie możliwości Poprawnie i Błędnie). Przypadki oznaczone są kolorami; czarnym, czerwonym lub niebieskim, wskazującymi na przynależność do podzbiorów, odpowiednio, uczącego, walidacyjnego i testowego. W górnej części okna podane są błędy dla każdego podzbioru. Jeśli są one zbliżone, można przypuszczać, że nie doszło do przeuczenia sieci. W lewym górnym rogu okna znajduje się rozwijalna lista Pokaż, pozwalająca wybrać typ informacji do wyświetlenia. W bieżącym przykładzie sens mają jedynie opcje Zmienne wyjściowe i Aktywacje. Domyślna opcja Zmienne wyjściowe wyświetla przewidywania wykonane przez sieć neuronową, czyli przynależność burzy do typu BARO albo TROP. Ponieważ sieć neuronowa działa wyłącznie na liczbach, to końcowy wynik otrzymywany jest za pomocą wbudowanej funkcji postprocessingu, towarzyszącej każdej sieci w ST Neural Networks. Przypisanie klasy wynika z porównania poziomu aktywacji neuronu wyjściowego z wartościami pewnych progów ufności, ustalonych przez Automatycznego projektanta. Opcja Aktywacje z listy Pokaż wyświetla poziomy aktywacji neuronu wyjściowego (będą to liczby z przedziału od 0 do 1). Niska wartość wskazuje na klasę BARO, wysoka na TROP. Widać, że dla większości burz sieć nie ma wątpliwości co do klasyfikacji. Trzeba podkreślić, że poziom aktywacji nie jest prawdopodobieństwem (przynajmniej dla większości sieci) jakkolwiek większa wartość oznacza większą pewność. Po użyciu Automatycznego projektanta do wygenerowania sieci neuronowych, innego narzędzia użyć można do zbadania ich wydajności. Na wstępie zamknijmy okno Uruchom dla zbioru danych i okno Automatyczny projektant - komunikaty. Spójrzmy na zbiór danych, warto to zrobić za pomocą narzędzi graficznej wizualizacji, co dla dwóch zaledwie zmiennych jest dość łatwe. Przy większej liczbie zmiennych ograniczyć się trzeba do wizualizacji fragmentów zbioru danych lub pewnych rzutów przestrzeni danych. WYKREŚLANIE SKUPIEŃ PRZYPADKÓW Strona 6 z 11
7 Wybierzmy z menu Uruchom / Wykres skupień. W otrzymanym oknie można utworzyć wykresy rozrzutu dla różnorodnych wielkości. Wykreślmy tu, po prostu przypadki, używając dla każdego typu burzy (BARO i TROP) innego oznaczenia punktów, oraz zmiennych DŁUGOŚĆ i SZEROKOŚĆ jako współrzędnych na osiach x i y. Sprawdźmy, czy jako zmienna dla opcji Grupuj wg wybrana jest KLASA, jako X zmienna DŁUGOŚĆ a jako Y zmienna SZEROKOŚĆ oraz czy wszystkie trzy wielkości mają ustawioną do wyświetlenia Zmienną. Następnie kliknijmy Uaktualnij. Diagram rozrzutu powinien wyglądać jak poniżej. Rzut oka na wykres wystarcza by zrozumieć, jak możliwa jest, w tym przykładzie stuprocentowa zgodność przyporządkowania. Burze tropikalne lokują się wyraźnie w strefie średnich długości geograficznych, mniej lub bardziej niezależnie od szerokości geograficznej. Oczywiste jest, że klasy burz nie dają się rozseparować w sposób liniowy, tak więc nie zadziałałyby tu, regresja logistyczna, ani analiza dyskryminacyjna. PRZESYŁANIE WYNIKÓW DO STATISTICA Wykres można przesłać do STATISTICA, jeśli dysponuje się tym pakietem, by go tam edytować i wydrukować. Wystarczy kliknąć przycisk STATISTICA, znajdujący się w prawym górnym rogu wykresu rozrzutu, nad legendą, by otrzymać ten sam wykres w STATISTICA, która zostanie automatycznie uruchomiona, jeśli nie była uruchomiona wcześniej. Wszystkich bogatych, graficznych możliwości STATISTICA można użyć by nadać wykresowi pożądaną, ostateczną postać, tak by włączyć go do jakiegoś dokumentu w formie, w pełni nadającej się do prezentacji. Wykres można też przesłać bezpośrednio do innych programów, klikając przycisk schowka, obok przycisku STATISTICA, i korzystając z opcji Wklej specjalnie, w innym programie, by otrzymać wykres w formacie Rysunku. Wszystkie wykresy ST Neural Networks mogą być przesyłane do STATISTICA w opisany sposób. Ponadto, wszystkie arkusze danych i wyników ST Neural Networks mogą być przesłane do STATISTICA Strona 7 z 11
8 dla dalszych analizy i sporządzania wykresów. Wszystkie dane mogą też być przesyłane, w postaci liczb, do innych programów, poprzez schowek lub jako pliki ASCII, ze znakiem tabulacji jako separatorem, użyć w tym celu trzeba przycisku z dyskietką, znajdującego się na każdym wykresie i arkuszu danych. WYKREŚLANIE POWIERZCHNI ODPOWIEDZI Sieć neuronowa przewiduje klasę burzy dla każdej kombinacji szerokości i długości geograficznej. Te przewidywania można wykreślić, jako powierzchnię odpowiedzi, w trzech wymiarach, gdzie wysokość wskazywała będzie na klasę burzy. Wybierzmy z menu Uruchom / Powierzchnia odpowiedzi. Sprawdźmy, czy jako zmienna Z wybrana jest KLASA, a jako Typ wybrana jest Predykcja oraz, czy zmienne X i Y to DŁUGOŚĆ i SZEROKOŚĆ. Powierzchnia odpowiedzi może być wykreślana dla zadanych zakresów X i Y. Użyjmy pełnych zakresów zmiennych występujących w danych. W tym celu kliknijmy przycisk Zakres. Kliknijmy Rysuj aby otrzymać wykres. Powierzchnia odpowiedzi, dla średnich długości jest płaska, na wysokim poziomie, co odpowiada przewidywaniom burz w klasie Tropikalnej, niskie wartości dają przewidywanie burz Barycznych. Strona 8 z 11
9 Domyślnie, na wykresie przedstawiana jest powierzchnia odpowiedzi, gdzie poszczególne klasy odpowiadają płaskim obszarom na różnych poziomach. Można jednak też wykreślić poziom aktywacji neuronu wyjściowego ilustrujący stopień pewności, z jaką sieć neuronowa przewiduje przynależność do konkretnych klas. Aby to zobaczyć zmieńmy Typ na Aktywacja, a Warstwę na 3, i kliknijmy Rysuj. Powinniśmy zaobserwować pewne wygładzenie krawędzi płaskich powierzchni. Być może, aby dostrzec ten efekt, trzeba zwiększyć liczbę Kroków (np. do 20, najlepiej prawym klawiszem myszki) i ponownie kliknąć Rysuj, by otrzymać bardziej szczegółowy wykres. Wykres można obracać, za pomocą pasków przewijania, tak aby zobaczyć go z najlepszego punktu widzenia. WYKREŚLANIE BŁĘDÓW JEDNOSTKOWYCH Błędy sieci można przedstawić graficznie, używając opcji menu Statystyki / Błędy jednostkowe. Otrzymany wykres pokazuje błędy, w formie słupków, dla każdego przypadku. W naszym przykładzie błędy powinny być bardzo małe, ale w trudniejszych przypadkach, okno to może być przydatne do lokalizowania błędnych klasyfikacji. PRZEWIDYWANIA DLA NOWYCH DANYCH Dysponując wyuczoną siecią neuronową można wykonać przewidywanie dla zupełnie nowych danych. W ST Neural Networks można to zrobić na trzy sposoby: 1. Umieścić nowe dane w pliku zbioru danych, otworzyć dane, otworzyć zbiór sieci (Plik / Zbiór sieci / Otwórz) i uruchomić sieć (Uruchom / Zbiór danych). Nowe dane, oczywiście nie muszą zawierać znanych odpowiedzi. Sposób ten jest dobry gdy trzeba otrzymać wiele odpowiedzi. 2. Załadować i uruchomić sieć neuronową programistycznie (z własnego programu), używając SNN API (Application Programming Interface). Jest to dobra opcja, gdy chcemy "zaszyć" sieć neuronową do programu typu "czarnej skrzynki", który będzie używany przez osoby nie znające ST Neural Networks, albo w ogóle nie znające metody sieci neuronowych. Można też zrobić coś podobnego dla programów typu Excel, które wywołują funkcje API. Strona 9 z 11
10 3. Uruchomić pojedynczy, określony przez użytkownika przypadek, bezpośrednio w ST Neural Networks. Jest to opcja przydatna do sprawdzenia nowych danych. Zobaczmy tą ostatnią opcję. Wybierzmy z menu Uruchom / Przypadek chwilowy. Wyświetlone okno Uruchom dla przypadku chwilowego mieści dwa arkusze danych, do górnego wpisujemy nasz przypadek, w dolnym odczytujemy odpowiedź sieci. Wprowadźmy długość i szerokość geograficzną i naciśnijmy Uruchom. Rozwijalna lista Pokaż pozwala wybrać do wyświetlenia przewidywaną wartość zmiennej wyjściowej (klasę burzy) lub poziom aktywacji neuronu wyjściowego. ANALIZA CO JEŚLI? Często chcemy znać odpowiedź na pytanie "co jeśli?", co stanie się jeżeli zmienimy nieco dane wejściowe, jak zmieni się wynik? Na przykład, gdyby burza z przypadku 9 zdarzyła się na wyższej szerokości. ST Neural Networks oferuje kilka narzędzi do analizy typu "Co jeśli?". Wybierzmy z menu Uruchom / Pojedynczy przypadek. Pojawi się okno Uruchom dla pojedynczego przypadku. Ustawmy w nim Numer przypadku równy 9 i naciśnijmy ENTER. W arkuszu danych wejściowych wyświetlone zostaną długość i szerokość (odpowiednio, wartości: 62 i 14). Wyświetlona też jest odpowiedź sieci, tak więc podana jest kompletna informacja o przypadku 9. Teraz wywołajmy okno, którego już używaliśmy, mianowicie Uruchom dla przypadku chwilowego. Pojawią się w nim automatycznie długość i szerokość dla przypadku 9, kliknijmy Uruchom aby jeszcze raz obliczyć przewidywanie. Teraz można, w oknie Uruchom dla przypadku chwilowego eksperymentować. Zmieńmy długość na 64 i kliknijmy Uruchom. Przewidywanie powinno zmienić się z BARO na TROP. Jeśli ustawimy listę Pokaż na Aktywacje, będziemy mogli śledzić zmiany poziomu aktywacji neuronu wyjściowego, np. przy przekraczaniu płynnej granicy między dwoma klasami burz (wstawmy np. 62.5). Strona 10 z 11
11 Zmiany przewidywania można wykreślić względem zmian długości, przy stałej szerokości. Służy do tego opcja Uruchom / Wykres odpowiedzi. Sprawdźmy, w otrzymanym oknie Wykres odpowiedzi, czy Odpowiedź Y ustawiona jest na KLASA, Typ na Predykcja, a Wejście X, na DŁUGOŚĆ. Kliknijmy przyciski Zakres i Rysuj. Wykres ilustruje wpływ zmiany długości geograficznej dla przypadku wybranego w oknie Uruchom dla przypadku chwilowego. Aby sprawdzić efekt zmiany długości dla różnych szerokości trzeba wrócić do okna Uruchom dla przypadku chwilowego, ustawić żądaną szerokość i ponownie wykreślić Wykres odpowiedzi. Zmieńmy Typ na Aktywacje i Warstwę na 3, zobaczymy wtedy poziom aktywacji neuronu wyjściowego, który decyduje o przewidywaniu, po przyrównaniu go do wartości progowej. Wartości liczbowe poziomów aktywacji otrzymujemy klikając przycisk Dane. Jeśli chcemy przeprowadzić podobnego typu analizę "co jeśli", dla problemów o większej liczbie zmiennych wejściowych niż dwie, możemy użyć powierzchni odpowiedzi. Ponieważ doszliśmy do końca przeglądu okien statystyk i testowania sieci, naciśnijmy CTRL+L. Ten skrót zamyka wszystkie okna poza edytorem zbioru danych, edytorem zbioru sieci i rysunkiem schematu sieci. Strona 11 z 11