Czarakterystyka sieci neuronowych
Cechy modeli neuronowych
Etapy budowy neuronowego modelu szeregu czasowego
Wstępna analiza szeregów czasowych
Modele szeregów czasowych wykorzystujące perceptrony wielowarstwowe
Sieci Kohonena w analizie szeregów czasowych
Algorytm genetyczny jako narzędzie optymalizacji neuronowych modeli szeregów czasowych
Ocena neuronowych modeli szeregów czasowych
Prognozy przedziałowe
Wnioski końcowe
Czarakterystyka sieci neuronowych
Sztuczny neuron
W prezentowanym opracowaniu przez sztuczną sieć neuronową rozumiana będzie technika obliczeniowa wzorowana na strukturze i sposobie działania układów nerwowych organizmów żywych. Sztuczna sieć neuronowa jest zespołem połączonych ze sobą elementów przetwarzających (neuronów). Sztuczny neuron (rys. 1) jest to model swojego rzeczywistego odpowiednika. Jego zasadniczym celem jest przetworzenie informacji wejściowej (dostarczanej w postaci wartości x1, x2, ..., xn) w wartość wyjściową y. Przyjmuje się, że zarówno wartości wprowadzane na wejścia neuronu, jak i uzyskiwana na jego wyjściu wartość wyjściowa, mają postać liczb rzeczywistych. Z każdym wejściem neuronu związany jest współczynnik zwany wagą. Współczynniki wagowe neuronu są podstawowymi parametrami wpływającymi na sposób funkcjonowania sztucznej komórki nerwowej. Przetwarzanie informacji przez sztuczny neuron składa się z dwóch etapów. Pierwszym z nich jest agregacja danych wejściowych, zaś drugim wyznaczenie wartości wyjściowej neuronu.
Drugim etapem w funkcjonowaniu neuronu jest wyznaczenie jego wartości wyjściowej. Elementem odpowiedzialnym za wykonanie tej czynności jest funkcja aktywacji. Jest to funkcja przekształcająca wyznaczoną wcześniej zagregowaną wartość wejściową w wartość wyjściową neuronu.
Struktura i sposób działania sztucznej sieci neuronowej
Sztuczna sieć neuronowa jest zespołem połączonych ze sobą neuronów (rys. 3).
Prawidłowo skonstruowana sieć neuronowa może służyć do rozwiązywania wielu typów zagadnień. Do najpopularniejszych zastosowań sieci należy zaliczyć budowane przy ich wykorzystaniu modele rozwiązujące problemy regresyjne, klasyfikacyjne oraz prognostyczne. W problemach regresyjnych użytkownik modelu neuronowego oczekuje, że posiadana przez niego sieć będzie w stanie opisywać zależności pomiędzy zmiennymi, przy czym zakłada się, że zmienna objaśniana (zmienne objaśniane) mają charakter ciągły. W problemach klasyfikacyjnych sieć neuronowa stanowi narzędzie umożliwiające zaklasyfikowanie badanych obiektów do właściwych klas. Jeżeli wzorce klas są znane przed rozpoczęciem badań, to rozwiązywany problem określany jest mianem klasyfikacji wzorcowej, w przeciwnym przypadku rozwiązywane zagadnienie jest przykładem problemu klasyfikacji bezwzorcowej. W problemach klasyfikacyjnych informacja wyjściowa sieci zwykle ma postać zmiennej nominalnej, której poszczególne wartości reprezentują klasy, do których przypisywane są obiekty. W problemach prognostycznych celem stosowania modeli neuronowych jest wyznaczenie przyszłej wartości szeregu czasowego. Sieć rozwiązująca zagadnienia tego typu korzysta z bieżących oraz przeszłych wartości tego samego szeregu jak również z bieżących i przeszłych wartości innych zmiennych.
Sposób funkcjonowania sieci neuronowej, gwarantujący prawidłowe rozwiązywanie postawionych przed nią problemów, uzależniony jest od dwóch podstawowych czynników:
Istnieją dwa podstawowe sposoby przeprowadzania uczenia sieci. Są nimi uczenie z nauczycielem oraz uczenie bez nauczyciela.
W przypadku uczenia z nauczycielem zbiór uczący zawiera zarówno wartości zmiennych wejściowych jak i odpowiadające im wartości zmiennej (lub zmiennych) wyjściowych. Idea uczenia z nauczycielem przedstawiona została na rys. 4. Po wprowadzeniu poprzez neurony wejściowe wartości zmiennych wejściowych wyznaczana jest odpowiedź sieci. Uzyskana w ten sposób wartość porównywana jest z rzeczywistą wartością przechowywaną w zbiorze uczącym. Jeśli porównywane wartości nie są równe, to parametry sieci (wagi) modyfikowane są w taki sposób, aby odpowiedź sieci upodobniła się do wartości rzeczywistej.
Stosując uczenie bez nauczyciela (rys. 6) wykorzystuje się zbiór uczący obejmujący wyłącznie wartości zmiennych wejściowych. W tym przypadku zbiór uczący nie zawiera żadnych informacji na temat wartości pożądanych na wyjściach sieci. Celem uczenia jest osiągnięcie przez sieć stanu równowagi.
Przedstawiona charakterystyka stosowanych trybów uczenia sieci neuronowych wskazuje, że w zagadnieniach modelowania i prognozowania stosowane będą sieci konstruowane w trybie z nauczycielem, gdyż stanowią one dogodne narzędzie opisu zależności pomiędzy różnymi zmiennymi lub pomiędzy oddalonymi w czasie wartościami tej samej zmiennej. Utworzenie prawidłowo funkcjonującego modelu wymaga zastosowania właściwie przygotowanej sieci. Niestety, wyznaczany w trakcie treningu błąd uczenia nie może stanowić podstawy do oceny sieci, gdyż jego wartość może zostać sprowadzona do dowolnie niskiego poziomu poprzez rozbudowę części ukrytej sieci. Zwiększanie liczby neuronów ukrytych ma również swoje wady - zwiększa liczbę parametrów sieci szacowanych w czasie uczenia, co często w istotny sposób wpływa na czas treningu. Jednakże najpoważniejszą konsekwencją stosowania zbyt rozbudowanych struktur sieciowych jest możliwość utraty przez sieć zdolności do generalizacji. Zdolność do generalizacji przejawia się w posiadanej przez sieć umiejętności wyznaczania prawidłowych odpowiedzi dla takich danych wejściowych, które nie były prezentowane w trakcie uczenia. Umiejętność ta jest najwartościowszą cechą sieci neuronowej. Znaczenie generalizacji ilustrować może zamieszczony przykład numeryczny. Załóżmy, że chcemy opisać zależność zachodzącą pomiędzy zmienną X1 i X2 przy pomocy sieci neuronowej. Podstawą do przeprowadzenia uczenia sieci jest zbiór uczący składający się z przykładowych realizacji tej zależności (rys. 7).
W trakcie uczenia sieci o prawidłowo dobranej strukturze wartość błędu uczenia i błędu walidacyj-nego powinna zmniejszać się w kolejnych epokach. Poziom błędu walidacyjnego jest zwykle nieznacznie wyższy od wartości błędu uczenia wyznaczonego w tej samej epoce. Jeśli oba błędy pozostają na wysokim poziomie, to może to wskazywać na potrzebę modyfikacji struktury sieci polegającej na zwiększeniu liczby neuronów ukrytych.
Problem określania struktury należy do najtrudniejszych zadań stojących przed konstruktorem sieci. Jego prawidłowe rozwiązanie wymaga wiedzy i doświadczenia. Często niezbędne staje się przeprowadzenie szeregu eksperymentów badawczych. Bardzo pomocne są w tym zakresie odpowiednio skonstruowane programy komputerowe, które w oparciu o zaimplementowane heurystyki i przeprowadzone eksperymenty proponują właściwą strukturę sieci.
Po przeprowadzeniu uczenia, w wyniku którego błędy dla zbioru uczącego i walidacyjnego osiągnęły akceptowalny przez użytkownika poziom przeprowadza się ponowną weryfikację modelu. Tym razem polega ona na obliczeniu miar dopasowania sieci do danych wchodzących w skład zbioru testowego. Niski poziom wyznaczonego błędu potwierdza poprawność działania sieci, zaś uzyskanie wysokiej wartości stanowi poważny sygnał ostrzegawczy i może świadczyć o potrzebie powtórzenia procesu konstrukcji i uczenia sieci.
Perceptrony wielowarstwowe
Jednokierunkowe sieci wielowarstwowe (perceptrony wielowarstwowe, sieci MLP - MultiLayer Perceptrons) należą do najlepiej poznanych i najczęściej wykorzystywanych architektur sieciowych.
Do podstawowych własności jednokierunkowych sieci wielowarstwowych (rys. 11) należy zaliczyć:
Sieci Kohonena Sieć zaproponowana przez T. Kohonena ma bardzo prostą strukturę (rys. 12). W skład sieci tego typu wchodzą dwie warstwy neuronów: warstwa wejściowa i warstwa wyjściowa. Występujące w sieci połączenia mają charakter każdy z każdym. Sieć Kohonena charakteryzuje się jednokierunkowym przepływem informacji: od warstwy wejściowej do warstwy wyjściowej. Specyficzną cechą sieci Kohonena jest zaproponowany przez jej twórcę sposób uporządkowania neuronów warstwy wyjściowej. Zwykle nie są one uporządkowane liniowo (jak w sieci perceptro-nowej), lecz rozlokowane są w różnych punktach dwuwymiarowej płaszczyzny. Najprostsze rozwiązanie polega na umieszczeniu neuronów w polach znajdujących się na przecięciu kolejnych wierszy i kolumn wyznaczonych na płaszczyźnie. Rysunek 13 przedstawia schemat warstwy wyjściowej sieci Kohonena składającej się z 64 neuronów, rozmieszczonych na przecięciu ośmiu wierszy i ośmiu kolumn.
Rys. 13. Schemat warstwy wyjściowej sieci Kohonena.
Uczenie sieci Kohonena odbywa się bez nauczyciela. Podstawą uczenia jest zbiór uczący, którego każdy element jest wektorem o liczbie elementów odpowiadającej liczbie neuronów w warstwie wejściowej sieci. W początkowej fazie uczenia wagi przyjmują wartości równe niewielkim liczbom losowym. Po prezentacji wzorca uczącego obliczana jest odległość pomiędzy wartościami wejściowymi a wagami kolejnych neuronów warstwy wyjściowej (odległość ta najczęściej jest wyrażana przy pomocy formuły Euklidesa lub jako iloczyn skalarny wektora wejściowego i wektora wag; w tym drugim przypadku konieczne jest wcześniejsze unormowanie wektorów wejściowych). Wartości te są wzajemnie porównywane i wyznaczany jest neuron zwycięski, którego wagi są w największym stopniu zbliżone do wektora wejściowego. Następnie wagi neuronu zwycięskiego są modyfikowane w sposób zapewniający jeszcze większe ich upodobnienie do wektora wejściowego.
Cechą charakterystyczną sieci Kohonena jest to, że proces modyfikacji wag neuronu przeprowa-dzany jest nie tylko dla neuronu zwycięskiego, ale również dla wszystkich neuronów wchodzących w obręb sąsiedztwa zwycięzcy.
Proces uczenia prowadzi do utworzenia mapy topograficznej. Posiada ona zdolność odwzorowy-wania zależności zachodzących pomiędzy obiektami - obiektom podobnym odpowiada ten sam obszar (neuron) na mapie lub obszary położone blisko siebie. Obiekty znacznie różniące się od siebie powodują uaktywnienie neuronów znajdujących się w odległych od siebie obszarach mapy.
| Powrót do spisu treści | ||||
Sztuczne sieci neuronowe posiadają szereg cech, dzięki którym mogą stanowić przydatne narzędzie modelowania i prognozowania szeregów czasowych. O przydatności modeli neuronowych do badania rozwoju zjawisk w czasie decydują przede wszystkim następujące fakty:
1. Zależności występujące w znacznej liczbie szeregów czasowych mają charakter nieliniowy, co stanowi podstawową przesłankę do tego, aby do ich modelowania stosować modele nieliniowe. Jednym z narzędzi spełniających ten warunek są jednokierunkowe sieci neuronowe. Posiadają one zdolności do aproksymacji dowolnych zależności nieliniowych jak również charakteryzują się zdolnościami generalizującymi.
2. Proces budowy modelu neuronowego polega na eksploracji dostępnych zbiorów danych i oszacowaniu na tej podstawie modelu opisującego stwierdzone prawidłowości. Stosowanie modeli tego typu nie wymaga znajomości postaci funkcji opisującej istniejącą prawidłowość. W związku z tym modele neuronowe mogą znaleźć zastosowanie wszędzie tam, gdzie nie jest znane dokładne prawo opisujące kształtowanie się badanych zależności. Nie wyklucza to możliwości stosowania sieci w przypadkach, gdy znana jest postać formuł matematycznych opisujących badany aspekt rzeczywistości, ale wówczas nakłady związane z oszacowaniem modelu sieciowego mogą być wyższe niż nakłady niezbędne do obliczenia parametrów danego w postaci równania prawa.
3. Modele neuronowe mają charakter adaptacyjny. Mogą służyć do opisu zależności zmieniających się w czasie. W chwili pojawienia się nowych danych przeprowadzony może zostać proces douczenia sieci, co umożliwia uwzględnienie w tworzonym modelu informacji zawartych w najnowszych obserwacjach.
4. Sieć neuronowa może być traktowana nie tylko jako mechanizm opisujący przebieg zjawiska i generujący przyszłe jego wartości. Daje ona możliwości przeprowadzania wszechstronnej analizy badanego fragmentu rzeczywistości. Podstawowe informacje o systemie uzyskać można poprzez zastosowanie analizy wrażliwości modelu. Pozwala ona na przedstawienie charakteru związku pomiędzy badaną wielkością a poszczególnymi wpływającymi na nią czynnikami. Istniejące metody analizy pozwalają przy wykorzystaniu modelu neuronowego dokładnie analizować zjawisko we wszelkich wybranych przez badacza układach.
Stosowanie modeli neuronowych nie zawsze jest uzasadnione. Modele tego typu nie powinny być stosowane wtedy, gdy:
1. badacz nie dysponuje odpowiednią liczbą obserwacji mogących stanowić podstawę do oszacowania modelu. Szacowanie sieci posiadających stosunkowo dużą liczbę parametrów na podstawie nielicznego zbioru uczącego prowadzi najczęściej do powstania modeli dopasowujących się do danych uczących, ale nie posiadających zdolności do opisu ogólnych prawidłowości istniejących w danych.
2. trudno znaleźć uzasadnienie dla stosowania modeli neuronowych w sytuacji, w której znany jest charakter występującej prawidłowości (np. znana jest postać funkcji opisującej analizowane zjawisko). W takim przypadku oszacowanie parametrów funkcji pociąga za sobą mniejsze nakłady i prowadzi do powstania modelu łatwiejszego w interpretacji.
Nawet wówczas, gdy spełnione są warunki uzasadniające stosowanie modeli neuronowych należy pamiętać, że oprócz zalet posiadają one również pewne słabe strony, mogące przyczyniać się do powstawania problemów na etapie budowy modelu. Do najistotniejszych minusów sieci neuronowych należy zaliczyć:
1. potrzeba odpowiedniego przygotowania danych - uzależniona od charakteru zmiennych i zastosowanego rodzaju sieci,
2. problemy związane z doborem właściwej struktury modelu neuronowego (rodzaj sieci, przyjęte modele neuronu, liczba neuronów i sposób ich połączenia),
3. konieczność wyboru właściwego algorytmu uczenia sieci,
4. wysokie nakłady czasowe związane z oszacowaniem modelu neuronowego,
5. brak (w większości przypadków) możliwości bezpośredniej interpretacji poszczególnych współczynników modelu neuronowego.
| Powrót do spisu treści | ||||
Etapy budowy neuronowego modelu szeregu czasowego
Proces budowy neuronowego modelu szeregu czasowego ma charakter wieloetapowy. Składa się z kilku następujących po sobie etapów, z których pierwszy obejmuje wstępną analizę danych, kolejny polega na skonstruowaniu sieci neuronowej (lub kilku sieci neuronowych), zaś ostatni związany jest z oceną uzyskanego modelu.
Wstępna analiza danych (zwana również preprocessingiem) obejmuje te czynności, które poprzedzają proces konstrukcji i uczenia sieci. Zakres wykonywanych operacji obejmuje badanie poprawności i jednorodności danych, operacjonalizację danych, redukcję zbioru zmiennych wejściowych, dekompozycję szeregu pierwotnego, zdefiniowanie sposobu reprezentacji danych jakościowych oraz skalowanie danych.
Proces konstrukcji sieci obejmuje prace związane z zaprojektowaniem struktury i uczeniem sieci opisującej zależności w szeregu powstałym w czasie wstępnej analizy danych. Jeżeli na etapie preprocessingu przeprowadzono dekompozycję danych, to należy stworzyć oddzielne sieci do opisu zależności występujących we wszystkich wyodrębnionych składowych, oraz zdefiniować sposób agregacji wyników dostarczanych przy pomocy tak skonstruowanych modeli cząstkowych.
Ostatnim etapem procesu konstrukcji modelu szeregu czasowego jest jego ocena. Ocena powinna obejmować zarówno analizę posiadanych przez model zdolności aproksymujących jak i umiejętności generalizacji zgromadzonej wiedzy. Zastosowany system mierników jakości modelu powinien być uzależniony od funkcji, jaką model ma spełniać.
Wymienione powyżej zasadnicze etapy budowy neuronowego modelu szeregu czasowego czasami realizowane są więcej niż jeden raz. Sytuacja taka ma miejsce wówczas, gdy podjęta próba realizacji kolejnej fazy modelowania kończy się niepowodzeniem. Wówczas należy zwykle powtórzyć (wszystkie lub tylko wybrane) wcześniej zrealizowane kroki analizy.
| Powrót do spisu treści | ||||
Wstępna analiza szeregów czasowych
Przed rozpoczęciem budowy modelu szeregu czasowego i przed jego prognozowaniem zgromadzone dane poddawane są analizie wstępnej (ten etap prac określany jest również mianem preprocessingu). Wstępna analiza danych obejmuje m.in.:
Badanie poprawności danych
Stworzenie prawidłowo funkcjonującego modelu wymaga wykorzystania poprawnych danych. Realizowane na etapie preprocessingu badanie poprawności ma na celu identyfikację i wyeliminowanie wartości błędnych. W większości przypadków pełne zagwarantowanie poprawności nie jest możliwe, zaś przeprowadzenie procedury weryfikującej ma na celu minimalizację prawdopodobieństwa wystąpienia błędów lub braków w danych.
Najlepszym sposobem zwiększenia wiarygodności danych jest porównanie informacji pochodzących z kilku niezależnych źródeł. Jednakże sposób weryfikacji bazujący na alternatywnym źródle danych nie zawsze jest możliwy do realizacji, a jego stosowanie związane jest zwykle ze znacznym zwiększeniem nakładów czasowych i finansowych. Ten sposób weryfikacji nie gwarantuje również wykrycia błędów powstałych na etapie pomiaru danych.
Duża część metod badania poprawności danych szczególną uwagę przywiązuje do wartości nietypowych, a więc tych, które w znaczny sposób odbiegają od wartości charakterystycznych dla analizowanej zmiennej. Mechaniczne odrzucenie wartości nietypowych nie musi być poprawne, gdyż wśród nich mogą się znaleźć zarówno wartości błędne jak i anomalie, które mimo swojej niezgodności z typowymi wartościami są zgodne z rzeczywistością i wymagają specyficznego sposobu ujęcia w modelu.
Do podstawowych metod identyfikacji wartości nietypowych można zaliczyć: metody graficzne pozwalające na wizualną ocenę szeregu, przekształcenia szeregu ułatwiające wykrycie nietypowych zachowań (np. różnicowanie), analizę reguł sterujących funkcjonowaniem systemu generującego dane i podjęcie próby ich weryfikacji na podstawie dostępnych obserwacji (np. sprawdzenie, czy kolejne ceny akcji są zgodne z obowiązującymi regułami określającymi maksymalne zmiany cen).
Po wykryciu wartości błędnych należy podjąć decyzję dotyczącą sposobu ich traktowania. Do najpopularniejszych możliwości w tym zakresie należy zaliczyć: zastąpienie błędnej wartości wartością pochodzącą z alternatywnego źródła danych (jest najlepszy sposób postępowania, ale nie zawsze możliwy do realizacji), zastąpienie błędnej wartości wartością oszacowaną (należy pamiętać, że wartość oszacowana odbiega zwykle od wartości rzeczywistej) oraz pominięcie wartości błędnej (w przypadku szeregów czasowych takie postępowanie nie zawsze jest możliwe, gdyż usunięcie pojedynczej obserwacji może prowadzić do zaburzenia informacji określającej przebieg badanego zjawiska).
Bardzo trudnym problemem jest również zagadnienie braków danych. W przypadku szeregów czasowych wartości brakujących zwykle nie można pominąć, gdyż może to znacznie utrudnić późniejszą identyfikację występujących prawidłowości. Podobnie jak w przypadku wartości błędnych, najczęściej zaleca się zastąpienie braków wartościami pochodzącymi z innych źródeł lub wartościami oszacowanymi.
Badanie jednorodności danych
Kolejnym etapem wstępnej analizy danych jest badanie ich jednorodności. Przeprowadzona procedura badawcza ma na celu określenie, czy wszystkie zgromadzone przypadki tworzą jednorodną strukturę, czy też tworzą wyraźnie wyodrębnione klasy.
Najprostszą, a jednocześnie bardzo skuteczną, metodą badania jednorodności jest wzrokowa analiza wykresów rozrzutu danych. Naniesione na wykres punkty pozwalają ocenić stopień jednorodności danych. Graficzna prezentacja przypadków uczących może zostać utrudniona przez wysoki wymiar przestrzeni danych. W takich sytuacjach należy wpierw dokonać redukcji liczby zmiennych opisujących wyróżnione przypadki.
Nie spełnienie warunku jednorodności może przejawiać się przez:
Operacjonalizacja danych
Operacjonalizacja szeregu czasowego polega na przekształceniu jego wartości w sposób pozwalający na wyeksponowanie pewnych, istotnych z punktu widzenia celu analizy, cech charakterystycznych szeregu.
Operacjonalizacja danych mających postać szeregów czasowych może polegać na przekształceniu wartości pierwotnych szeregu do postaci:
1. szeregu różnic,
2. szeregu wartości -1, 0, +1, które reprezentują kolejno wartości ujemną, równą zero i dodatnią,
3. szeregu różnic względnych o postaci
gdzie q może być równe wartości x w okresie t-1 lub w okresie początkowym 0 lub też odchylenie standardowe z szeregu różnic xt-xt-1; obliczone w ten sposób wartości określane są jako przyrosty względne,
4. szeregu wartości
(indeksy dynamiki),
5. logarytmów naturalnych z wartości szeregu xt,
6. logarytmów naturalnych z indeksów dynamiki,
7. pierwiastków kwadratowych lub sześciennych z wartości szeregu,
8. współczynników udziału okresów wyrażanych jako iloraz wartości szeregu w danym okresie i sumy wartości obliczonej dla wszystkich okresów.
Oprócz wymienionych powyżej uniwersalnych metod operacjonalizacji szeregów czasowych zastosować można również metody przekształceń specyficzne dla rozpatrywanej dziedziny zastosowań. W przypadku finansowych szeregów czasowych przydatnym narzędziem przekształcania danych może być wyznaczenie wartości wskaźników technicznych. Dobór odpowiednich wskaźników uzależniony jest w dużym stopniu od celu prowadzonych obliczeń.
Zastosowanie wskaźników technicznych zilustrowane zostanie opisem przekształceń dokonanych na przykładowym szeregu czasowym składającym się ze stu wartości indeksu WIG pochodzących z kolejnych sesji giełdowych w okresie od 12 listopada 1991 do 1 grudnia 1992 roku (rys. 15).
Szereg czasowy określający kształtowanie się indeksu WIG stał się podstawą do wyznaczenia trzech (wybranych w sposób arbitralny) wskaźników technicznych: ROC, MACD i oscylator stochastyczny. Wartości wskaźników technicznych mogą trafniej niż dane pierwotne reprezentować pewne cechy szeregu (poziom, kierunek zmian /trend/, tempo zmian).
Wartość wskaźnika MACD definiowana jest jako różnica pomiędzy dwiema wykładniczymi średnimi ruchomymi (zwykle są to średnie 12 i 26 dniowe), czyli:
jest pierwszą (krótszą) średnią ruchomą (np. 12 dniową), zaś
jest drugą (dłuższą) średnią ruchomą (np. 26 - dniową).
Średnie ruchome są filtrem usuwającym z szeregu wahania o wysokich częstotliwościach. Wraz z wydłużaniem okresu, z którego liczona jest średnia mocniejszy jest stopień wygładzania szeregu. Wskaźnik MACD określa tempo zmian w szeregu podstawowym. Dodatnie wartości MACD wskazują na wzrost wartości szeregu w okresie uwzględnionym przy wyznaczaniu krótkiej średniej ruchomej w porównaniu z okresem odpowiadającym długiej średniej ruchomej. W przeciwny sposób interpretować można ujemne wartości wskaźnika.
Budując model szeregu czasowego należy rozważyć możliwość uwzględnienia na jego wejściu zarówno danych pierwotnych jak i wartości wskaźników technicznych (np. wskaźnika MACD), gdyż takie postępowanie umożliwia wykrycie dywergencji (niezgodności kierunków zmian) pomiędzy tymi szeregami, co może być zapowiedzią zmiany trendu. Wartości wskaźnika MACD obliczone na podstawie analizowanych wartości WIG przedstawia rys. 17.
xt - bieżąca wartość szeregu,
H(n) - wartość maksymalna z ostatnich n okresów,
L(n) - wartość minimalna z ostatnich n okresów.
Wyznaczona w podany sposób wartość %K określa stosunek bieżącej wartości szeregu do zakresu wahań w n ostatnich jednostkach czasu. Przemnożenie ilorazu przez sto powoduje, że charakteryzowany wskaźnik unormowany jest do przedziału [0; 100]. Wyższe jego wartości wskazują, że aktualny poziom szeregu zbliża się do swojej wartości maksymalnej osiągniętej w rozważanym przedziale czasu. Wykres wartości oscylatora stochastycznego prezentuje rys. 18.
Takie podejście jest często stosowane w praktyce, gdy do opisu kształtowania się pewnych zjawisk wykorzystuje się liniowe funkcje trendu (obrazujące zasadniczy kierunek zmian) i współczynniki sezonowości (wskazujące na odchylenia od trendu mające miejsce w kolejnych okresach czasu). Podejście takie sprawdza się w przypadkach charakteryzujących się stabilnym trendem i regularnymi wahaniami sezonowymi (nakładanymi na trend w sposób addytywny lub multiplikatywny). Za przykład może służyć szereg przedstawiony na rys. 19.
Analiza Fouriera pozwala na identyfikację składowych spektralnych występujących w szeregu czasowym, ale nie dostarcza informacji dotyczącej ich lokalizacji w czasie - nie określa, czy zidentyfikowane wahania występują na całej długości szeregu, czy też tylko w pewnej jego części. Taki sposób prowadzenia badań prowadzić może do błędnej interpretacji uzyskanych wyników.
Reprezentacja danych jakościowych
Pewne informacje wpływające na przyszłą wartość szeregu czasowego mają charakter jakościowy. Informacje o takiej postaci nie mogą być wprowadzane na wejścia sieci neuronowej, która przystosowana jest do przetwarzania informacji w postaci ilościowej. Brak możliwości bezpośredniego przetworzenia danych jakościowych przez sieć neuronową wymusza konieczność ich wstępnego przekształcenia do postaci numerycznej. Zastosowany sposób przekształcenia jest uzależniony od skali pomiarowej właściwej do wyrażenia danych jakościowych.
Zmienne dwustanowe (binarne) mogą być reprezentowane przy pomocy pojedynczego neuronu, na wejście którego wprowadza się wartości numeryczne odpowiadające wartościom zmiennej binarnej. Zwykle stosuje się jeden z dwóch popularnych sposób kodowania. Pierwszy z nich zakłada, że wartościom binarnym przypisuje się wartości 0 i 1, zaś drugi zaleca kodowanie wartości przy pomocy liczb -1 oraz +1.
Zmienne nominalne wielostanowe są reprezentowane przy pomocy metody jeden-z-n. Stosując ten sposób reprezentacji liczba neuronów odpowiadająca zmiennej jest równa liczbie możliwych wartości przyjmowanych przez zmienną. Każdy neuron odpowiada jednej wartości, zaś dana wartość reprezentowana jest przez pojawienie się jedynki na odpowiadającym jej neuronie i zer na wszystkich pozostałych neuronach.
Zmienne nominalne wielostanowe mogą być również reprezentowane przy pomocy pojedynczego neuronu. Wówczas (podobnie jak w przypadku zmiennych binarnych) wszystkim wartościom zmiennej przyporządkowywane są numery, które wprowadzane są na wejście neuronu odpowiada-jącego danej zmiennej.
Skalowanie
W wielu przypadkach sieć neuronowa nie przetwarza bezpośrednio oryginalnych wartości zmiennych objaśniających i objaśnianych, lecz operuje na wartościach przeskalowanych. Skalowanie dotyczy zarówno zmiennych numerycznych jak i numerów porządkowych przypisanych poszczególnym wartościom nominalnym.
Celem skalowania wartości zmiennych wyjściowych jest dostosowanie ich wartości do zakresu wartości wyjściowych neuronów wyjściowych. Skalowanie wartości zmiennych objaśniających ma na celu przekształcenie ich wartości do takiego przedziału, dla którego stopień zmienności logistycznych funkcji aktywacji jest największy.
Bardzo popularnym sposobem skalowania jest przekształcenie wartości szeregu do przedziału [0; 1] albo do przedziału [-1; +1]. Po wykonaniu obliczeń przez sieć neuronową należy wykonać przekształcenie powrotne, pozwalające na przejście do pierwotnie stosowanej skali.
| Powrót do spisu treści | ||||
Modele szeregów czasowych wykorzystujące perceptrony wielowarstwowe
Wstępna analiza danych prowadzi do uzyskania wartości, które mogą być przetwarzane przez sieć neuronową. Decydując się na konstrukcję modelu wykorzystującego perceptron wielowarstwowy należy podjąć decyzje określające:
Wybór wartości wejściowych jest jednym z najważniejszych etapów modelowania. Konstruując sieci opisujące zachowanie szeregów czasowych w charakterze wartości wejściowych przyjmuje się zwykle opóźnione w stosunku do wartości objaśnianej wartości tego samego szeregu jak i opóźnione wartości innych zmiennych. Nadmierne zwiększanie liczby wejść prowadzi do rozbudowy sieci, co z kolei jest powodem zmniejszenia zdolności do uogólniania. Projektując zbiór wejść należy rozważyć uwzględnienie tylko pewnych, nie sąsiadujących bezpośrednio z sobą wartości opóźnionych. Również pominięcie pewnych potencjalnych zmiennych wejściowych może polepszyć jakość sieci.
Istotnym elementem wpływającym na jakość modelu jest również prawidłowe zaprojektowanie części ukrytej sieci. Narzędziem służącym do realizacji tego zadania są algorytmy konstrukcji sieci, które określają optymalną strukturę na drodze poszukiwań iteracyjnych. Ze względu na sposób działania algorytmy konstrukcji sieci neuronowych podzielić można na trzy grupy:
| Powrót do spisu treści | ||||
Sieci Kohonena w analizie szeregów czasowych
Narzędziem przydatnym w trakcie analizy, modelowania i prognozowania szeregów czasowych może być również sieć Kohonena. Zastosowanie tego narzędzia pozwala między innymi na wydzielenie podobnych fragmentów szeregu czasowego. Celem zastosowania sieci Kohonena jest przypisanie poszczególnych przypadków do reprezentujących je skupień. Po dokonaniu klasyfikacji danych proces budowy modelu może zostać zrealizowany niezależnie dla każdej klasy.
Sposób zastosowania sieci Kohonena do klasyfikacji danych tworzących szereg czasowy zilustrowany zostanie przykładem dotyczącym modelowania opisanego wcześniej szeregu obejmującego sto wartości indeksu WIG. Założono, ze każda wartość szeregu uzależniona jest od wskaźników technicznych: ROC, MACD oraz oscylatora stochastycznego. Klasyfikacja przypadków realizowana przez sieć Kohonena przeprowadzana jest wyłącznie na podstawie wartości przyjętych zmiennych objaśniających. Proces tworzenia sieci w programie STATISTICA Neural Networks przedstawiony jest na rys. 23.
Tabela 1. Częstości zwycięstw poszczególnych neuronów wchodzących w skład mapy Kohonena.
Analizę danych zawartych w tabeli 2 ułatwia ich prezentacja graficzna (rys. 28). Założono, że ciemniejszy kolor fragmentów mapy odpowiada wyższym wartościom indeksu WIG.
Tabela 2. Średnia wartość indeksu WIG dla skupień reprezentowanych przez neurony wchodzące w skład utworzonej sieci Kohonena.
Podobny sposób prezentacji (numeryczny i graficzny) zastosować można dla średnich wartości zmiennych objaśniających wyznaczonych dla poszczególnych neuronów zastosowanej sieci Kohonena.
Porównanie wykresów prezentujących średnie wartości zmiennych objaśniających dla poszczególnych klas z wykresem przedstawiającym średnią wartość WIGu pozwala na identyfikację związków zachodzących pomiędzy zmiennymi.
Sieć Kohonena stanowić może również narzędzie prognozowania. Jeżeli celem predykcji ma być zmiana wartości indeksu WIG w następnym okresie, to należy przedstawić średnie wartości zmian zachodzące dla dostępnych przypadków (w rozbiciu na wydzielone klasy).
Tabela 3. Średnia zmiana (procentowa) WIG'u w okresie następnym w stosunku do okresu bieżącego.
| Powrót do spisu treści | ||||
Algorytm genetyczny jako narzędzie optymalizacji neuronowych modeli szeregów czasowych
Charakterystyka algorytmów genetycznych
Algorytmy genetyczne są modelami rozwoju populacji chromosomów. W klasycznej wersji algorytmu przez chromosom rozumie się łańcuch wartości binarnych o określonej długości. Algorytmy genetyczne służą do rozwiązywania zagadnień z dziedziny optymalizacji. Najczęściej są to zadania typu:
Sposób działania algorytmu genetycznego w trakcie rozwiązywania problemów tego typu składa się z następujących etapów:
1. przyjęcie sposobu kodowania rzeczywistych parametrów funkcji przystosowania w postaci chromosomu (łańcucha zer i jedynek) - określenie w jaki sposób każdy parametr będzie zamieniany na postać binarną (dwójkową) i z ilu zer i jedynek będzie się składać binarna reprezentacja liczby rzeczywistej. Połączone ze sobą liczby binarne reprezentujące kolejne parametry tworzą chromosom,
2. określenie postaci funkcji przystosowania - jest to funkcja, której wartość uzależniona jest od wszystkich parametrów x1, ..., xn. Funkcja ta służy do oceny analizowanego zestawu parametrów, im wyższa jej wartość, tym lepsze dobrano parametry. Jeśli celem algorytmu genetycznego jest maksymalizacja pewnej funkcji celu FC, to w charakterze funkcji przystosowania można wykorzystać tę samą funkcję FC,
3. losowy dobór punktów startowych - proces poszukiwań optymalnego zestawu parametrów rozpoczyna się od losowego wyboru punktów startowych (zestawów parametrów), przedstawione one zostały w kolumnie Parametry; następnie każdy z tych zestawów kodowany jest w postaci chromosomu (kolumna Populacja w poniżej zamieszczonej tabeli); w kolejnym kroku dla każdego zestawu parametrów obliczana jest wartość funkcji przystosowania (kolumna FP),
4. selekcja chromosomów do nowej populacji - dla każdego chromosomu określa się prawdopodobieństwo wejścia do nowej populacji; jest ono uzależnione od wartości funkcji przystosowania: im wyższa wartość funkcji przystosowania (co oznacza lepsze parametry), tym większe jest prawdopodobieństwo wejścia do nowej populacji. Wybór osobników do nowej populacji realizowany jest zgodnie z regułą ruletki - każdemu osobnikowi odpowiada wycinek koła o wielkości proporcjonalnej do wartości funkcji przystosowania, a następnie wybierany jest w sposób losowy punkt znajdujący się na kole i do nowej populacji przechodzi ten chromosom, któremu odpowiadał wylosowany fragment koła. Proces ten jest powtarzany aż do chwili, w której liczba chromosomów w nowej populacji będzie równa liczbie chromosomów w starej populacji. W trakcie tworzenia nowej populacji preferowane są lepsze (w sensie zdefiniowanej funkcji przystosowania) chromosomy.
Tabela 4. Schemat działania algorytmu genetycznego.
C1: [0 1 0 1 1 0 1 1 0 1 1 0 1 0]
C2: [1 0 0 1 0 1 1 0 1 1 1 0 0 0]
^
P1: [0 1 0 1 1 0 1 0 1 1 1 0 0 0]
P2: [1 0 0 1 0 1 1 1 0 1 1 0 1 0]
C1: [0 1 1 1 0 1 1 0 1 0 1 1 1 0] ^ P1: [0 1 1 1 1 1 1 0 1 0 1 1 1 0]6. powyższy schemat postępowania powtarzany jest aż do chwili, w której wartość funkcji przystosowania przyjmie akceptowaną przez badacza wartość lub też do momentu zrealizowania zadanej przez użytkownika liczby iteracji. Chromosom o najwyższej wartości funkcji przystosowania zawiera zakodowaną postać parametrów rozwiązywanego zadania.
7. dekodowanie znalezionego zestawu parametrów.
Informacje o charakterze dwustanowym (uwzględnić daną zmienną czy też nie; wprowadzić na wejście sieci określoną przeszłą wartość szeregu czasowego lub nie; zastosować skalowanie danych wejściowych czy też nie) kodowane są zwykle na pojedynczej pozycji chromosomu (wartość 1 może być interpretowana jako TAK, wartość 0 jako NIE).
Po rozwiązaniu problemu kodowania parametrów zadania należy określić sposób wyznaczania wartości funkcji przystosowania służącej do określania jakości każdego chromosomu. Zwykle w celu oszacowania jakości chromosomu przeprowadza się rozkodowanie parametrów, a następnie buduje się model neuronowy uwzględniający odczytane informacje i przeprowadza się jego uczenie. Błędy wyznaczone w rezultacie zastosowania utworzonego w ten sposób modelu są wykorzystywane do wyznaczenia wartości funkcji przystosowania. Wzór określający funkcję przystosowania może uwzględniać wartość błędu sieci wyznaczoną na podstawie zbioru uczącego, ale wówczas sposób oceny jakości chromosomów uwzględnia wyłącznie posiadaną przez sieć zdolność do aproksymacji. W celu uwzględnienia charakteryzującej model zdolności do generalizacji można uwzględnić także wartość błędu dla zbioru walidacyjnego.
Często funkcja przystosowania uwzględnia oprócz błędów również inne charakterystyki modelu utworzonego na podstawie informacji przechowywanych w chromosomie. Przykładem mogą być wielkości opisujące strukturę sieci i liczbę zmiennych wejściowych. Sposób uwzględnienia tych wielkości powinien preferować modele prostsze, posiadające mniejszą liczbę elementów, gdyż one zwykle posiadają większą zdolność do uogólniania wiedzy zawartej w zbiorze uczącym.
Należy podkreślić, że proces konstrukcji sieci na podstawie informacji zawartych w chromosomie i następujące po nim uczenie uzyskanego modelu musi być wykonane każdorazowo przy wyznaczaniu jakości chromosomu. W czasie działania algorytmu optymalizacji genetycznej liczba oszacowanych sieci neuronowych jest iloczynem liczby chromosomów wchodzących w skład populacji oraz liczby rozpatrywanych pokoleń. Konieczność wielokrotnego uczenia sieci zwiększa w znacznym stopniu wymagania czasowe proponowanej procedury.
W programie STATISTICA Neural Networks użytkownik może skorzystać z algorytmu genetycznego wybierając zestaw zmiennych wejściowych. Wybierając opcje Uczenie - Narzędzia dodatkowe - Dobór cech wyświetlone zostanie okno pozwalające na dokonanie wyboru zmiennych wejściowych najlepiej opisujących kształtowanie się wartości zmiennej wyjściowej (w rozpatrywanym przykładzie był nią wskaźnik WIG).
| Powrót do spisu treści | ||||
Ocena neuronowych modeli szeregów czasowych
Skonstruowany model należy poddać ocenie, która najczęściej realizowana jest poprzez wyznaczenie wartości i interpretację różnorodnych mierników jakości modelu. Stosowane miary jakości podzielić można na dwie grupy:
Przeprowadzając ocenę neuronowych modeli szeregów czasowych przy pomocy uniwersalnych mierników jakości należy pamiętać o:
Narzędziami pomocnymi w procesie oceny neuronowych modeli prognostycznych mogą być również rezultaty analizy graficznej oraz wyniki testów sprawdzających charakter szeregu reszt.
| Powrót do spisu treści | ||||
Rezultatem działania neuronowego modelu prognostycznego jest zazwyczaj pojedyncza wartość, generowana przez neuron znajdujący się w ostatniej warstwie sieci. Taki sposób funkcjonowania nie zawsze jest zgodny z oczekiwaniami użytkownika, gdyż w wielu zastosowaniach większą użytecz-nością mogą się charakteryzować metody dostarczające prognoz przedziałowych. Konstruując prognozę przedziałową wyznacza się przedział predykcji, do którego z ustalonym prawdopodobieństwem należeć będzie wartość zmiennej prognozowanej.
Perceptron wielowarstwowy nie może generować w sposób bezpośredni prognoz przedziałowych. Wyznaczenie prognozy tego typu wymaga znajomości rozkładu oczekiwanego błędu prognozy. W celu oszacowania jego parametrów można posłużyć się metodą bootstrapową, która umożliwia estymację nieznanego parametru rozkładu zmiennej losowej średnią z oszacowań parametru wyznaczonych na podstawie prób bootstrapowych. Próby bootstrapowe generowane są N razy poprzez losowanie ze zwracaniem elementów z dostępnego zbioru danych. Liczebność każdej próby bootstrapowej jest równa liczbie elementów wchodzących w skład pierwotnego zbioru danych. Schemat postępowania przystosowany do symulacyjnego szacowania oczekiwanych błędów prognoz uzyskiwanych przy pomocy modeli neuronowych przedstawia poniższy rysunek.
Dysponując oszacowaniami parametrów rozkładu błędów prognoz uzyskanych przy pomocy modelu neuronowego można podjąć próbę skonstruowania przedziału predykcji.
| Powrót do spisu treści | ||||
Sztuczne sieci neuronowe stanowią narzędzie modelowania i prognozowania interesujące zarówno dla teoretyków jak i dla praktyków. Mogą one opisywać zależności występujące pomiędzy zmiennymi, są narzędziem generowania prognoz, umożliwiają badanie struktury danych.
Wyniki uzyskane dzięki zastosowaniu modeli neuronowych wskazują, że stanowią one cenne uzupełnienie innych metod modelowania.