Zastosowanie sztucznej inteligencji w systemach ekonomicznych i w podejmowaniu decyzji (część 2)

Sebastian Wyrwał

Zastosowanie wielu zmiennych do znajdowania zależności i przewidywania

Zastosowanie wielu zmiennych, od których chcemy uzależnić
wartość badanego wskaźnika giełdowego, jest intuicyjnie bardziej uzasadnione
od zastosowania do tego celu jednej zmiennej generowanej przez system i określającej
umowny numer notowania. Należy jednak podkreślić, że w datamining,
czyli pozyskiwaniu wiedzy z baz danych, często szuka się – z powodzeniem
– zależności pomiędzy pozornie nie powiązanymi danymi. Nie należy
dlatego zawsze bezwzględnie szukać logicznego uzasadnienia dla
przeprowadzanych eksperymentów. Warto w tym miejscu wspomnieć o istnieniu
metody zwanej burzą mózgów (ang. Brain Strom). W metodzie tej wiele osób
próbuje rozwiązać problem poprzez głośną i często gwałtowną wymianę
swoich poglądów, proponowanych rozwiązań itp. Istnieje możliwość, przy
zastosowaniu burzy mózgów, użycia zupełnie nowej nie
charakterystycznej dla danej dziedziny reprezentacji problemu. Autor słyszał o
eksperymentach, w których do rozwiązywania problemu z zakresu techniki, powołany
został interdyscyplinarny zespół. Nowa reprezentacja problemu (z pogranicza
bajek) była zrozumiała dla wszystkich jego członków. Rozwiązania uzyskane
przez ten zespół były bardzo ciekawe. Rozumowanie wysokiej klasy specjalistów
biegnie często określonymi ścieżkami, co może prowadzić do utraty z pola
widzenia pewnych interesujących, aczkolwiek niekonwencjonalnych rozwiązań.
Niefachowcy nie są w ten sposób ograniczeni. Utrudnieniem dla nich jest często
terminologia, czy sposób kodowania właściwy danej dziedzinie.

Wybór wskaźników używanych do eksperymentów

Wybór ten może być przedmiotem polemiki, zwłaszcza dla
ekonomistów. Jak powiedziano, programowanie genetyczne (PG) daje możliwość
zastosowania wektora uczącego, złożonego z wielu składowych i przeniesienia
ciężaru wyboru na system komputerowy. Generalnie wybór wskaźników użytych
do badań nie był poparty szczegółowymi badaniami z zakresu ekonomii.
Konfigurując system S3, który został zastosowany do badań i był opisany w
poprzednim odcinku i przygotowując dla niego dane można oczywiście wybrać
dowolnie. W opisywanych tu eksperymentach używano następujących wskaźników:

  • WIG czyli Warszawski Indeks Giełdowy,
    opisujący zmiany cen wszystkich spółek rynku podstawowego
  • WIG20 opisujący zmiany cen 20 największych
    spółek rynku podstawowego
  • MIDWIG jest typem indeksu cenowego.
    Nie uwzględnia on dochodów z dywidend i praw poboru. Obejmuje on notowania
    40 spółek na rynku podstawowym Skład tego indeksu zmienia się co 3 miesiące.
  • WIRR zmiany cen wszystkich spółek
    rynku równoległego

Oraz ceny akcji następujących spółek:

  • Apator S.A.
  • Big Bank
  • Mostostal
  • KGHM

Można oczywiście było przeprowadzić eksperymenty z uwzględnieniem
ilości sprzedanych akcji, kursu dolara, czy mierzalnych tendencji w
budownictwie mogących mieć wpływ na sprzedaż cementu. Można byłoby pójść
dalej, analizując np. za pomocą rocznika statystycznego, co może mieć wpływ
na ilość budowanych obiektów. Nie chodzi tu o znajdowanie ścisłych zależności
(to może zrobić PG), lecz raczej o poszerzenie zbioru ewentualnych kandydatów
zakładając, że PG i tak „odrzuci” tych złych. Można wreszcie
zapoznać się z opiniami ekspertów w dziedzinie budownictwa. Postępowanie
takie może być jednak mało celowe w wypadku gdyby okazało się, że większość
cementu sprzedawana jest na eksport lub gromadzona.

Zbiór symboli terminalnych i określenie zbioru funkcji

Formalnie biorąc zbiór symboli terminalnych został określony
następująco:

T={WIG,WIG20,MIDWIG,WIRR,APA,BIG,MOS,KGH}

Gdzie:
WIG, WIG20, WIRR, MIDWIG – oznaczają wartości wskaźników
WIG, WIG20, WIRR, MIDWIG.
APA –
oznacza wartość ceny wskaźnika spółki Apator S.A.
BIG –
oznacza wartość wskaźnika Big Bank w Gdańsku
MOS –
oznacza wartość wskaźnika Mostostal
KGH –
oznacza wartość wskaźnika KGHM

W zbiorze T zrezygnowano z obecności stałych,
gdyż system ma tendencje do aproksymowania wskaźnika stałą, co jest nie do
przyjęcia.

Początkowo do zbioru funkcji, określonego w poprzednim
artykule, włączono dwuargumentowe funkcje MIN oraz MAX
zwracające odpowiednio mniejszą i większą z dwóch liczb. W prowadzenie do
zbioru F tych funkcji początkowo spowodowało zwiększenie się
szybkości uczenia, mierzonego wzrostem przystosowania najlepszego osobnika i
polepszenie wyników. Niestety przy analizie postaci rozwiązań okazało się,
że obecność ww. funkcji powoduje sklejanie rozwiązań z kawałków. Można
dokonać generalizacji, że jeżeli system uczy się szybko to uczy się źle.
Analogia z uczeniem się człowieka jest tu oczywista. Jeśli uczymy się czegoś
„po łebkach” rezultat jest mizerny. Zmieniono nieznacznie definicję
funkcji % (dzielenie), tak aby zapewniając w dalszym ciągu własność
domkniętości, funkcja była bliższa swojemu matematycznemu pierwowzorowi.
Wprowadzono także funkcję odw odpowiadającą odwrotności,
zdefiniowaną następująco:

odw(x):=%(1,x)

Postępowanie takie jest uzasadnione tym, że przy braku stałych
w zbiorze T trudno byłoby wygenerować wyrażenia w postaci:

1/w

gdzie:
w jest dowolnym wyrażeniem.

Powyższa trudność jest spowodowana tym, że przy braku stałych
jedynka musiałaby być wyrażona jako w/w. Warto, w tym miejscu
zauważyć, że wyrażenie w może być bardzo rozbudowane.
Jedynka reprezentowana byłaby jako węzeł (% dzielenie) posiadający
dwa identyczne poddrzewa w. Dla złożonych wyrażeń w
wygenerowanie takiego poddrzewa byłoby mało prawdopodobne. Dobre wyniki
uzyskiwano przy użyciu zbioru określonego, jak dla badań z jedną zmienną,
czyli:

F={+,-,*,%,sin,cos,rlog,exp,srt,atan,sqrt}

Nikt jednak nie może zagwarantować, że nie istnieje
inaczej zdefiniowany zbiór F, dający lepsze wyniki. Rozszerzanie
zbioru funkcji nie jest już takie oczywiste jak rozszerzanie zbioru symboli
terminalnych. Symbole terminalne występują wyłącznie w węzłach będących
liśćmi drzewa. Zmiana zbioru symboli terminalnych ma więc wpływ jedyne na liście
drzew, a – mówiąc formalnie – na liczbę możliwych etykietowań liści.
Ponieważ funkcje reprezentowane są przez węzły nie będące liśćmi, to
zmiany w zbiorze funkcji wpływają o wiele mocniej na strukturę możliwych do
wygenerowania drzew. Oczywiście rozszerzanie obu zbiorów poszerza przestrzeń
przeszukiwania. Z obserwacji wynika jednak, że generowane drzewa mają dość
dużą wysokość, czyli drzewo zawiera dużo więcej funkcji niż symboli
terminalnych. Tłumaczy to większy wpływ rozszerzania zbioru funkcji, niż
rozszerzania zbioru symboli terminalnych. Trzeba jeszcze wspomnieć, że wybór
funkcji do zbioru F nie jest technicznie prosty, zajmuje bowiem dużo
czasu. Najprościej jest -i takie podejście było zastosowane-
rozszerzać w kolejnym kroku o jedną funkcję. Jeżeli postępowanie takie nie
pogarsza wyników, to funkcję pozostawia się w zbiorze F. Jeżeli
zachodzi sytuacja przeciwna, to funkcję usuwa się ze zbioru funkcji. Jest to
maksymalizacja zbioru funkcji. Następnie można próbować usuwać funkcje,
postępując analogicznie jak przy rozszerzaniu. Może się jednak okazać, że
pewne funkcje muszą współistnieć z innymi aby poprawić wyniki, natomiast
gdy istnieją one pojedynczo to wyniki ulegają pogorszeniu. Na pewno
zaproponowanie zbioru funkcji F jest łatwiejsze niż
zaproponowanie całego modelu matematycznego. Różnica jest taka jak pomiędzy
wskazaniem z czego ma być wybudowany dom (PG) a wybudowaniem całego domu
(metody tradycyjne).

