Prognozowanie kierunku ruchu indeksów giełdowych na podstawie danych historycznych.



Podobne dokumenty
Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Dokumentacja Końcowa

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

Temat: Sieci neuronowe oraz technologia CUDA

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Sieci neuronowe w Statistica

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Zastosowania sieci neuronowych

Optymalizacja ciągła

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Uczenie sieci typu MLP

wiedzy Sieci neuronowe

Widzenie komputerowe

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH**

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Elementy inteligencji obliczeniowej

Uczenie sieci neuronowych i bayesowskich

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

8. Neuron z ciągłą funkcją aktywacji.

RAPORT Z PRAKTYKI. Zastosowanie Sztucznych Sieci Neuronowych do wspomagania podejmowania decyzji kupna/sprzedaży na rynku Forex.

Zastosowanie sztucznych sieci neuronowych w prognozowaniu szeregów czasowych (prezentacja 2)

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Sieci neuronowe jako sposób na optymalizacje podejmowanych decyzji. Tomasz Karczyoski Wydział W-08 IZ

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Podstawy Sztucznej Inteligencji (PSZT)

I EKSPLORACJA DANYCH

Budowa sztucznych sieci neuronowych do prognozowania. Przykład jednostek uczestnictwa otwartego funduszu inwestycyjnego

Metody Sztucznej Inteligencji II

WYKORZYSTANIE SZTUCZNYCH SIECI NEURONOWYCH W PROGNOZOWANIU

PRÓBA ZASTOSOWANIA SIECI NEURONOWYCH DO PROGNOZOWANIA OSIADAŃ POWIERZCHNI TERENU POWSTAŁYCH NA SKUTEK EKSPLOATACJI GÓRNICZEJ**

Sieci neuronowe - dokumentacja projektu

Systemy uczące się wykład 2

SIEĆ NEURONOWA JAKO NARZĘDZIE APROKSYMACJI I KLASYFIKACJI DANYCH. Jakub Karbowski Gimnazjum nr 17 w Krakowie

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

Definicja perceptronu wielowarstwowego

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

Temat: ANFIS + TS w zadaniach. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Optymalizacja optymalizacji

Sztuczne sieci neuronowe. Uczenie, zastosowania

METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu

Sieci M. I. Jordana. Sieci rekurencyjne z parametrycznym biasem. Leszek Rybicki. 30 listopada Leszek Rybicki Sieci M. I.

Projekt Sieci neuronowe

Systemy uczące się Lab 4

Sztuczne sieci neuronowe

Wstęp do sztucznych sieci neuronowych

Algorytmy wstecznej propagacji sieci neuronowych

Sztuczne sieci neuronowe

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Wprowadzenie do Sieci Neuronowych Laboratorium 05 Algorytm wstecznej propagacji błędu

Sztuczne Sieci Neuronowe. Wiktor Tracz Katedra Urządzania Lasu, Geomatyki i Ekonomiki Leśnictwa, Wydział Leśny SGGW

Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner. rok akademicki 2013/2014

System transakcyjny oparty na wskaźnikach technicznych

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

Inteligentne systemy przeciw atakom sieciowym

wiedzy Sieci neuronowe (c.d.)

Algorytmy sztucznej inteligencji

Sztuczne siei neuronowe - wprowadzenie

ANALIZA TECHNICZNA RYNKÓW FINANSOWYCH

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu - metodologia badań

Podstawy sztucznej inteligencji

Podstawy Sztucznej Inteligencji

Instrukcja realizacji ćwiczenia

Sztuczna inteligencja

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

ROC Rate of Charge. gdzie ROC wskaźnik szybkości zmiany w okresie n, x n - cena akcji na n-tej sesji,

METODY INŻYNIERII WIEDZY

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

SIECI REKURENCYJNE SIECI HOPFIELDA

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym, kontynuacja badań

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

1. Architektury, algorytmy uczenia i projektowanie sieci neuronowych

