Wybrane możliwości zastosowań sieci neuronowych i programu STATISTICA Neural Networks
dr Paweł Lula
Akademia Ekonomiczna w Krakowie

Spis treści:

Problemy regresyjne
Klasyfikacja wzorcowa
Klasyfikacja bezwzorcowa


Celem opracowania jest prezentacja przykładowych zastosowań sieci neuronowych. W kolejnych punktach zaprezentowano trzy rodzaje problemów i sposoby ich rozwiązania przy pomocy modeli neuronowych. Do omawianych zagadnień zaliczono problemy regresyjne oraz zagadnienia klasyfikacji wzorcowej i bezwzorcowej.

Wszystkie opisywane modele neuronowe skonstruowano przy pomocy programu STATISTICA Neural Networks. W trakcie zapoznawania się z przedstawionym materiałem należy pamiętać, że zaprezentowane tutaj rozwiązania mają wyłącznie charakter przykładów służących do pokazania wybranych aspektów zastosowań sieci neuronowych i nie poruszają wielu istotnych problemów pojawiających się w trakcie konstrukcji sieci. Przedstawione rozwiązania prezentują również tylko niewielką część możliwości oferowanych przez program STATISTICA Neural Networks.


Problemy regresyjne

Uwaga badacza rozwiązującego problem regresyjny skupiona jest zdefiniowanie formalnego sposobu opisu zależności istniejące w świecie rzeczywistym. Skonstruowany model powinien reprezentować rzeczywiste związki istniejące pomiędzy zestawem zmiennych wejściowych (objaśniających) a zestawem zmiennych wyjściowych (objaśnianych). W większości metod przyjmuje się istnienie pojedynczej zmiennej objaśnianej. Zmienna objaśniana ma charakter ilościowy. Dopuszcza się stosowanie ilościowych bądź jakościowych zmiennych objaśniających.

Przedstawienie problemu
Rozważanym problem jest badanie zależności pomiędzy zestawem zmiennych charakteryzującym rynek nieruchomości a wartością nieruchomości. W bieżącym punkcie omówiono zagadnienia związane z budową, weryfikacją i możliwościami aplikacyjnymi sieci neuronowych wykorzystywanych do opisu zależności istniejących na rozwiniętych rynkach nieruchomości.

Dane wykorzystane w trakcie prac związanych z budową modelu uzyskano w trakcie Spisu Powszechnego przeprowadzonego w Stanach Zjednoczonych w 1970 roku. Wykorzystane w trakcie badań wartości są wartościami uśrednionymi wyznaczonymi dla każdego z 506 obszarów spisowych, na jakie podzielony był Boston w trakcie spisu.

Jako zmienną objaśnianą przyjęto:

Wszystkie przyjęte zmienne mają charakter numeryczny.

Konstrukcja regresyjnego modelu neuronowego
Dostępny zbiór danych (składający się z 506 przypadków, z których każdy odpowiadał jednemu obszarowi spisowymi) podzielono w sposób losowy na trzy zbiory: uczący (406 obserwacji), walidacyjny (50 obserwacji) oraz testowy (50 obserwacji). Fragment arkusza danych programu STATISTICA Neural Networks przedstawia rys. 1.


Rys. 1. Zbiór danych wykorzystywany w trakcie badań zależności występujących na rynku nieruchomości w USA

Przystępując do prac związanych z konstrukcją modelu opisującego zależność istniejącą pomiędzy trzynastoma zmiennymi objaśniającymi i pojedynczą zmienną objaśnianą należy w pierwszej kolejności zbadać przydatność neuronowego modelu liniowego, będącego odpowiednikiem liniowej funkcji regresji. Za konstrukcją takiego modelu przemawiają następujące przesłanki: Chcąc skonstruować model liniowy wybieramy opcje File / New / Network. Operacja ta spowoduje wyświetlenie okna Create Network (rys. 2), w którym wybieramy liniowy typ sieci (na rozwijanej liście Type wybieramy wartość Linear). Po zmianie typu sieci program STATISTICA Neural Network automatycznie określi wartości wszystkich pozostałych parametrów.


Rys. 2. Okno Create Network w trakcie tworzenia sieci liniowej

Zauważmy, że sieć liniowa nie posiada warstw ukrytych. Przyjęta przez program liczba neuronów w warstwie wejściowej (wynosząca 13) jest równa liczbie zmiennych wejściowych - każdej zmiennej odpowiadać będzie jeden neuron odpowiedzialny za wprowadzenie do sieci w odpowiedni sposób przekształconych wartości zmiennej. Pojedynczy neuron znaj-dujący się w warstwie wyjściowej odpowiada zmiennej. W arkuszu znajdującym się w dolnym, lewym narożniku okna użytkownik definiuje sposób przekształcenia wartości zmiennych, którym podlegają one przed właściwym przetworzeniem przez sieć neuronową (czyli na etapie preprocessingu). Zaproponowana przez program metoda wstępnego przetworzenia danych polega na zastosowaniu funkcji Minimax odpowiedzialnej za liniowe przeskalowanie wartości zmiennej do zadanego przedziału (domyślnie jest to przedział [0; 1]).


