Muszę przyznać, że wynik jest imponujący choć nie podałeś jak długi był okres testowy. Możesz napisać coś więcej o danych wejściowych do swojej sieci?goospit1984 pisze:Witam (jestem tu nowy)
Temat ssn + waluty jest tematem mojej pracy magisterskiej.
Korzystając z sieci typu BMLP(wielowarstwowe połączenia) i FCC(kaskada) i algorytmu NeuronByNeuron(modyfikacja Levenberga-Marquarda) udało mi się uzyskać 80% skuteczność prognozy kierunku ruchu w dniu następnym.
Wydaje mi się to wystarczające.
Czuje że na tym forum jeszcze wiele sie naucze
Fraktale , Sieci neuronowe ,Algorytmy genetyczne...
- goospit1984
- Uczestnik
- Posty: 3
- Rejestracja: 02 wrz 2009, 13:15
okres testowy nie był długi, to fakt, jednak przenosiłem te badania na różne okresy, i było podobnie
w strukturę danych wchodziły wartości par (wszystkie z USD)takich jak
AUD, CAD,EUR,GBP,CNY,JPY,ILS,KWD,RUB,KRW,CHF. pary były ustawiane po 2 poprzedzające sesje co dało mi 22 pary przeszłych, plus jedna para prognozowana usd/eur(następnego dnia). Do tych danych dodałem jeszcze po 3 sesje cenowe ropy, złota i platyny(w USD). Dane nie były w żaden sposób skalowane,operacjonalizowane, jedynie sprawdzone pod względem poprawności.
Korzystałem z dwóch topologi sieci BMPL i FCC. Sieć FCC udało mi się zminimalizować do 4-5 neuronów bez utraty skuteczności. Im mniejsza sieć tym krócej się uczy i lepiej generalizuje dane.
w strukturę danych wchodziły wartości par (wszystkie z USD)takich jak
AUD, CAD,EUR,GBP,CNY,JPY,ILS,KWD,RUB,KRW,CHF. pary były ustawiane po 2 poprzedzające sesje co dało mi 22 pary przeszłych, plus jedna para prognozowana usd/eur(następnego dnia). Do tych danych dodałem jeszcze po 3 sesje cenowe ropy, złota i platyny(w USD). Dane nie były w żaden sposób skalowane,operacjonalizowane, jedynie sprawdzone pod względem poprawności.
Korzystałem z dwóch topologi sieci BMPL i FCC. Sieć FCC udało mi się zminimalizować do 4-5 neuronów bez utraty skuteczności. Im mniejsza sieć tym krócej się uczy i lepiej generalizuje dane.
Odbite z Karta Tesla - GPU/CUDA
Ale, ten wątek bym proponował ew. tutaj pociągnąć.
Skąd takie spostrzeżenie. Bo nie pasuje mi to do funkcji danych serii w czasie.
Logika wewnętrzna NN to skomplikowany tematLowcaG pisze:Powiem tylko tyle, wieksze sieci mniej generalizuja a bardziej dopasowują się do danych.

Ale, ten wątek bym proponował ew. tutaj pociągnąć.
Skąd takie spostrzeżenie. Bo nie pasuje mi to do funkcji danych serii w czasie.
R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)
hehe, pozwolę sobie jednak stwierdzić, że NN to tak naprawdę bardzo proste narzędziereptile pisze:Logika wewnętrzna NN to skomplikowany temat



To nie jest do końca tak, a przynajmniej można się przed tym w prosty sposób obronićreptile pisze:LowcaG napisał:
Powiem tylko tyle, wieksze sieci mniej generalizuja a bardziej dopasowują się do danych.


Jednak zakładając, że wektor danych uczących jest zawsze tych samych rozmiarów to prosto udowodnić, że dodając nową zmienną/nowy neuron, sieć uzyska przynajmniej nie gorszy rezultat (minimum globalne funkcji błędu będzie trochę niżej lub w najgorszym wypadku w tym samym miejscu co sieć z mniejszą ilością zmiennych/neuronów).
Może to wyjaśnię na takim króciutkim przykładzie ale na znacznie prostszym modelu

