Implementacja i wykorzystanie wielowarstwowej sieci perceptronowej w modelowaniu makroekonomicznym

Wstecz
Spis treści
Strona domowa


Zakończenie

Sztuczna inteligencja stawia sobie za cel poznanie, naśladowanie i symulowanie inteligentnych przejawów ludzkiego działania. Jest ona odpowiedzią na ograniczenia tradycyjnych systemów komputerowych, których ściśle zalgorytmizowany i nacechowany matematyczną precyzją sposób przetwarzania danych nie jest w stanie poradzić sobie z pewną grupą problemów, obejmującą korzystanie z niekompletnych lub nieprecyzyjnych danych oraz konieczność działania w nowych warunkach lub w obliczu braku jasnych reguł i wskazówek. Twórcy systemów inteligentnych za wzór i punkt wyjścia stawiają sobie takie sprawności ludzkiego myślenia jak: rozpoznawanie, generalizowanie, uczenie się, przystosowanie do nowych warunków otocznia i wykorzystywanie zdobytej wiedzy w nowych okolicznościach. Inteligentne aplikacje ograniczają się z reguły do wąskiej dziedziny wiedzy lub umiejętności, a często wykraczają nawet poza czynności uchodzące za przejawy inteligencji, koncentrując się np. na sterowaniu mechaniką pojazdów bezzałogowych lub imitacji sposobów poruszania zwierząt i ludzi.

W badaniach nad sztuczną inteligencją dominują dwa kierunki. Pierwszy, nurt bioniczny, zwraca się w kierunku naśladowania struktury i funkcji ludzkiego mózgu, ujmowanych w postaci sztucznych sieci neuronowych. Drugi kierunek, pragmatyczny, koncentruje się na rozumieniu i odzwierciedleniu istoty wiedzy oraz sposobu rozumowaniu eksperta. Jego efektem są silnie wyspecjalizowanie systemy ekspertowe, operujące na jawnej reprezentacji wiedzy, najczęściej w postaci reguł i faktów. Bardzo istotnym uzupełnieniem drugiego nurtu jest zastosowanie logiki rozmytej i teorii zbiorów rozmytych, które pozwalają rozszerzyć wnioskowanie także na problemy nie mieszczące się w ramach tradycyjnej logiki dwuwartościowej. Obok podstawowych obszarów sztucznej inteligencji rozwija się także dziedzina algorytmów genetycznych, uważanych za uniwersalne narzędzie do rozwiązywania wszelkich problemów optymalizacyjnych.

Współcześnie, po okresie zastoju w latach osiemdziesiątych, ponownie dużą popularności cieszą się sztuczne sieci neuronowe. Wśród bogactwa odmian i typów struktur neuronowych wyróżniamy trzy podstawowe ich rodzaje obejmujące: wielowarstwowe sieci perceptronowe, posiadające właściwość aproksymacji każdej, dowolnie złożonej funkcji, sieci Kohenena, wykorzystywane głównie w klasyfikacji i grupowaniu danych oraz sieci rekurencyjne, czyli autoasocjacyjne, umożliwiające rozpoznawane wzorów i usuwanie zniekształceń z sygnałów wejściowych.

Sieci neuronowe doskonale nadają się do zastosowań ekonomicznych, gdzie z reguły istnieje konieczność korzystania z nielicznych, często niekompletnych zestawów danych, zniekształconych na ogół przez zaburzenia losowe. Modelowania ekonomiczne, szczególnie w skali makro, ma na celu odzwierciedlanie wycinków rzeczywistości gospodarczej pod katem wybranych cech i procesów. Badane zależności mają przy tym na ogół silnie nieliniowy charakter, a ich struktura często nie jest do końca poznana i jawna. Określanie postaci analitycznej równań modelu jest w takiej sytuacji utrudnione, a przyjęcie uproszczonych założeń odnośnie formy aproksymowanych zależności może okazać się niewystarczające. Wielowarstwowa sieć perceptronowa, czyli sieć typu MLP, ze względu na zdolność do przybliżania dowolnie nieliniowych odwzorowań, może być użyta jako alternatywna w stosunku do tradycyjnych równań matematycznych metoda budowy wspomnianych modeli. Właściwości architektury typu MLP pozwalają uniknąć opisanych trudności i prowadzą do wniosku, iż w wielu przypadkach model makroekonomiczny w wersji neuronowej może wykazywać lepsze właściwości od swojego odpowiednika w postaci równań matematycznych.