Próby modyfikacji funkcji fitness

Większość eksperymentów przeprowadzona była z funkcją fitness
określoną jako suma wartości błędów dla wszystkich wyrazów (notowań,
punktów) ciągu uczącego. Poza takimi eksperymentami podjęto próby z funkcją
fitness dyskretną określoną na zbiorze {0,1}. W
przypadku gdy rzeczywista wartość błędu dla danego notowania (wartość
bezwzględna różnicy pomiędzy estymatorem a wartością wskaźnika) była
mniejsza od pewnej wcześniej założonej wartości progowej, funkcja fitness
przyjmowała w tym punkcie wartość 0, natomiast w wypadku
przeciwnym wartość 1. Fitness całego osobnika
obliczana była jako suma wartości funkcji fitness dla poszczególnych
punktów. Warto zauważyć, że dla tak określonej funkcji fitness
najgorzej przystosowany osobnik w populacji ma wartość funkcji fitness
co najwyżej:

fitness=n

gdzie:
n – określa długość ciągu uczącego

Najmniejsza możliwa wartość funkcji fitness
to oczywiście 0. Kluczowa w takim postępowaniu wydaje się być
wartość progu. Eksperymenty przeprowadzono dla różnych wartości progu: 1,
0.5, 0.1, 0.01
. Długość ciągu uczącego była 10 lub 20, czyli
maksymalna wartość funkcji fitness była odpowiednio 10
i 20.
Jeżeli wartość progu była równa 1, to bez trudu osiągano wzrost
przystosowania w kolejnych generacjach. Po 100 generacjach udawało się osiągnąć
przystosowanie rzędu 4 dla ciągu uczącego równego 20, co oznacza, że 16 spośród
punktów uczących zostało przybliżone z błędem mniejszym niż 1, co dla
wartości przybliżanego wskaźnika rzędu 50, oznacza z kolei błąd względny
na poziomie 2%. Estymator nie przybliżał jednak kierunku zmian wskaźnika w
stopniu zadowalającym, czyli nie jest zgodny z nim fazowo, co pokazano na
rysunku 7.
Przy wartości progu równej 0.5 udało się osiągnąć wartość
przystosowania równą 10 po 100 generacjach dla ciągu uczącego równego 20.
Estymator źle przybliża wskaźnik. Dla mniejszych wartości progu rzędu 0.1 i
0.01 nie zaobserwowano powtarzalnego wzrostu przystosowania dla kolejnych
generacji. Użycie dyskretnej funkcji fitness nie
poprawia w żaden sposób uczenia. Przy przewidywaniu dla wartości progu równej
1, wartość estymatora przekraczała prawie 10-krotnie wartość wskaźnika,
eliminując użycie tak zdefiniowanej funkcji fitness. Obserwacje
powyższe świadczą z dużym prawdopodobieństwem o tym, że istota PG polega
na powolnym dostrajaniu populacji. Można by przeprowadzić dalsze badania
dotyczące wyników uzyskanych przy zmianie definicji funkcji fitness
podczas przetwarzania. Odpowiadałoby to gwałtownej zmianie warunków (np. gwałtowna
zmiana klimatu), w której żyje populacja zwierząt, co wymusza szybkie
przystosowanie do nowych warunków. Można by najpierw przeprowadzać zgrubne
dostrajanie przy pomocy dyskretnej fitness z dużą wartością
progu, aby w następnych generacjach użyć standardowo zdefiniowanej funkcji fitness,
lub zmieniać sekwencyjnie funkcję fitness co kilka generacji
przy długim przetwarzaniu, aby niejako odsiać osobniki źle przystosowane.