Jeśli do tego modelu dodamy nową zmienną (X2) to funkcja błędu będzie identyczna, gdy parametr przy tej nowej zmiennej wyniesie 0 (czyli rezultat będzie taki sam

Tzn. funkcja błędu będzie identyczna jak w modelu z jedną zmienną, w sytuacji, gdy parametr przy X2 wyniesie 0 ale może osiągnąć również lepszy wynik. Mam nadzieję, że dobrze to wyjaśniłem

Jest to dość duży problem bo jak dobierzemy zbyt mało danych uczących i zbudujemy dużą sieć to może się tak zdarzyć, że SSN dopasuje się w 100% do danych uczących (funkcja błędu wyniesie 0). Problem polega na tym, że:
po pierwsze wektor uczący rzadko kiedy reprezentuje wszystkie możliwe sytuacje (często się mówi, że rynek się zmienia a jak uczysz sieć powiedzmy na danych z jednego roku to nie bierzesz pod uwagę tego co było dwa lata temu)


a po drugie w danych uczących mogą być błędy (tzn. szum), dane mogą być nie precyzyjne itd. Szczególnie na rynkach część danych może być wynikiem jakiś losowych sytuacji, które np. nigdy już nie wystąpią i dana wzorcowa/zmienne są zafałszowane. Natomiast sieć nauczona na takim zbiorze będzie reprezentować właśnie taki zafałszowany zbiór uczący.
Gdy po nauce do sieci damy identyczne zmienne jak w zbiorze uczącym sieć zwróci identyczny wynik

Dlatego przeważnie lepiej uczyć na większych zbiorach a po drugie nie starać się uczyć sieć na maxa. Powinno się tworzyć 3 zbiory: jeden do nauki, drugi do weryfikacji a trzeci do sprawdzenia sieci w praktyce (np. w testerze

Ogólnie to temat rzeka


Na zakończenie powiem może jeszcze tylko, że największy problem z SSN to jej nauka, która jest dosyć ciężko tłumaczona... Autorzy wymyślili sobie dość dziwny termin "propagacja wsteczna" który jeszcze dziwniej tłumaczą, jednak jest to zwyczajna metoda gradientowa



Ogóle SSN tak jak wspomniał już o tym bodajże LowcaG służą przede wszystkim do klasyfikacji lub aproksymacji. Może być to naprawdę ciekawe narzędzie w EA ale raczej strategia nie powinna się opierać jedynie o SSN...
Jak kogoś to interesuje to chętnie o tym pogadam

(\(^.^)/)
W 100% zgadzam sie z tym co napisal wojnowy. "Nauka" sieci neuronowej to nic innego jak optymalizacja pewnej funkcji. Jezeli mamy zbyt duzo parametrow (neuronow i warstw ukrytych) w stosunku do liczby danych uczacych to mozemy "przetrenowac" sieci i dokladnie dopasowac taka siec do danych. Problem w tym, ze zdolnosc do generalizacji takiej sieci/funkcji bedzie znikoma
Jezeli chodzi o mnie to po wielu probach zrezygnowalem z wykorzystywania sieci neuronowych do prognozowania. Wydaje mi sie, ze dobrym ich zastosowaniem moze byc klasyfikacja "stanow rynkowych"
Jezeli chodzi o mnie to po wielu probach zrezygnowalem z wykorzystywania sieci neuronowych do prognozowania. Wydaje mi sie, ze dobrym ich zastosowaniem moze byc klasyfikacja "stanow rynkowych"
polecam sieci Kohonena. jeśli masz dobry pomysł na wstępną obróbkę danych to daje bardzo dobre wyniki.maariuszn pisze:Jezeli chodzi o mnie to po wielu probach zrezygnowalem z wykorzystywania sieci neuronowych do prognozowania. Wydaje mi sie, ze dobrym ich zastosowaniem moze byc klasyfikacja "stanow rynkowych"
Niech będzie, że proste.. bardziej chodziło mi o to co defakto taka sieć wywnioskowała lub się nauczyła i jak się to ma do rzeczywistej logiki .. jakiegoś systemu w stosunku do "rzeczywistości" którą taka sieć stworzyła.wojnowy pisze:hehe, pozwolę sobie jednak stwierdzić, że NN to tak naprawdę bardzo proste narzędzie
No więc co z tym dopasowaniem do danych? Tak się chyba dzieje gdy NN szuka na ślepo a nie względem modelu czy zadanej funkcji.

R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)