Wielowarstwowy perceptron, w porównaniu do innych typów sieci neuronowych, wydaję się być najwierniejsza kopią siedliska ludzkiej inteligencji, czyli mózgu. Jego podstawowym składnikiem jest prosty układ logiczny w formie uproszczonego, matematycznego modelu neuronu, wyposażonego w nieliniową funkcję aktywacji. Dodanie do przetwarzania wykonywanego w neuronie elementu nieliniowości jest głównym czynnikiem umożliwiającym sieci typu MLP przybliżanie dowolnie skomplikowanego odwzorowania. Neurony tworzące sieć grupowane są w warstwy, w których wyjścia neuronów warstwy wcześniejszej połączone są z wejściami neuronów warstwy następnej. Mając na względzie wygodę i przejrzystość konwencji, w pracy posłużono się podziałem struktury neuronowej na warstwę wejściową, od jednej do trzech warstw perceptronowych złożonych z neuronów podlegających uczeniu oraz warstwę wyjściową. Właściwy proces aproksymacji zadanej funkcji dokonuje się w warstwach perceptronowych, podczas gdy w warstwie wejściowej oraz wyjściowej przeprowadzana jest, o ile to konieczne, wstępna i końcowa transformacja danych.

Niezbędnym etapem budowy sieci typu MLP jest zastosowanie skutecznego algorytmu uczenia, pozwalającego na wyznaczenie odpowiednich wartości parlamentów sieci, czyli wag neuronów. Najpopularniejszą i najprostszą metodą trenowania struktury neuronowej jest algorytm wstecznej propagacji błędu, będący w istocie numeryczna procedurą optymalizacji funkcji celu, należącą do rodziny metod gradientowych. Minimalizowaną funkcją jest najczęściej miara błędu pomiędzy wartościami wyjść sieci, a dopowiadającym im wielkościami wzorcowym, w postaci błędu średniokwadratowego. Klasyczna wersja algorytmu back propagation była wielokrotnie przerabiana i poszerzana w celu podniesienia efektywności procesu uczenia i wyeliminowania wad oryginału. Najbardziej udaną i ugruntowaną modyfikacją jest momentowa metoda wstecznej propagacji błędu, uzależniająca bieżącą zmianę wag neuronów od poprawki parametrów z wcześniejszej iteracji.

Właściwości wielowarstwowej sieci perceptronowej, a szczególne uzyskanie zdolności do generalizacji przybliżanego problemu, zależą także od szeregu innych czynników obejmujących: dobór optymalnej struktury sieci, wyznaczenie odpowiednich zbiorów zmiennych wejściowych i wyjściowych oraz dysponowanie wystarczająca liczną, reprezentatywną próbką obserwacji. Spełnienie wymienionych warunków i pomyślne zakończenia procesu trenowania nie gwarantuje jednak sukcesu, ponieważ w przypadku małej liczebności zbioru treningowego oraz dużej liczby parametrów sieci, istnieje poważne ryzyko wystąpienia zjawiska przeuczenia, polegającego na dopasowaniu wag do zaburzeń jakie występują w danych i braku zdolności do uogólniania prawdziwych zależności zjawiska na obserwacje nie należące do zestawu uczącego. Zabezpieczeniem przed opisanym problemem jest zachowanie dużej przewagi w liczebności próby nad liczebnością parametrów sieci lub zastosowanie algorytmu wczesnego stopu. Niestety w przypadku pierwszego rozwiązania formułowane zalecenia mają charakter bardzo ogólny, a druga metoda wymusza podział dostępnego zestawu obserwacji, co jest często krytykowane jako nieefektywne statystycznie.