Rys. 3. Schemat utworzonej liniowej sieci neuronowej

Utworzenie sieci następuje po wciśnięciu przycisku Create. Powstały model (rys. 3) prezentowany jest w oknie Network Illustration.

W przypadku korzystania z sieci liniowej nie występują żadne trudności z określeniem jej struktury. Posiada ona zawsze dwie warstwy (wejściową i wyjściową), w których liczba neuronów jest ściśle zdeterminowana przez liczbę zmiennych wejściowych i wyjściowych. Również uczenie sieci liniowej jest zadaniem stosunkowo prostym. Wykorzystywany jest w tym celu algorytm pseudoinwersji, który umożliwia szybkie osiągnięcie minimalnej wartości funkcji błędu. Realizacja tego algorytmu uczenia następuje po wybraniu opcji Train / Linear. W trakcie późniejszego działania sieci liniowej wartości zmiennych wejściowych poddawane są preprocessingowi (skalowanie liniowe), a następnie wprowadzane na wejścia neuronów wejściowych. Neurony te przekazują wprowadzane wartości na wejścia neuronu wyjściowego. Tam są one przemnażane przez ustalone w trakcie uczenia współczynniki wagowe i uzyskane iloczyny są sumowane. Tak wyznaczona wartość generowana jest przez neuron wyjściowy i nazywana jest poziomem aktywacji neuronu wyjściowego. Przekształcenie wartości aktywacji neuronu w wartość zmiennej objaśnianej wymaga przeprowadzenia skalowania powrotnego. Uzyskana wartość zmiennej objaśnianej prezentowana jest użytkownikowi.

Użytkownik sieci zainteresowany jest dokładnością oszacowań uzyskiwanych przy pomocy skonstruowanego modelu. Jego ocenę umożliwiają statystyki regresyjne dostępne w programie STATISTICA Neural Networks po wybraniu opcji Statistics / Regression. Okno Regression Statistics przedstawia rys. 4.


Rys. 4. Statystyki regresyjne pozwalające na ocenę liniowego modelu opisującego zależności istniejące na amerykańskim rynku nieruchomości

Mierniki określające jakość sieci wyznaczana są niezależnie dla zbioru uczącego (wartości wyświetlone w kolorze czarnym), walidacyjnego (kolor czerwony) oraz testowego (kolor niebieski). Mierniki wyznaczone na bazie zbioru uczącego pozwalają na ocenę posiadanej przez sieć zdolności do aproksymacji. Mówią one o precyzji z jaką sieć wyznaczać będzie wartość zmiennej wyjściowej dla wektorów wejściowych prezentowanych w trakcie uczenia. Zwykle użytkownik znacznie większą wagę przywiązuje do poprawności działania sieci dla takich wektorów wejściowych, które nie były prezentowane w trakcie uczenia. Umiejętność prawidłowego działania sieci dla danych spoza zbioru uczącego nazywana jest zdolnością do generalizacji. Ocenę tej właściwości sieci umożliwiają mierniki wyznaczone na podstawie zbioru testowego. Zbiór walidacyjny stanowi podstawę do obliczenia mierników jakości służących do monitorowania przebiegu procesu uczenia (pozwala m.in. na identyfikację przeuczenia sieci /zmniejszanie się zdolności do generalizacji, któremu towarzyszy wzrost zdolności do aproksymacji/).

W kolejnych wierszach arkusza zawierającego statystyki regresyjne wyświetlone zostają następuje wartości:

Oceniając model regresyjny szczególną uwagę należy zwrócić na dwa spośród powyżej przedstawionych mierników: Wyznaczone dla sieci liniowej wartości obu mierników wskazują, że skonstruowany model opisuje w sposób bardzo niedoskonały zależność zachodzącą pomiędzy trzynastoma zmiennymi objaśniającymi i zmienną objaśnianą. Można wnioskować, że istniejąca zależność ma w rzeczywistości charakter nieliniowy.

Konstrukcja neuronowego modelu nieliniowego jest procesem znacznie bardziej złożonym niż proces budowy sieci o charakterze liniowym. Konstruując nieliniowy model regresyjny badacz musi podjąć kilka bardzo ważnych decyzji:

Program STATISTICA Neural Networks pozwala na realizacji obu metod konstrukcji sieci neuronowych.

Decydując się na pierwszy sposób wybieramy opcje File/New/Network i w wyświetlonym oknie Create Network określamy rodzaj sieci i jej topologię. W omawianym przykładzie zdecydujemy się na perceptron wielowarstwowy posiadający łącznie trzy warstwy, z których środkowa (czyli warstwa ukryta) posiada pięć neuronów.


Rys. 5. Okno Create Network w chwili tworzenia sieci perceptronowej

Powyższy rysunek przedstawia wartości parametrów służące do utworzenia takiej sieci.