ALGORYTM RANDOM FOREST

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Wybór / ocena atrybutów na podstawie oceny jakości działania wybranego klasyfikatora.

1 Moduł Neuronu Analogowego SM

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

Inteligentne systemy informacyjne

SZTUCZNA INTELIGENCJA

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD X: Sztuczny neuron

Politechnika Warszawska

Podstawy Sztucznej Inteligencji Sztuczne Sieci Neuronowe. Krzysztof Regulski, WIMiIP, KISiM, B5, pok. 408

ĆWICZENIE 5: Sztuczne sieci neuronowe

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Metody sztucznej inteligencji Zadanie 3: (1) klasteryzacja samoorganizująca się mapa Kohonena, (2) aproksymacja sieć RBF.

Wybrane zastosowania sztucznych sieci neuronowych na rynku walutowym, rynku terminowym i w gospodarce przestrzennej

Literatura. Sztuczne sieci neuronowe. Przepływ informacji w systemie nerwowym. Budowa i działanie mózgu

Modyfikacja algorytmów retransmisji protokołu TCP.

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

BIOCYBERNETYKA SIECI NEURONOWE. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Sztuczne sieci neuronowe (SNN)

Transkrypt:

Metody Sztucznej Inteligencji 2 Projekt Prognozowanie kierunku ruchu indeksów giełdowych na podstawie danych historycznych. Autorzy: Robert Wojciechowski Michał Denkiewicz Mateusz Gągol

Wstęp Celem projektu jest umożliwienie przewidywania trendu światowych indeksów giełdowych na podstawie informacji historycznych. Niektórzy uczeni twierdzą, że ruchy cen akcji przypominają nieliniowy deterministyczny proces (chaos), a tylko trudność jego matematycznego zapisu sprawia, że z pozoru wydają się losowe. W programie zostanie wykorzystana sieć neuronowa, ponieważ posiada właściwości umożliwiające uczenie się nieliniowych zależności między danymi wejściowymi. Sieć typu Backpropagation Sieć składa się z z jednostek wejściowych oraz przetwarzających zwanych neuronami. Neurony połączone z wszystkimi neuronami w kolejnej warstwie z uwzględnieniem wag, które magazynują wiedzę wytrenowanej sieci. W warstwach ukrytej oraz wejściowej może znajdować się jednostka bias zwracająca na wyjściu zawsze 1. Ilość warstw ukrytych oraz neuronów zależy od rozmiaru oraz natury zadania.

Sieci typu Backpropagation są jednokierunkowe oraz korzystają z mechanizmów uczenia. Przepływ informacji następuje od warstwy wejściowej do wyjściowej. Proces uczenia natomiast polega na porównywaniu otrzymanych wyników z poprawnymi odpowiedziami, a następnie poprawiania wag w oparciu o algorytm minimalizacji sumy kwadratów błędów. Sieci typu Backpropagation wykorzystywane są w 80% aplikacji służących do prognozowania ruchów cen na giełdach. Preprocessing danych Bazowy zestaw danych wejściowych będzie normalizowany do przedziału [-a,a], gdzie parametr a dobierany będzie eksperymentalnie z przedziału [0,1]. Oprócz bazowego zestawu danych wejściowych, będziemy badać sieci pracujące z wstępnie przetworzonymi danymi wejściowymi. Do zestawu danych zostanie dołączony wskaźnik RSI (Relative Strength Index) lub inny rodzaj ważonej średniej kroczącej. RSI jest popularnym wskaźnikiem analizy technicznej używanym najczęściej w połączeniu z innymi wskaźnikami. Określa siłę trendu porównując ruchy zwyżkujące i zniżkujące cen zamknięcia w danym okresie czasu. Twórca wskaźnika sugeruje okres 14 dniowy jako optymalny. Jednak na potrzeby programu zostaną wykorzystane wersje z 9 lub 7 dniowym przedziałem czasowym (są bardziej czułe na zmiany). Wartości wskaźnika podaje się w skali o 0 do 100. W praktyce stosuje się dwie metody interpretacji wskaźnika. Pierwsza z nich polega na obserwacji rozbieżności pomiędzy wartością wskaźnika a wartością cen akcji (wartością indeksu). Do zastosowania z siecią neuronową, lepiej nadaje się druga metoda. Określane są poziomy wykupienia i wyprzedania rynku. Przekroczenie tych poziomów przez wskaźnik oznacza odwrócenie trendu. Poziomy są dobierane na wysokości 20-30% dla wyprzedania i 70-80% dla wykupienia. Jako dane wejściowe sieci podawana będzie wartość RSI, wartości indeksu na zamknięciu sesji oraz wolumen obrotów. Wszystkie wartości przeskalowane. Inną możliwością wstępnego przetworzenia danych jest obliczenie średniej kroczącej ważonej z uwzględnieniem wolumenu obrotów. Zostanie dobrane średnia o stosunkowo szybkiej reakcji na zmiany. Razem ze średnią jako dane wejściowe podawane będą wartości indeksu na zamknięciu sesji. Dobór danych wejściowych i stosowanych parametrów związanych ze wskaźnikami powinny