Obfitość metod trenowania, konieczność doboru optymalnych parametrów używanych mechanizmów oraz trudności jakie wynikają ze stosowania nielicznej i obciążonej zaburzeniami losowymi próby skłaniają do poszukiwania optymalnej postaci algorytmu uczenia i zaleceń odnośnie całej palety dodatkowych szczegółów zawiązanych z procesem optymalizacji. Podejmowana analiza jest szczególnie istotna w kontekście używania sieci neuronowych w modelowaniu ekonomicznym, z reguły wykorzystującym niezbyt liczne zestawy danych, których reprezentatywność i stopień zaburzenia losowego często pozostają trudne do określenia. Jako podstawę i punkt wyjścia do dalszych analiz przyjęto momentową metodę wstecznej propagacji błędu oraz algorytm wczesnego stopu jako mechanizm pozwalający unikać efektu przeuczenia sieci neuronowej.

Przeprowadzenie procesu trenowania wymaga określenia wartości szeregu parametrów, z których najważniejszymi są współczynnik uczenia i współczynnik momentu. Często sparametryzowaniu podlega także sama funkcja aktywacji neuronów, co w rozważanym przypadku oznacza możliwość modyfikowania nachylenia sigmidalnej funkcji przejścia. Analiza teoretyczna i przeprowadzony eksperyment pozwoliły na sformułowanie wniosku o możliwości zastąpienia parametru określającego stromość sigmoidy przez odpowiednią modyfikację wartości startowych wag sieci oraz standardowego współczynnika uczenia algorytmu wstecznej propagacji błędu. Oznacza to możliwość rezygnacji z nadmiarowego parametru i skoncentrowanie się na poszukiwaniu optymalnych poziomów pozostałych współczynników.

W wersji bazowej momentowej metody wstecznej propagacji błędu wartość współczynnika uczenia i momentu pozostaje stała podczas całego procesu trenowania. Rozwiązanie powyższe uznawane jest za nieefektywne, ponieważ zalecenia odnośnie optymalnych wartości omawianych parametrów są uzależnione od kształtu, jaki hiperpłaszczyzna funkcji celu przyjmuje w otoczeniu punktu wyznaczanego przez bieżący wektor wag neuronów. Jako rozwiązanie problemu proponuje się całą paletą adaptacyjnych mechanizmów dostosowania współczynników, odrębnie dla poszczególnych iteracji, a nawet wag. Zaproponowana w tekście modyfikacja klasycznego algorytmu wstecznej propagacji błędu czerpie inspirację z adaptacyjnej metody Chana i Falsidea, wykorzystującej kosinus kąta zawartego pomiędzy wektorem bieżącego gradientu, a wektorem ostatniej poprawki wag. Za główne źródło poprawy efektywności trenowania uznano jednak adaptację wartości współczynnika momentu, umożliwiającą z jednej strony nieograniczone rozpędzanie się procesu uczenia na płaskich obszarach funkcji celu, a z drugiej strony gwałtowne wyhamowanie w przypadku zmiany głównego kierunku optymalizacji lub wystąpienia zjawiska oscylacji poziomu miary błędu. Dopasowanie współczynnika uczenia ma w proponowanym rozwiązaniu znacznie drugorzędne, a modyfikowanie jego wartości startowej poziom marginalny.

Budowa sieci neuronowej, posiadającej zdolność do uniwersalnej aproksymacji dowolnej zależności, wymaga wprowadzenia do neuronów stałej wartości bias, odpowiadającej wyrazowi wolnemu w równaniu regresji. Stałe obciążenie może być jednak przeniesione do zestawu zmiennych wejściowych, umożliwiając tym samym uzyskanie sieci o większej elastyczności, bez pogarszania jednocześnie ogólnych warunków numerycznych optymalizacji i wprowadzania ograniczeń do postaci odwzorowań realizowanych przez poszczególne neurony.