W celu utworzenia nowej sieci po określeniu wartości wymaganych parametrów należy kliknąć na przycisku Create. Powstałą sieć przedstawia rys. 6.


Rys. 6. Sieć typu perceptron wielowarstwowy posiadająca jedną warstwę ukrytą z pięcioma neuronami

Uczenie sieci perceptronowej ma charakter iteracyjny, co oznacza, że w kolejnych iteracjach (tzw. epokach uczenia) wagi i progi modyfikowane są w taki sposób, aby zmniejszyć wartość sumarycznego błędu sieci. Proces uczenia możemy obserwować na wykresie błędu sieci, który dostępny jest po wybraniu opcji Statistics / Training Graph. Okno służące do prezentacji błędu przedstawia rys. 7.


Rys. 7. Wykres błędu uczenia sieci

Algorytmy uczenia właściwe do treningu skonstruowanej sieci możemy wybrać w menu Train / Multilayer Perceptron. Spośród sześciu dostępnych metod wybierzemy algorytm Levenberga - Marquardta, który pozwala zwykle na osiągnięcie najlepszych wyników w przypadku uczenia niewielkich sieci. Istotną zaletą wybranego algorytmu jest brak parametrów o wartościach określanych przez użytkownika. W oknie wyświetlonym po wybraniu algorytmu Levenberga - Marquardta użytkownik musi tylko zdefiniować liczbę realizowanych epok uczenia (rys. 8).


Rys. 8. Okno pozwalające na przeprowadzenie uczenia metodą Levenberga-Marquardta

W opisywanym przykładzie zdecydowano się na wykonanie 500 epok. Uczenie rozpoczyna się po kliknięciu na przycisku Train. Po wykonaniu każdej epoki uaktualniany jest wykres błędu sieci, na którym prezentowana jest aktualna wartość błędu wyznaczonego na podstawie zbioru uczącego i zbioru walidacyjnego. Proces uczenia na komputerze wyposażonym w procesor Celeron 400 MHz trwał 2 minuty i 49 sekund. Uzyskany w trakcie uczenia wykres błędu przedstawia rys. 9.


Rys. 9. Wykres błędu uczenia uzyskany w trakcie uczenia metodą Levenberga-Marquardta

Prezentowany w programie STATISTICA Neural Networks wykres błędu uczenia pozwala na wizualne sprawdzenie sposobu kształtowania się błędu sieci obliczonego na podstawie zbioru uczącego i zbioru walidacyjnego. Widzimy, iż w trakcie obliczeń wartość błędu wyznaczonego dla zbioru uczącego zmniejsza się. Jednocześnie daje się zauważyć niewielki wzrost wartości błędu wyznaczonego na podstawie zbioru walidacyjnego. Może to świadczyć o wystąpieniu przeuczenia sieci. Chcąc sprawdzić nasilenie zjawiska przeuczenia sieci oraz przeprowadzić ocenę uzyskanego modelu należy posłużyć się wyznaczonymi w tym przypadku statystykami regresyjnymi (rys. 10).


Rys. 10. Statystyki regresyjne wyznaczone dla sieci perceptronowej

Chcąc dokonać oceny uzyskanego modelu neuronowego możemy porównać wartości uzyskanych mierników z analogicznymi wskaźnikami wyznaczonymi dla sieci liniowej. Wartości mierników S.D. Ratio oraz Correlation dla obu typów sieci zestawiono w tabeli 1.


Tabela 1. Mierniki jakości wyznaczone dla sieci liniowej i perceptronu wielowarstwowego

Analizując dane zawarte w tabeli 1 możemy stwierdzić, że: W porównaniu z siecią liniową nie uzyskaliśmy poprawy - wprawdzie sieć perceptronowa lepiej dopasowała się do danych uczących, ale równocześnie posiada ona gorsze zdolności generalizujące. Taki sposób działania modelu nieliniowego może wynikać z różnych przyczyn. Do najważniejszych z nich zależałoby zaliczyć: Aby uniknąć przedstawionych powyżej problemów należy zastosować drugą z wymienionych wcześniej metod konstrukcji modelu neuronowego. Jak już wspomniano polega ona na testowaniu wielu, różnych architektur sieciowych i wybraniu najlepszego rozwiązania. W programie STATISTICA Neural Networks bardzo czasochłonny proces poszukiwań właściwej sieci może być przeprowadzony automatycznie przez dostępny moduł Intelligent Problem Solver. Korzystanie z modułu jest niezwykle proste - użytkownik musi jedynie odpowiedzieć na kilka pytań związanych z rozwiązywanym problemem, a następnie tylko oczekiwać na dostarczone przez program wyniki. Najważniejsze pytania zadawane przez program określają: W wyniku realizacji trwającego trzydzieści minut procesu poszukiwań zawężonego do sieci typu MLP (perceptrony wielowarstwowe) program zaproponował sieć o ośmiu neuronach ukrytych. Najistotniejsze statystyki regresyjne wyznaczone dla tej sieci przedstawia rys. 16.