być elastyczne. Wybrane zostały stosunkowo proste wskaźniki które mogą jedynie wspomagać interpretację samej wartości indeksu. Prognozowanie zmian kursu na podstawie samych wskaźników (np. MACD + RSI) nie zostanie uwzględnione. Zebranie danych wejściowych Jako zbiór uczący oraz do testów zostaną wykorzystane historyczne dzienne wartości światowych indeksów giełdowych. Są one dostępne nieodpłatnie w Internecie na stronie http://uk.finance.yahoo.com/m1.php Date Open High Low Close Volume Adj Close 2009-03-09 3530,7 3564,8 3460,7 3542,4 1,57E+09 3542,4 2009-03-06 3529,9 3590,2 3492,1 3530,7 1,59E+09 3530,7 2009-03-05 3645,9 3645,9 3526,4 3529,9 1,52E+09 3529,9 2009-03-04 3512,1 3649,5 3512,1 3645,9 1,28E+09 3645,9 2009-03-03 3625,8 3676,9 3497,3 3512,1 1,55E+09 3512,1 2009-03-02 3830,1 3830,1 3625,8 3625,8 1,49E+09 3625,8 Zbiory do trenowania oraz testowania Jest sprawą oczywistą, że zbiór do trenowania sieci neuronowej będzie największy, zawierając około 80% wszystkich rekordów wejściowych. Aby uogólnić proces uczenia rekordy będą przekazywane w sposób losowy do wejścia. Zbiór do testowania posłuży do sprawdzenia czy sieć została poprawnie wyuczona. Architektura sieci Głównym elementem aplikacji jest sieć neuronowa typu perceptron. Wybranie algorytmu backpropagation zapewnia duże możliwości uogólniania oraz stosunkową prostą implementację. Niestety problematyczne może być wykrycie odpowiedniej konfiguracji oraz parametrów sieci. Jeżeli zostania ona jednak znaleziona, a następnie poprawnie wytrenowana można spodziewać się dobrych wyników wydajności jej działania.