Uczenie dla dyskretnej funkcji fitness
Rysunek 7. Uczenie dla dyskretnej funkcji fitness

Wpływ długości przetwarzania na wyniki

Istotnym zagadnieniem, mającym wpływ zarówno na wyniki,
jak i na koszt jest długość przetwarzania wyrażona ilością przetwarzanych
generacji. Ponieważ przetwarzanie kończy się po wygenerowaniu określonej ilości
pokoleń -tak jest określony warunek stopu – należy odpowiedzieć
sobie na pytanie: jak długo w praktyce należy przetwarzać i czy dalsze
przetwarzanie ma jeszcze sens. Czyli czy następuje poprawa wyników znacząca w
stosunku do kosztów dalszego przetwarzania. Przetwarzanie trwające 400
generacji, o wielkości 5000 osobników każda, trwało na komputerze z
procesorem CELERON 466 MHz i pamięci operacyjnej 120 Mb około 12 godzin.
Zmiany przystosowania najlepszego osobnika w populacji pokazane są na rysunku
8.

Zmiany przystosowania najlepszego osobnika dla kolejnych generacji
Rysunek 8. Zmiany przystosowania najlepszego osobnika dla kolejnych generacji

Widać, że początkowo duży wzrost przystosowania
najlepszego osobnika, czyli spadek wartości funkcji fitness wyraźnie
maleje po wygenerowaniu około 100 generacji. Na podstawie przeprowadzonych
eksperymentów można powiedzieć, że dla populacji o wielkości 5000 nie ma
sensu przetwarzanie dłuższe niż przez 150 generacji, a dla populacji wielkości
1000 dłuższe niż 100. Dalsze przetwarzanie nie poprawia istotnie wyników, a
wydatnie zwiększa koszty przetwarzania. Zaobserwowano także, że ze wzrostem
rozmiaru populacji następuje zwiększenie ilości generacji, w których
poprawia się przystosowanie. Jeżeli na początku przetwarzania nie następuje
wzrost przystosowania w sensie przystosowania najlepszego osobnika, to dalsze
przetwarzanie z dużym prawdopodobieństwem nie polepszy wyników.
W algorytmach genetycznych opisywano dobre wyniki bardzo długiego przetwarzania
bardzo niewielkiej populacji. W PG nie udało się osiągnąć zadowalających
wyników przy bardzo długim, w sensie ilości populacji, czasie przetwarzania
niewielkiej (100 osobników) populacji.

Wpływ długości ciągu uczącego na wyniki

Jeśli chodzi o człowieka to wiadome jest, że im dłużej
się on uczy tym lepszy osiąga rezultat. Utarło się nawet na ten temat kilka
powiedzeń. Uczenie w tym sensie można przyrównać do długości przetwarzania
omówionej poprzednio. Dobrą analogią byłoby tutaj uczenie się przez
studenta medycyny objawów chorób lub nawet uczenie się wiersza. Gdy uczymy się
matematyki uczenie przebiega ewidentnie inaczej. Po przyswojeniu pewnych
definicji rozwiązujemy i analizujemy konkretne zadania. Takie samo opanowanie
przez studenta medycyny książkowych przykładów objawów nie wystarczy do
prawidłowego stawiania diagnoz. Potrzeba jeszcze praktyki. Analogią do takiego
rodzaju uczenia może być długość ciągu uczącego w PG, w którym mamy do
czynienia z uczeniem na przykładach (ang. Learning by example). Im dłuższy
ciąg uczący tym więcej „praktyki”. Jest oczywiste, że mamy więcej
zaufania do lekarza, który długo praktykował, niż do młodego absolwenta
medycyny. Czy w PG jest tak samo? Przy doświadczalnym zbadaniu problemu okazuje
się, że nie do końca. Nie można wprost porównywać wartości funkcji fitness
dla najlepszych osobników dlatego, że jej wartość jest sumą błędów dla
punktów (wyrazów) ciągu uczącego. Co oczywiste, wartość ta silnie zależy
od długości ciągu uczącego. Celowe jest porównanie błędów w poszczególnych
punktach ciągu uczącego. Można obliczyć błąd średni, minimalny i
maksymalny. Przy porównywaniu wyników należy brać nie tylko jakość ucznia,
czyli identyfikacji funkcji, ale też zgodność co do wartości osiąganą na
ciągu testowym (czyli w pewnych wypadkach po prostu jakość przewidywania) i
zgodność fazową wskaźnika i jego estymatora na podciągu uczącym i
testowym. Model 2/3 może być zbudowany w oparciu o trzy punkty; dwa do
uczenia, jeden do testowania (przewidywania).
Im dłuższy ciąg uczący tym trudniejsza jest identyfikacja funkcji. Okazuje
się, że przy zwiększaniu długości ciągu uczącego należy zwiększać
rozmiar populacji, co implikuje konieczność dłuższego przetwarzania.
Rozpatrywano ciągi o następujących długościach: 3, 15, 30, 60, 150 stosując
zawsze model 2/3. Dla ciągu o długości 3 system uczy się bardzo łatwo (co
jest oczywiste bo przez 2 punkty przechodzi zawsze prosta), wartości wskaźnika
na ciągu testowym różnią się jednak znacznie od wartości rzeczywistych.
Czyni to w praktyce zastosowanie ciągu o długości 3 nieprzydatnym. Dla ciągu
o długości 15 system aproksymuje wskaźnik gładką, zbliżoną do prostej,
krzywą. Brak też jest zgodności fazowej wskaźnika i jego estymatora. Dla ciągów
o długości 30 i 60 wartości estymatora różnią się od wartości
rzeczywistej wskaźnika ale są zgodne fazowo, co jest korzystne (patrz rysunek
9).