Rys. 16. Wybrane statystyki regresyjne wyznaczone dla sieci skonstruowanej przez moduł Intelligent Problem Solver

Również te wyniki zostały porównane z miernikami wyznaczonymi dla sieci liniowej. Odpowiednie zestawienie znajduje się w tabeli 2.


Tabela 2. Porównanie mierników charakteryzujących jakość sieci liniowej i perceptronowej zaprojektowanej przez moduł Intelligent Problem Solver

W tym przypadku wszystkie mierniki wyznaczone dla sieci perceptronowej są lepsze od odpowiadających im wartości charakteryzujących sieć liniową. Uzyskany model może posłużyć do badania prawidłowości charakteryzujących rynek nieruchomości.

Możliwości zastosowań skonstruowanego regresyjnego modelu neuronowego
Program STATISTICA Neural Networks dostarcza szereg narzędzi pozwalających na uruchomienie skonstruowanych sieci i na analizę uzyskanych wyników. Skonstruowany model może być wykorzystany na wiele różnych sposobów. Do najczęściej stosowanych metod wykorzystania skonstruowanych sieci należy zaliczyć:

Kolumny w arkuszu odpowiadają kolejnym zmiennym wejściowym modelu. Pierwsze trzy wiersze (dane wyświetlane w kolorze czarnym) wyznaczane są na podstawie zbioru uczącego, zaś trzy następne (kolor czerwony) na podstawie zbioru walidacyjnego. W wierszu Error odczytać można sumaryczny błąd sieci po usunięciu ze zbioru danych wejściowych zmiennej odpowiadającej danej kolumnie. Uzyskaną w ten sposób wartość błędu porównać można z błędem sieci posiadającej pełny zestaw zmiennych wejściowych (wartość błędu tego typu dla zbioru uczącego i zbioru walidacyjnego wyświetlana jest w górnej części okna). Przyjmuje się, że dana zmienna objaśniająca jest tym ważniejsza, im większy jest wzrost wartości błędu spowodowany jej usunięciem. Wiersz Rank zawiera numery porządkowe zmiennych uporządkowanych ze względu na ich ważność. W wierszu Ratio odczytać można iloraz błędu uzyskanego po usunięciu wybranej zmiennej objaśniającej i błędu uzyskanego przy pomocy sieci posiadającej wszystkie zmienne objaśniające.

Z poziomu okna Sensitivity Analysis możemy również wyłączyć z dalszej analizy najmniej znaczące zmienne. W tym celu należy określić w polu Threshold wartość progową ilorazu błędów (wiersz Ratio) i wybrać przycisk Prune. W wyniku tej operacji wszystkie zmienne, dla których wartość ilorazu błędów jest mniejsza od przyjętej wartości progowej, zostaną wyłączone z dalszej analizy (program nada im charakter zmiennych nieuwzględnionych).

Powrót do spisu treści


Klasyfikacja wzorcowa

Zagadnienie klasyfikacji wzorcowej polega na przypisaniu każdego badanego obiektu (zjawiska) do jednej z klas - przy czym liczba i charakterystyki klas znane są przed rozpoczęciem realizacji zadania. System realizujący zadanie tego typu powinien otrzymywać na wejściu wartości zmiennych opisujących badane obiekty, zaś na jego wyjściu oczekiwany jest numer (identyfikator, etykieta) klasy.

Klasyfikacja wzorcowa może być z powodzeniem realizowane przez sieć neuronową. Wśród sieci dostępnych w programie STATISTICA Neural Networks zadanie tego typu może realizować sieć liniowa, perceptron wielowarstwowy, sieć o radialnych funkcjach bazowych oraz probabilistyczna sieć neuronowa.

Charakterystyka problemu
Celem konstruowanego klasyfikatora neuronowego jest stworzenie narzędzia pozwalającego na przypisanie senatorów amerykańskich do jednej z dwóch klas - głosujących za oraz przeciw odwołaniu prezydenta Clintona w głosowaniu, które odbyło się w Senacie USA 12 lutego 1999 roku.

Analizowany zbiór danych składa się ze stu rekordów (odpowiadających poszczególnym senatorom). Zawarte w nim informacje dotyczą oskarżenia prezydenta Clintona o krzywoprzysięstwo. Fragment arkusza danych przygotowanego w programie STATISTICA Neural Networks przedstawia rys. 24.


Rys. 24. Dane prezentujące sposób głosowania senatorów amerykańskich w sprawie dotyczącej oskarżenia prezydenta Clintona o krzywoprzysięstwo

W charakterze nazw obiektów przyjęto nazwisko senatora (jeśli zachodziła taka potrzeba to zostało ono skrócone do ośmiu znaków).

Każdy z senatorów charakteryzowany jest przez wartości następujących zmiennych objaśniających (wejściowych) - w edytorze danych ich nazwy wyświetlane są w kolorze czarnym:

Dostępny zbiór danych podzielono w sposób losowy na trzy zbiory: zbiór uczący (70 rekordów, wartości wyświetlane w kolorze czarnym), zbiór walidacyjny (15 rekordów; wartości wyświetlane w kolorze czerwonym) oraz zbiór testowy (15 rekordów; wartości wyświetlane w kolorze niebieskim).

Budowa modelu
Podobnie jak w przypadku zagadnień regresyjnych poszukiwania właściwej sieci rozwiązującej zagadnienie klasyfikacyjne należy rozpocząć od modelu liniowego. Nawet jeśli rozwiązanie zagadnienia przy pomocy sieci tego typu nie będzie możliwe, to model liniowy stanowić będzie punkt odniesienia przydatny przy ocenie jakości konstruowanych modeli nieliniowych.

Mając przygotowany zbiór z danymi konstrukcja modelu liniowego wymaga wybrania opcji File / New / Network. W wyświetlonym oknie Create Network (rys. 25) wybieramy liniowy (Linear) typ sieci. Sieć zostanie utworzona po kliknięciu na przycisku Create.


Rys. 25. Okno Create Network pozwalające na utworzenie sieci liniowej rozwiązującej omawiany problem klasyfikacyjny

Utworzona sieć zostanie zaprezentowana w oknie Network Illustration (rys. 26).


Rys. 26. Schemat utworzonej sieci liniowej

W tym miejscu warto wyjaśnić w jaki sposób sieć neuronowa realizuje zagadnienie klasyfikacji. Neurony znajdujące się w warstwie wejściowej służą do wprowadzenie do sieci danych charakteryzujących poszczególnych senatorów. Na wejścia wprowadzane są w odpowiedni sposób przekształcone wartości zmiennych wejściowych. Zastosowany sposób przekształcenia danych wejściowych uzależniony jest od charakteru poszczególnych zmiennych wejściowych.

Zmienne numeryczne (KONSER, WYB_C_96, MANDAT) są skalowane liniowo (zwykle do przedziału [0; 1] - po dokonaniu takiego przekształcenia wartości maksymalnej zmiennej odpowiada jedynka, wartości minimalnej odpowiada zero, a pozostałym wartościom odpowiednie liczba znajdująca się pomiędzy zerem i jedynką). Wartości przeskalowane wprowadzane są na wejścia sieci.

Dwustanowe zmienne nominalne reprezentowane są zwykle przy pomocy pojedynczego neuronu. Jednej wartości zmiennej nominalnej odpowiada wartość zero, zaś drugiej wartość jeden. Na przykład jeśli dla danego senatora zmienna PARTIA przyjmuje wartość Rep, to na wejście sieci wprowadzana jest wartość zero, zaś jeśli zmienna ta przyjmuje wartość Dem, to na wejście sieci wprowadzane zostaje wartość jeden.

Wprowadzone na wejścia sieci sygnały wejściowe docierają do neuronu wyjściowego. Neuron ten agreguje uzyskane dane i wytwarza sygnał wyjściowy, który ma informować o przynależności obiektu do jednej z dwóch klas. Wyjściową wartość numeryczną należy przekształcić w identyfikator klasy (wartość NW lub W zmiennej WERDYKT). Sposób przekształcenia określony jest przy pomocy parametrów nazywanych poziomem akceptacji (Accept) oraz poziomem odrzucenia (Reject) i odbywa się zgodnie z następującymi regułami:

Wartości wspomnianych parametrów możemy zmienić w oknie dostępnym po wybraniu opcji: Edit - Pre/Post Processing (rys. 27):


Rys. 27. Fragment okna Pre-Post Processing Editor pozwalającego m.in. na zmianę wartości poziomu akceptacji i poziomu odrzucenia

Dla tworzonej sieci klasyfikującej ustalono następujące wartości tych parametrów: Uwaga: Parametr określający typ wyjścia (Output Type) powinien przyjąć domyślną wartość Confidence (Poziom ufności).

Po określeniu wartości poziomu akceptacji i poziomu odrzucenia możemy rozpocząć uczenie sieci. Realizacja tego procesu w przypadku sieci liniowej jest bardzo prosta. Wystarczy wybrać opcje Train / Linear.

Sprawdzenie poprawności działania sieci umożliwiają nam statystyki klasyfikacyjne (dostępne po wybraniu opcji Statistics / Classification). Okno prezentujące wartości statystyk klasyfikacyjnych przedstawia rys. 28.


Rys. 28. Statystyki klasyfikacyjne pozwalające na ocenę uzyskanego modelu