Ostatnim, najbardziej problematycznym zagadnieniem związanym z uczeniem sieci jest zabezpieczenia się przed niebezpieczeństwem nadmiernego lub niedostatecznego dopasowania wag neuronów do modelowanego odwzorowania. Wykorzystanie algorytmu wczesnego stopu pozwala uniknąć zjawiska przeuczenia, wymagając jednocześnie dostarczenia dwóch reprezentatywnych podzbiorów obserwacji empirycznych. Ta niewątpliwie najlepsza metoda pominięcia zaburzeń losowych w procesie trenowania, może jednak doprowadzić, w przypadku zbyt małej liczebności próby, do potraktowania jako szumu losowego i pominięcia zbyt dużej części zmienności zmiennych wyjściowych, prowadząc tym samym do uzyskania struktury zbyt słabo dopasowanej do zależności modelowanego zagadnienia. Analizowany problem można potraktować jako konieczności nałożenia ograniczeń na kształt hiperpłaszczyzny odwzorowania realizowanego przez sieć, które nie powinno przechodzić przez każdy, zaburzony losowo punkt empiryczny, ale aproksymować warunkową wartość oczekiwaną wektora wyjść. Jako alternatywne rozwiązanie tak postawionego problemu zaproponowano wygenerowanie za pomocą interpolacji nowego zbioru sztucznych obserwacji, będących swego rodzaju uśrednieniem danych empirycznych i niwelujących wpływ obserwacji nietypowych, podejrzewanych o zawieranie silnego zaburzenia losowego. Uczenie z wykorzystaniem nowego zbioru danych interpolowanych może polegać na daleko idącym dopasowaniu wag sieci do sztucznych obserwacji, lub zastosowaniu ich razem z zestawem obserwacji empirycznych, jako jednego ze zbiorów w metodzie wczesnego stopu. Opisana obróbka danych nie dostarcza oczywiście zdanych nowych informacji o naturze modelowanego zjawiska, ale jest próbą nałożenia pewnych ograniczeń na postać odwzorowania wejść sieci neuronowej na jej wyjścia.

Zastosowanie opisanych rozwiązań w rzeczywistych obliczeniach neuronowych i ocena ich trafności w praktyce wymagały użycia odpowiedniego programu komputerowego, umożliwiającego symulowanie sieci neuronowej w pamięci komputera. W przypadku narzędziowego zastosowania struktury neuronowej istnieje prosta możliwość skorzystania ze znacznej ilości gotowych systemów komputerowych. W przypadku jednak zaproponowanych rozważań, dotyczących istoty obliczeń neuronowych, niezbędne staje się samodzielne oprogramowanie odpowiedniej aplikacji, pozwalającej na pełną swobodę w implementowaniu szczegółów wykonywanych operacji. Stworzony system komputerowy o roboczej nazwie NeuralEngine stanowi swego rodzaju silnik neuronowy, implementujący sztuczną sieć neuronową razem z algorytmami trenowania w sposób jak najbardziej uniwersalny, zarówno pod względem dowolności struktury sieci, jak i możliwości używania i rozbudowy samego programu. Aplikacja może komunikować się z użytkownikiem z poziomu wiersza poleceń, przetwarzać sekwencje komend zapisanych w pliku tekstowym, lub współpracować z innymi modułami, takimi jak np. nakładka interfejsu graficznego. Struktura sieci i zbiór uczący nie są zapisane na stałe w kodzie programu, ale znajdują się w plikach tekstowych o ustalonym formacie, których nazwy przekazywane są do programu jako parametry odpowiednich poleceń.