Uczenie dla ciągu o długości 30
Rysunek 9 Uczenie dla ciągu o długości 30
(20 – uczenie, 10 – testowanie)

Dla ciągów uczących o długości 150 otrzymywano różne
wyniki w zależności od maksymalnej wysokości generowanych drzew. W skrajnych
wypadkach dane różnią się znacznie. Często wartość estymatora jest, na ciągu
testowym, dwudziestokrotnie większa od wartości wskaźnika. Pomimo złego
uczenia się -co zastanawiające- dla drzew o maksymalnej wysokości
równej 5 (chodzi zarówno o drzewa generowane w pierwszej generacji jak i o
drzewa otrzymane na drodze krzyżowania) estymator jest zgodny fazowo ze wskaźnikiem.
Dla drzew o maksymalnej wysokości 17 dzieje się odwrotnie. Uczenie przebiega
dobrze, natomiast estymacja przyszłych wartości wskaźnika przebiega bardzo źle.
Uczenie dla ciągu o dużej długości powinno przebiegać dłużej (w sensie
ilości generacji), a więc jest bardziej kosztowne od uczenia na ciągu krótszym.
Ograniczenie wysokości drzew może mieć, jak się wydaje, korzystny wpływ na
przetwarzanie. Można powiedzieć, że dla wielu zmiennych optymalna jest długość
ciągu rzędu 30, 60.
Podsumowując obserwacje wpływu długości ciągu uczącego na jakość uczenia
i przewidywania, można powiedzieć, że zastosowanie ciągu o długości 30
minimalizuje maksymalny błąd, a zastosowanie ciągu o długości 60
minimalizuje średni błąd. Ciąg o długości 15 wydaje się być zbyt krótki.
Zastosowanie ciągu o długości 150 wydaje się stwarzać trudności i można
przyjąć, że jest niekorzystne.
Podsumowując wynik i użyteczność PG z wieloma zmiennymi uczącymi warto zwrócić
uwagę na to, że przy ciągach o długości rzędu 60 osiągano dobre wyniki
zarówno dla ciągu uczącego, jak i testowego. Notowania odbywają się co dwa,
trzy dni, tak więc ciąg 60 notowań odpowiada okresowi powiedzmy półrocznemu.
PG z wieloma zmiennymi uczącymi wydaje się być mocnym narzędziem przede
wszystkim do znajdowania zależności giełdowych i może umożliwić poznanie
mechanizmów nią rządzących.
Można zauważyć, że krzywa aproksymująca wskaźnik na ogół ma bardziej gładki
przebieg niż sam wskaźnik. Może to również przemawiać za faktem uczenia
poprzez powolne dostrajanie populacji. Wydaje się, że PG jest „leniwym,
choć zdolnym uczniem”. Lenistwo to można zaobserwować -jak już
wspominano- poprzez tendencję do aproksymowania wskaźnika prostą, co ułatwia
obecność stałych z zbiorze T, lub wspomnianą tendencją do
sklejania funkcji z kawałków wobec istnienia funkcji min i max
w zbiorze funkcji F. Oczywiście wspomniany wymóg (stawiany
zbiorowi funkcji F) aby rozwiązanie można było łatwo wyrazić
za pomocą funkcji ze zbioru F to jedno, a fakt, że PG czasami
lubi iść „po najmniejszej linii oporu” to już inna sprawa.