Uzyskana tablica podzielona jest na trzy części (każda z nich składa się z dwóch kolumn). Części te zawierają wyniki wyznaczone odpowiednio dla zbioru uczącego (kolor czarny), walidacyjnego (kolor czerwony) i testowego (kolor niebieski). Obiekty (senatorowie) wchodzące w skład każdego zbioru podzielono na dwie klasy (w zależności od rzeczywistego sposobu głosowania danego senatora). Klasa NW obejmuje tych senatorów, którzy uznali, że prezydent Clinton jest niewinny, zaś do klasy W zaliczeni zostali ci, którzy w głosowaniu wyrazili swoje przekonanie o winie prezydenta. Informacje na temat każdej grupy przedstawiono w kolejnych wierszach tabeli. Znaczenie poszczególnych wierszy jest następujące: Analiza zawartości tablicy wskazuje, że sieć liniowa nie jest w stanie rozwiązać zadany problem, gdyż dla przypadków wchodzących w skład zbioru uczącego 3 razy podała błędny wynik i aż 21 razy była niezdecydowana.

Uzyskane wyniki wskazują na potrzebę poszukiwania innego modelu klasyfikacyjnego. W celu znalezienia lepszego rozwiązania posłużono się modułem Intelligent Problem Solver, który w większości przypadków jest w stanie w skuteczny sposób przeprowadzić proces poszukiwania odpowiedniego modelu.

W trakcie konwersacji z systemem Intelligent Problem Solver określono najważniejsze parametry sterujące procesem poszukiwań. Między innymi określono zakres poszukiwań - założono, że rozpatrywane będą cztery typy sieci: sieć liniowa, probabilistyczna sieć neuronowa, sieć o radialnych funkcjach bazowych oraz perceptron o jednej warstwie ukrytej (rys. 29).


Rys. 29. Określenie zakresu poszukiwań realizowanych przez moduł Intelligent Problem Solver

W praktyce rozwiązania uzyskane przy pomocy modułu Intelligent Problem Solver przewyższają zwykle swoją jakością sieci zaprojektowane i przetestowane bezpośrednio przez człowieka. Jest to związane z dużą szybkością działania modułu. Poszukując sieć rozwiązującą omawiany problem moduł Intelligent Problem Solver w ciągu jednej godziny działania przetestował 1540 różnych sieci. Szybkość działania człowieka jest znacznie mniejsza.

Najlepsze spośród znalezionych przez moduł rozwiązań dopisywane są do aktualnego zbioru sieci (rys. 30). W trakcie późniejszych prac badacz będzie mógł je dokładnie przeanalizować.


Rys. 30. Zbiór sieci w programie STATISTICA Neural Networks

Najlepszą siecią uzyskaną w trakcie poszukiwań jest perceptron posiadający trzy neurony ukryte. Schemat tej sieci przedstawia rys. 31.


Rys. 31. Najlepsza sieć skonstruowana przez moduł Intelligent Problem Solver

Mierniki jakości wyznaczone dla tego modelu przedstawia tabela 3.


Tabela 3. Mierniki jakości wyznaczone dla perceptronu wielowarstwowego skonstruowanego przez moduł Intelligent Problem Solver

Analizowana sieć nie popełniła żadnego błędu w trakcie klasyfikacji. W zbiorze uczącym w pięciu przypadkach nie potrafi dać odpowiedzi. W zbiorze walidacyjnym i testowym wszystkie obiekty zostały zaklasyfikowane prawidłowo.

Intelligent Problem Solver dostarcza dobrych rozwiązań, ale nigdy nie ma gwarancji że są to rozwiązania najlepsze. Również w opisywanym przypadku badacz może polepszyć uzyskane rezultaty przeprowadzając douczanie uzyskanej sieci. Do realizacji dodatkowego treningu sieci wybrano algorytm Levenberga-Marquardta. Ilustrujący przebieg uczenia wykres błędu sieci przedstawia rys. 32.


Rys. 32. Wykres błędu uczenia uzyskany w trakcie douczania sieci klasyfikującej

Analiza wzrokowa uzyskanego w trakcie uczenia wykresu błędu sieci wskazuje na zwiększenie poprawności działania sieci. Po zakończeniu uczenia sprawdzono jakość sieci przy pomocy statystyk klasyfikacyjnych (tabela 4).

Zauważamy, że wszystkie przypadki zostały zaklasyfikowane prawidłowo. Skonstruowana sieć dla każdego senatora prawidłowo określiła sposób jego głosowania w sprawie dotyczącej krzywoprzysięstwa prezydenta Clintona.


Tabela 4. Statystyki klasyfikacyjne uzyskane po zakończeniu douczania sieci

Możliwości zastosowań modelu klasyfikacyjnego
Uzyskany model pozwala na prognozowanie sposobu głosowania senatora na podstawie wartości zmiennych objaśniających. Podobnie jak w przypadku problemów regresyjnych prognozy mogą być wyznaczane dla wszystkich przypadków wchodzących w skład zbioru danych, dla wybranego przypadku bądź też dla wprowadzonych z klawiatury dowolnych wartości zmiennych objaśnianych. Istnieje również możliwość wizualizacji uzyskanych wyników.

Model neuronowy pozwala również uszeregować według ważności przyjęte zmienne objaśniające. Podobnie jak w przypadku modeli regresyjnych analiza tego typu może zostać przeprowadzona przy pomocy analizy wrażliwości. Wyniki uzyskane w trakcie jej realizacji prezentuje tabela 5.