Sieć składać się będzie z trzech warstw: 1. warstwa wejściowa: n*m+1 elementów 1 bias zawsze na wejściu m - równe 3 lub 2 w zależności od wyboru rodzaju informacji wejściowych spośród wartość RSI, wartości indeksu na zamknięciu sesji oraz wolumen obrotów n - ilość dni w oknie czasowym (próbce czasowej) 2. warstwa ukryta : zostanie ona tak zaprojektowana aby umożliwić zmianę liczby neuronów z poziomu programu, w procesie testowania zostanie podjęta próba określenia najlepszej ilości neuronów w tej warstwie. dodatkowo 1 bias - zawsze na wejściu 3. warstwa wyjściowa: 1 neuron o wartości w przedziale <-1,+1>. Wartość <-1,0) oznaczać będzie zachętę do sprzedaży (przewidywana wartość spółki będzie niższa), natomiast wartość <0,1> sugerować kupno (przewidywana wartość spółki będzie wyższa) Każdy element wejściowy połączony jest z każdym neuronem warstwy ukrytej. Każdy neuron warstwy ukrytej połączony jest z neuronem wyjściowym Ilość ukrytych warstw Dzięki ukrytym warstwom sieć posiada możliwość uogólniania. Zgodnie z teorią sieć z jedną warstwą ukrytą jest zdolna do przybliżania funkcji ciągłych. Zbyt duża ilość warstw ukrytych może doprowadzić naddopasowania sieci (overfitting), charakteryzującego się zwiększonymi czasami obliczeń i pogorszeniem zdolności wykrywania ogólnych wzorców. Ilość ukrytych neuronów Nie istnieje wzór umożliwiający dokładne obliczenie optymalnej liczby neuronów w warstwie ukrytej. Możliwe jest jednie podawanie zakresów w jakich się ona znajduje,a następnie testowanie kolejnych wartości w nich się znajdujących. Punktem wyjścia uczynimy wynik otrzymany poprzez zastosowania zasady geometrycznej piramidy sqrt(n x m). Gdzie n oznacza ilość neuronów wejściowych, natomiast m wyjściowych.

Funkcja przejścia Funkcja przejścia używana jest do zdefiniowania wartości wyjścia w neuronach. W programie zostanie wykorzystana sigmoidalna funkcja. Zgodnie z literaturą jest ona najlepsza do trenowania sieci mającej symulować zjawiska charakteryzujące się niewielkimi odchyleniami. W przeciwnych wypadkach stosuje się hiperboliczny tangens. W każdym przypadku celem zastosowania funkcji przejścia jest uniemożliwienie otrzymania na wyjściu bardzo dużych wartości,które by paraliżowały sieć oraz uniemożliwiały jej wytrenowanie. Algorytm Backpropagation Algorytm propagacji wstecznej jest podstawowym algorytmem uczenia ( nadzorowanego czy z nauczycielem ) dla wielowarstwowych jednokierunkowych sieci neuronowych. Jest to zasada zmian wag Tij dowolnych połączeń elementów przetwarzających rozmieszczonych w warstwach sieci. Algorytm oparty jest o zasadę minimalizacji sumy kwadratów błędów uczenia z wykorzystaniem optymalizacyjnej metody największego spadku. 1. Aby określić stan j-tego neuronu w warstwie n obliczamy ważoną sumę jego M wejść M E n j = T n n 1 j,i U i i=1 E j n ważona suma wejściowa j-tego neuronu w warstwie n n T j,i waga połączenia i-tego neuronu w warstwie n-1 i j-tego neuronu w warstwie n U i n 1 wyjście i tego neuronu w warstwie n-1 2. Sygnał wyjściowy j-tego neuronu w warstwie n jest równy U i n 1 = f E j n gdzie f jest funkcją przejścia (przenoszenia) neuronu 3. Obliczany jest globalny sygnał błędu, który jest różniczkowalną funkcją wag sieci

M D=1/2 U. j U wy j 2 i=1. U j wzorcowe wyjście j-tego neuronu w warstwie wyjściowej n T j,i aktualne wyjście j-tego neuronu w warstwie wyjściowej 4. Na tym etapie algorytmu wstecznej propagacji za cel można uznać minimalizację błędu globalnego D, przez modyfikację wag sieci. Można do tego wykorzystać metodę gradientu. T n n j,i = N D/ T j,i N współczynnik uczenia Zmieniamy każdą wagę zgodnie z wielkością i kierunkiem ujemnego gradientu na hiperpowierzchni D(T). 5. Dla elementów położonych w warstwie wyjściowej T wy j,i = N d wy wy 1 j U i Natomiast funkcja błędu użyta do zmodyfikowania wag pomiędzy neuronami warstwy wyjściowej a elementami warstwy poprzedzającej ostatniej pośredniej to: T n j,i t =T n n j,i t 1 N T j,i T n j,i t = T n j, i t 1 1 d n j f E n 1 i Iteracyjne obliczenia pozwalają na poprawianie wag wstecz, aż do warstwy wejściowej.