Mając na uwadze efektywność programowania i rozbudowy, oraz możliwość dalszego rozszerzania funkcjonalności w kierunku systemu sieciowego, postanowiono skorzystać z języka programowania zorientowanego obiektowo, jakim jest Java, oraz koncepcji wzorców projektowych, obejmujących standardowe rozwiązania typowych zadań programistycznych. Kod programu obejmuje trzy logiczne całości, z których pierwsza implementuje wyłącznie wzorzec projektowy interpretera. Jego główną funkcją jest rozpoznawanie poleceń i grupowanie przypisanych do nich parametrów, w których to zadaniach bardzo użyteczne okazało się wykorzystanie wzorców trzech rodzajów fabryk oraz drzewiastej struktury łańcucha odpowiedzialności. Po zidentyfikowaniu komend, sterownie w programie przechodzi do drugiej jego części, jaką są implementacje wzorca projektowego polecenia. Obiekty poleceń są praktycznie jedynymi miejscami w programie podejmującymi interakcję z użytkownikiem oraz systemem plików. Pomocne w tym zadaniu okazały się klasy dekoratorów, które rozszerzają na zasadzie przyrostowej możliwości wykorzystywanych strumieni wejścia i wyjścia.

Obiekty poleceń są także opakowaniem trzeciej grupy klas, koncentrującej się wyłącznie na realizacji obliczeń neuronowych. Ich głównymi elementami składowymi są obiekty neuronów i sieci neuronowych, łączące się ze sobą na zasadzie wzorca pomostu, dzięki wykorzystaniu możliwości prototypu. Główne hierarchie klas wyrastają ponadto na szkieletach implementujących podstawowy wzorzec szablonu. Mając na uwadze szybkość wykonywanych obliczeń, zestawy wag neuronów oraz wektory obserwacji zostały zaimplementowane jako wielowymiarowe tablice typów prymitywnych, co pozwoliło uniknąć korzystania z typów obiektowych. Całość aplikacji, mimo podniesienia ogólnego poziomu komplikacji i wstępnego nakładu pracy, stanowi w efekcie przejrzyste złożenie uniwersalnych elementów, łatwych do wymiany i dalszej rozbudowy.

Ostateczną weryfikacją trafności proponowanych założeń i metod obliczeń neuronowych oraz skuteczności działania zbudowanego na ich podstawie systemu komputerowego jest stworzenie i przeanalizowanie właściwości neuronowej wersji rzeczywistego modelu makroekonomicznego. Podstawą i punktem wyjścia części praktycznej stał się gotowy model gospodarki szwedzkiej o nazwie EMIL, opracowany przez Prof. Jan B. Gajdę z Uniwersytetu Łódzkiego oraz Prof. Claes-Hakan Gustafsona z Uniwersytetu Örebro. Modelowanie przy wykorzystaniu sieci neuronowych w rzeczywistości nie odbiega od podstawowych prawideł budowy modeli ekonomicznych, ograniczając się jedynie do wymiany narzędzi za pomocą których reprezentowane są zależności strukturalne pierwowzoru oraz wyznaczane parametry użytych sieci.

Pierwszy wspólny krok dla modelowania w obydwu odmianach oznacza zdefiniowanie zestawu zmiennych objaśniających i objaśnianych. Drugi etap właściwy dla tradycyjnych modeli ekonometrycznych, czyli określanie postaci analitycznej przybliżanych funkcji jest pomijany w przypadku wersji neuronowej z powodu niejawnej reprezentacji zależności w strukturze sieci oraz jej zdolności do odwzorowania dowolnie złożonej, nieliniowej funkcji. Wspomniane właściwości wykluczają ponadto możliwość analizowania sieci neuronowej pod kątem stabilności parametrów strukturalnych i wprowadzania zmiennych zero-jedynkowych w przypadku obserwacji nietypowych. Struktura neuronowa wymaga jednak wykonania dodatkowego kroku, polegającego na przeanalizowaniu danych empirycznych z punktu widzenia występowania tendencji rozwojowej, która nie jest możliwa do przybliżania za pomocą metod neuronowych. Zwieńczeniem analizy jest, o ile to konieczne, wykonanie transformacji danych usuwającej trend. Kolejny krok specyficzny dla modelu neuronowego polega na wyznaczeniu maksymalnych i minimalnych wartości dopuszczalnych zmiennych. Wyznaczone poziomy stają się następnie podstawą obliczeń jednej z głównych odmian wstępnej i końcowej transformacji danych, w postaci przeskalowania do zakresu wartości typowych dla wykorzystywanej w neuronach funkcji aktywacji. Ostatni wspólny etap modelowania oznacza ocenę dopasowania parametrów modelu do zależności oryginalnego zjawiska. W przypadku sieci neuronowych niezbędne staje się wówczas skorzystanie z osobnego zestawu obserwacji, który tylko w przypadku całkowitego wyłączenia z procesu trenowania jest w stanie dostarczyć wiarygodnych oszacowań błędu generalizacji.