Tabela 5. Wyniki analizy wrażliwości wykonanej dla modelu klasyfikacyjnego

Uzyskane wyniki wskazują, że największy wpływ na decyzję senatorów miał stopień ich konserwatyzmu.

Powrót do spisu treści


Klasyfikacja bezwzorcowa

Metody klasyfikacji bezwzorcowej służą do podziału badanego zbioru obiektów na jednorodne podzbiory. Cechą różnicującą metody klasyfikacji bezwzorcowej od metod klasyfikacji wzorcowej jest to, że w przypadku tych pierwszych przed rozpoczęciem badań nie są znane wzorce klas. Klasyfikacja bezwzorcowa służy przede wszystkim do badania struktury analizowanej zbiorowości.

Charakterystyka problemu
Celem opisanych badań jest analiza ryzyka związanego z inwestowaniem w wybranych 52 krajach świata. Każdy kraj opisany został jest przez 23 zmienne charakteryzujące jego rozwój gospodarczy, sytuację na rynkach finansowych oraz sytuację polityczną. Dokładny opis badań znaleźć można w artykule Global Investing: The Game of Risk opublikowanym na łamach The Wall Street Journal 26 czerwca 1997 roku.

Fragment arkusza z danymi przedstawia rys. 33.


Rys. 33. Fragment arkusza zawierającego dane opisujące badane kraje

Zmienne opisujące badane kraje oznaczono symbolami od VAR1 do VAR23. Symbole krajów wykorzystano w charakterze nazw przypadków.

Składający się z 52 elementów zbiór obiektów podzielono na dwie części: zbiór uczący (50 elementów) i zbiór testowy (2 elementy). Do zbioru testowego w sposób arbitralny zaliczono Polskę oraz Rosję.

W skład zbioru z danymi wchodziły 23 zmienne objaśniające oraz jedna zmienna objaśniana (oznaczona symbolem VAR24), której wartością jest kod kraju (rys. 34). Zmienna ta nie będzie wykorzystywana bezpośrednio w trakcie uczenia, a jedynie służyć będzie do opisu powstałych grup.


Rys. 34. Zmienna objaśniana w zbiorze danych

Konstrukcja sieci Kohonena
Jednym z najważniejszych modeli neuronowym realizujących klasyfikację bezwzorcową jest sieć Kohonena. Narzędzie tego typu wykorzystano w trakcie badania struktury badanego zbioru krajów. Utworzenie sieci Kohonena w programie STATISTICA Neural Networks jest bardzo proste. Po wybraniu opcji File / New / Network należy w oknie Create Network określić rodzaj sieci wybierając na liście Type wartość Kohonen. Sieć Kohonena składa się z dwóch warstw - z warstwy wejściowej, w której liczba neuronów zdeterminowana jest przez strukturę zbioru danych oraz warstwy wyjściowej, w której liczba neuronów określana jest przez użytkownika. Okno Create Network w trakcie tworzenia sieci Kohonena przedstawia rys. 35.


Rys. 35. Okno Create Network w trakcie tworzenia sieci Kohonena

W omawianym przykładzie zastosowano sieć posiadającą 64 neurony w warstwie wyjściowej. W polu znajdującym się na prawo od pola zawierającego liczbę neuronów wyjściowych użytkownik określa szerokość warstwy wyjściowej (parametr Width) (rys. 36).


Rys. 36. Fragment okna Create Network pozwalający na określenie szerokości warstwy wyjściowej w sieci Kohonena

Zdefiniowanie szerokości równej 8 powoduje, że neurony wyjściowe rozmieszczone zostaną w komórkach kwadratowej siatki o boku równym 8. Utworzenie sieci następuje po kliknięciu na przycisku Create. Schemat utworzonej sieci przedstawia rys. 37.


Rys. 37. Schemat utworzonej sieci Kohonena

Na rys. 37 widoczna jest specyficzna dla sieci Kohonena struktura warstwy wyjściowej. Wchodzące w jej skład neurony rozmieszczone są na płaszczyźnie. Takie ułożenie neuronów wyjściowych pozwoli na prezentację zależności zachodzących pomiędzy badanymi obiektami.

Uczenie sieci Kohonena przeprowadzane jest w trybie bez nauczyciela, co oznacza, że wykorzystywane będą wyłącznie wartości zmiennych wejściowych. Uczenie rozpoczyna się od losowej inicjalizacji wag neuronów wyjściowych. Następnie na wejścia sieci wprowadzane będą wartości zmiennych objaśniających opisujących kolejne obiekty i w każdym przypadku zostanie wyszukany taki neuron wyjściowy, którego wagi będą w największym stopniu zbliżone do wektora wartości wejściowych (neuron ten nazywany jest neuronem zwycięskim). Po wyznaczeniu neuronu zwycięskiego jego wagi zostaną tak zmodyfikowane, aby upodobnić się do wektora wejściowego. W podobny sposób uaktualnione zostaną wagi neuronów sąsiadujących z neuronem zwycięskim. Wielokrotnie powtarzana procedura uczenia doprowadzi do powstania modelu pełniącego funkcję mapy topologicznej, która pozwala na badanie zależności pomiędzy badanymi obiektami. Mianowicie, im bardzie dwa obiekty będą do siebie podobne, to tym bliżej siebie znajdować się będą odpowiadające im neurony wchodzące w skład mapy topologicznej.