Ilość iteracji W tworzonej aplikacji zastosowane zostaną dwa podejścia do wyboru odpowiedniej liczby iteracji. Pierwszy sposób opiera się na trenowaniu sieci za pomocą zbioru uczącego oraz co pewną stałą liczbę generacji H sprawdzanie przy użyciu zbioru walidacyjnego stopnia nauczenia sieci. Jeżeli będzie on większy niż zadana stała N(N% przewidywań poprawnych) wówczas następuje zakończenie procesu nauki sieci. Będzie istniała możliwość przerwania omawianego procesu przez użytkownika. Drugi sposób trenowania sieci polega na przekazaniu z poziomu interfejsu zadanej liczby iteracji. Współczynnik uczenia Współczynnik uczenia jest stałą określającą siłę z jaką wyznaczony błąd między otrzymanymi a poprawnymi wagami będzie propagowany wzdłuż sieci. Zmiana wagi neuronu zależy także od wpływu wagi na powstały błąd. Analogię tego procesu można porównać do próby umieszczenia piłki z dołka A w dołku C. Zbyt duża użyta siła może sprawić że znajdzie się ona w punkcie B. Natomiast zbyt mała sprawi,że piłka pozostanie w A. Podczas trenowania sieci zbyt wysoki współczynnik uczenia objawia się dużymi zmianami wartości funkcji błędu nie prowadzącymi do stałej poprawy. Za mały współczynnik prowadzi do niezauważalnej poprawy wartości funkcji błędu oraz wydłużenia czasu treningu. W praktyce na początku ustawia się współczynnik uczenia na poziomie powyżej 0.7, a następnie obniża w procesie treningu.

Funkcjonalność interfejsu aplikacji (technologia.net) : 1. Zarządzanie danymi wejściowymi dla sieci neuronowej: a) Wybór jednego ze światowych indeksów giełdowych b) Pobieranie danych z internetu (użytkownik podaje okres danych do pobrania) c) Przechowywanie d) Wizualizacja w postaci wykresu 2. Tworzenie i trenowanie sieci przy użyciu uprzednio pozyskanych danych. Użytkownik może sterować: a) Liczbami wykorzystywane do normalizacji danych wejściowych b) Współczynnikiem uczenia sieci c) Ilością generacji d) Wielkością warstwy ukrytej e) Wielkością okna (przedziałem czasowym danych na wejściu sieci) 3. Przechowywanie wytrenowanych sieci wraz z informacją o parametrach trenowania. 4. Generowanie prognozy na kolejny dzień przez wytrenowaną sieć. 5. Testowanie możliwości wytrenowanych sieci przy użyciu wybranych danych. 6. Jednoczesne uruchamianie trenowania kilku sieci o różnych parametrach na tych samych danych, zakończone testowaniem na innym podanym zestawie danych. Analiza efektywności sieci Istnieją cztery możliwe rezultaty porównania prognozy wygenerowanej przez sieć na konkretny dzień: poprawne przewidzenie wzrostu wartości indeksu poprawne przewidzenie spadku wartości indeksu zasygnalizowanie wzrostu, gdy ten nie nastąpił zasygnalizowanie spadku, gdy ten nie nastąpił Analiza efektywności sieci polegać będzie na obliczeniu proporcji występowania każdej z tych sytuacji podczas okresu testowania. Obliczany też będzie procent poprawnych rozpoznań trendu.