Jak poprawić wyniki – wstępne przetwarzanie i filtry

W praktyce każdy sygnał jest zakłócony szumem. W
systemach telekomunikacyjnych szum może być dużo większy, niż sam sygnał.
Na obraz filmowany kamerą video mają wpływ wstrząsy, jeśli filmujemy
„z ręki”, pogarszając jego jakość. Warto tu dodać, że w
kamerach video stosuje się algorytmy genetyczne do poprawienia jakości obrazu.
Realizacja algorytmu genetycznego może być w takim przypadku sprzętowa.
Oznacza to istnienie wyspecjalizowanego układu elektronicznego w systemie
elektronicznym kamery. Do obróbki sygnałów można stosować też
programowalne procesory sygnałowe.
Można przyjąć, że nieznaczne wahnięcie notowania giełdowego też jest
pewnym zakłóceniem. Nie wchodząc w szczegóły, warto wziąć pod uwagę, że
zwykła plotka może mieć wpływ na notowania giełdowe. W analizie technicznej
– a z taką mamy cały czas do czynienia- zakładamy, że obecny
stan rynku papierów wartościowych jest zdeterminowany stanami poprzednimi,
czyli historycznymi (stwierdzenie jest bardziej istotne przy przewidywaniu, niż
przy znajdowaniu zależności). Zdaniem autora należy odnieść to do istotnych
zmian wartości wskaźnika. Trudno uwierzyć, że puszczona w obieg pogłoska o
zmianie właściciela firmy zdeterminowana jest poprzednimi stanami rynku.
Oczywiście rzeczywista zmiana właściciela lub dyrektora firmy może być
rezultatem poprzednich złych notowań spółki, lecz tu interesuje nas plotka a
nie rzeczywisty fakt. Poza tym, jako poprzednie stany rynku rozumiemy wartości
mierzalne. Nie można więc plotki traktować jako wielkości mierzalnej.
Jeżeli zatem interesuje nas zbadanie istotnych zmian notowania giełdowego, dużą
pomocą może być pozbycie się zakłóceń. Zwykła obróbka zdjęcia
rentgenowskiego poprzez wyrównanie histogramu może poprawić czytelność nie
widocznych wcześniej, a istotnych dla diagnozy szczegółów. Filtry uśredniające
mogą być stosowane w grafice komputerowej do pozbycia się „śniegu”,
nawet gdy jest go dość dużo na obrazku. Łatwo się o tym przekonać skanując
zdjęcie złej jakości, a następnie poddając je obróbce przy pomocy
profesjonalnego programu graficznego.
Idea filtrowania i wstępnego przetwarzania przebiegów notowań giełdowych
zrodziła się w pewnej mierze z filtrowania obrazów oraz z obserwacji
dokonanych przy okazji testowania poprawności działania systemu. Przygotowano
wtedy pewne dane testowe, do których wygenerowania użyto pewnych funkcji
matematycznych. W tym przypadku uczenie i identyfikacja przebiegały bardzo łatwo
nawet, jeśli funkcje były dość złożone. Wprowadzenie do wartości ciągów
testowych losowych zakłóceń, o niewielkiej nawet wartości, znacznie utrudniło
uczenie. Obserwacje te zaowocowały przeprowadzeniem eksperymentów nad
zastosowaniem różnych filtrów. Niektóre z nich pochodzą z grafiki
komputerowej inne są specyficzne dla analizy notowań giełdowych.
Oczywiście nie wszystkie wymienione poniżej filtry służą do oczyszczenia
danych z szumu. Niektóre z nich mają po prostu ułatwić przetwarzanie lub są
użyte do uzyskania pewnych charakteryzujących ciąg notowań wielkości lub
wreszcie są analogiczne do filtrów krawędziowych stosowanych w grafice
komputerowej.
Najprostszym rodzajem wstępnego przetwarzania może być regresja liniowa.
Polega ona na wstępnym aproksymowaniu przebiegu wskaźnika giełdowego funkcją
liniową. Następnie dla każdego z punktów oblicza się różnice między
wartością tej funkcji w tym punkcie a wartością notowania. Jako danej dla PG
używa się ciągu tak obliczonych różnic. Model zbudowany przez PG służy w
tym przypadku do generowania różnic, do których należy dodać wartości
funkcji użytej do wstępnej regresji liniowej, aby otrzymać wartości
estymatora. Innym rodzajem filtra jest obliczenie przyrostów.
Polega ono na obliczeniu różnicy pomiędzy danym notowaniem a notowaniem następnym.
Zauważmy, że aby dokonać przekształcenia odwrotnego do obliczenia przyrostów,
należy znać pierwszą wartość w ciągu. Dyskretyzacja danych
polega na zakwalifikowaniu wartości wskaźnika do pewnej klasy abstrakcji.
Klasa ta odpowiada zmiennej lingwistycznej. Zmienne lingwistyczne zostały omówione
w poprzednim artykule. Zauważmy, że dyskretyzacja danych nie posiada przekształcenia
odwrotnego. Zagadnienie wyboru kryterium podziału przedziału w jakim zawierają
się wartości wskaźnika na pod-przedziały odpowiadające klasom abstrakcji,
stanowi osobny problem. Zauważmy, że w pewnych przypadkach bardzo mała zmiana
wartości wskaźnika może spowodować „zaliczenie” wartości wskaźnika
do innej klasy abstrakcji. Pewnym rozwiązaniem mogłoby tu być zastosowanie
logiki rozmytej. W klasycznej teorii mnogości element albo należy do zbioru
albo nie należy. W przypadku logiki rozmytej określamy stopień przynależności
elementu do zbioru. Można powiedzieć, że logika rozmyta rozszerza logikę
wielowartościową.
Jeśli chodzi o filtry „pochodzące” z grafiki można wymienić
filtry Uśredniające, Laplace’a, Gaussa oraz filtry
statystyczne
. Filtry statystyczne są bardzo silnym narzędziem służącym
do odfiltrowywania obrazu z zakłóceń, nie powodując jednocześnie rozmywania
obrazu. Idea działania takiego filtra polega na posortowaniu pewnego podzbioru
danych i wybraniu odpowiednio wartości minimalnej (filtr minimalny),
maksymalnej (filtr maksymalny) lub mediany (filtr medianowy). Medianę
wyznaczamy poprzez wybranie elementu środkowego z posortowanego ciągu o
nieparzystej długości.
W grafice podzbiorem takim jest najczęściej prostokątny lub kwadratowy
fragment obrazu. W analizie giełdy jest to podciąg ciągu uczącego. Trzeba
sobie zdać sprawę, że fragment obrazu (maska) jest stosunkowo niewielki np. 9
pikseli. W zastosowaniach giełdowych długości podciągów są również
niewielkie np. 3 notowania. Filtry uśredniające, Gaussa
i Laplace’a w grafice mogą być realizowane poprzez
obliczanie splotu obrazu z maską [3]. Obliczanie splotu polega na tym, że
wartość piksela wyliczana jest jako suma wartości pikseli sąsiednich (i
danego piksela) z odpowiednimi wagami. Wagi te definiuje maska. Filtry uśredniające
stosuje się do wygładzania obrazu i odfiltrowywania go z zanieczyszczeń,
rozmywają jednak one obraz.

Filtr Gaussa jest filtrem dolnoprzepustowym,
tzn. obcina on wysokie częstotliwości. Może on być stosowany do wyostrzania
obrazów.

Filtry Laplace’a służą w grafice do
wykrywania krawędzi obrazów, co może mieć znaczenie np. przy automatycznym
zliczaniu krwinek na zdjęciu z mikroskopu.
Charakterystyki i wpływu filtrów nie można oczywiście przenosić wprost z
grafiki do ekonometrii. Ich wpływ został zbadany poprzez przeprowadzenie
eksperymentów. Oczywiście maska nie jest 2-wymiarowa jak w grafice, a
1-wymiarowa.

c.d.n.

Literatura
[1] Fraser, Weinbrenner, The Genetic Programming Kernel

[2] Koza J., Genetic Programing. Mit Press London England
[3] Watkins Ch., Sadun A., Marenka S., Nowoczesne metody przetwarzania obrazu,
WNT 1995