W celu uruchomienia algorytmu uczenia sieci Kohonena wybieramy opcje Train / Kohonen. Wyświetlone zostanie wówczas okno pozwalające na zdefiniowanie wartości parametrów sterujących treningiem (rys. 38).


Rys. 38. Okno pozwalające na przeprowadzenie uczenia sieci Kohonena

Czas trwania uczenia określany jest przez liczbę epok. Współczynnik uczenia odpowiedzialny jest za sposób modyfikacji wag neuronów. Duże wartości tego parametru powodują szybką modyfikację wartości współczynników wagowych. Przy małym współczynniku uczenia sieć uczy się powoli, ale dokonywane zmiany są bardzo precyzyjne. Promień sąsiedztwa określa wielkość obszaru otaczającego neuron zwycięski i zawierającego poddawane modyfikacji neurony.

Zwykle zaleca się, aby uczenie sieci Kohonena realizować w dwóch fazach. W trakcie pierwszej fazy uczenia wartości współczynnika uczenia i promienia sąsiedztwa powinny zmniejszać się w kolejnych epokach. W drugiej fazie uczenia współczynnik uczenia powinien przyjąć niewielką wartość dodatnią, zaś promień sąsiedztwa powinien wynosić 0 (co powoduje, że w trakcie uczenia modyfikowane są tylko wagi neuronu zwycięskiego).

Możliwości zastosowań sieci Kohonena
Podobnie jak inne typy sieci również sieć Kohonena może zostać uruchomiona dla całego zbioru danych, dla wybranego przypadku i dla dowolnych danych wejściowych. Uzyskane wyniki program STATISTICA Neural Networks może przedstawić w postaci tekstowej w arkuszu wynikowym lub też w postaci wykresu mapy topologicznej. Moduł odpowiedzialny za prezentację graficzną (dostępny po wybraniu opcji (Run / Topological Map) wyświetla tworzącą mapę warstwę wyjściową sieci, pozwala na identyfikację neuronu zwycięskiego i monitorowanie wartości poziomów aktywacji neuronów wyjściowych. Wykres mapy topologicznej przedstawia rys. 39.

Po wybraniu przypadku (pole Case No) i kliknięciu na przycisku Run następuje uruchomienie sieci i wyznaczenie neuronu zwycięskiego (zostaje on otoczony ramką). Stopień wypełnienia kwadratów symbolizujących neurony jest proporcjonalny do podobieństwa wektora wejściowego i wektora wag neuronów wyjściowych. Obserwując wzajemne położenie neuronów zwycięskich odpowiadających kolejnym przypadkom można wnioskować o zależności zachodzącej pomiędzy obiektami powodującymi ich aktywację.


Rys. 39. Mapa topologiczna

Chcąc uzyskać informacje dotyczące neuronów zwycięskich dla każdego obiektu wchodzącego w skład zbioru danych należy uruchomić sieć dla całego zbioru danych (Run /Data Set), pamiętając o nadaniu opcji Output Shown wartości Winner. Arkusz zawierający numery neuronów zwycięskich przedstawia rys. 40.


Rys. 40. Numery neuronów zwycięskich odpowiadających kolejnym obiektom wchodzącym w skład zbioru danych

Rozmieszczenie neuronów zwycięskich odpowiadających poszczególnym krajom przedstawia tabela 6.

Przedstawiona mapa pozwala na identyfikację zależności zachodzących pomiędzy badanymi krajami. Grupa najlepiej rozwiniętych krajów lokuje się po prawej stronie mapy. Górna część mapy odpowiada rozwiniętym krajom azjatyckim. Kraje najsłabiej rozwinięte zajmują dolną część mapy.

Utworzona na bazie zbioru uczącego sieć Kohonena może być przydatna do oceny nowych obiektów, nie prezentowanych w czasie uczenia. W omawianym przykładzie zbiór obiektów tego typu składa się z dwóch krajów: Polski i Rosji. Rozmieszczenie neuronów zwycięskich odpowiadających tych krajom wskazuje, że w 1997 roku poziom ryzyka związany z inwestowaniem w obu krajach był zbliżony. Sytuacja w Polsce była zbliżona do sytuacji w Nigerii. Natomiast kraje należącej do tej samej grupy co Rosja to Egipt, Maroko oraz Zimbabwe.


Tabela 6. Struktura badanego zbioru krajów uzyskana przy pomocy mapy Kohonena

Powrót do spisu treści

Poprzedni artykuł     Następny artykuł