Praktyczny przykład wykorzystania sieci neuronowych w aproksymowaniu zależności modelu EMIL eksperymentalnie potwierdził wyraźny wzrost efektywności procesu uczenia w przypadku zastosowania rozszerzonej wersji momentowej metody wstecznej propagacji błędu, w której zaproponowano adaptacyjny mechanizm modyfikacji wartości współczynników uczenia i momentu, wykorzystujący właściwości kosinusa kąta zawartego pomiędzy wektorem gradientu funkcji celu, a wektorem ostatniej poprawki wag.

Stworzenie neuronowej wersji makroekonomicznego modelu EMIL było także okazją do porównania wszystkich zaproponowanych metod generowania, podziału i wykorzystania danych podczas trenowania. Ogólny poziom błędów okazał się względnie porównywalny we wszystkich odmianach algorytmu uczenia. Najlepsze rezultaty, przejawiające się w minimalnym poziomie błędu dopasowania i bardzo dokładnych prognozach dla zbioru weryfikacyjnego, otrzymano w przypadku sieci neuronowej reprezentującej funkcję stopy inflacji, optymalizowanej wyłącznie w oparciu o zbiór treningowy i zasadę jak najlepszego dopasowania wag sieci do punktów empirycznych. Znacznie gorsze wyniki należały do struktury neuronowej aproksymującej zależność zmiany dochodu, nauczonej wyłącznie na podstawie zbioru sztucznych danych interpolowanych oraz wymogu kończenia procedury trenowania przy sporych poziomach błędu dla obserwacji prezentowanych sieci. Najbardziej niekorzystne, ale tylko nieznaczne większe od wcześniej wymienionej sieci, okazały się błędy generalizacji dla struktur przybliżających funkcje zmiany eksportu netto oraz zasobu pracy. W obydwu przypadkach optymalnym sposobem uczenia okazał się algorytm podstawowy, rozszerzony o metodę wczesnego stopu, tradycyjnie wykorzystującą obserwacje empiryczne w zbiorach konstrukcyjnym i testowym.

Efekt końcowy potwierdza tezę o odmiennej przydatności poszczególnych algorytmów, uzależnionej od stopnia reprezentatywności zestawu dostępnych danych i poziomu zawartych w nich zaburzeń losowych. Wynik sugeruje ponadto celowość stosowania w pewnych specyficznych przypadkach sztucznych danych, w których za pomocą interpolacji zredukowano wpływ pojedynczych obserwacji empirycznych, odbiegających od ogólnego schematy.

Przedstawione powyżej wnioski, ujęte w formę syntetycznego podsumowania, wskazują na szerokie możliwości i interesujące perspektywy stosowania sieci neuronowych typu MLP w modelowaniu makroekonomicznym, co razem z zaprezentowaną aplikacją oraz wykonaną przy jej użyciu neuronową wersja modelu gospodarki szwedzkiej, stanowią realizację celu postawionego przed niniejszą pracą.


Strona domowa
Spis treści
Dalej


Copyright © by Paweł Rośczak, 2003