Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmienne

Jeżeli masz pomysł lub używasz ciekawego systemu albo strategii gry, opisz ja tutaj.
Awatar użytkownika
Tymek
Pasjonat
Pasjonat
Posty: 648
Rejestracja: 20 mar 2006, 13:39

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: Tymek »

luxtorpeda pisze:Jeśli nie umiesz się skonfrontować z tym, co napisałem to nie zmieniaj tematu na bezsensowny obszar tylko po prostu przestań pisać. Lepiej być tchórzem niż tchórzem i głupcem.
Czyli multi konto ;)
Każdy chce mieć pieniądze, ale pieniądze nie zawsze chcą każdego ;)

WojtexWay
Gaduła
Gaduła
Posty: 145
Rejestracja: 18 wrz 2012, 19:22

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: WojtexWay »

Tymek pisze:Skoro moje posty wykazały tak marną wiedzę ;) to oznacza że teorie Wojtexa były dobre.
A co za tym idzie trzeba przestawić całą dotychczasową wiedzę i podążać trendem Wojtexa.
@Tymek, ty naprawdę jesteś jakiś upośledzony.
Praktycznie od samego początku podkreślałem, że informacje, które tu przedstawiam nie są w sprzeczności z wiedzą książkową, a ty ciągle mnie obrażasz i nawet nie udowodnisz, w którym miejscu moje wypowiedzi są z czymkolwiek sprzeczne. Natomiast gdy ja zadaję proste pytania ty milczysz lub odpowiadasz tylko na pojedyncze z nich... Natomiast w obrażaniu to się nie ograniczasz.
Piszesz, że:
Tymek pisze:Nadal nie umiesz czytać ze zrozumieniem
Ale co ja mam niby rozumieć? Do czego się odnosisz? Może coś zacytuj...
Z jednej strony narzekasz, że zabiłem ciekawy wątek a z drugiej strony przez cały czas nie napisałeś praktycznie nic wartościowego...
Tymek pisze:Zdziwiło mnie to bo ja wiedzą książkową się nie zasłaniałem i takowych nie przedstawiałem jak to robił oponent
To chyba źle, że nie wskazałeś żadnego źródła potwierdzającego swoje wypowiedzi O_o

A jeśli jesteśmy już w temacie to wyjaśnij mi ten swój bełkot z ostatniego postu z przed miesiąca i łaskawie przestań szczekać a zacznij używać argumentów (daj dobry przykład i zacznij pisać merytorycznie):
Tymek pisze:Normalizacja danych wejściowych (wektorów uczących) to sprowadzenie wartości do tego samego przedziału.
A to oznacza całkiem coś innego niż ty zrozumiałeś
A co ja niby innego napisałem? Podaj mi gdzie widzisz sprzeczność?
Tymek pisze:Nie chcę mi się tłumaczyć coś komuś co i tak ten ktoś uważa że i tak wie lepiej.
Nie uważam, że wiem lepiej, ale póki co nie napisałeś nic co by mogło mnie przekonać do zmiany moich poglądów - ciągle tylko szczekasz, że się mylę, ale w żaden sposób tego nie udowadniasz!
Tymek pisze:Ale ci powiem o co biega z tą normalizacją i zakończę z tobą dyskusję bo nie jesteś nawet warty mojej uwagi.
Dzięki za ten ogromny wysiłek - 3 strony szczekania i jedno zdanie pseudo-wyjaśnienia (o czym za chwilę)
Tymek pisze:Masz wektor 1: [1.34; 1.36; 1.40; 1.39; 1.32]
Masz wektor 2: [1.24; 1.26; 1.30; 1.29; 1.22]
Najpierw może wyjaśnij: czy wektor 1 i 2 to dwie zmienne i 5 zestawów uczących czy 2 zestawy (wektory) uczące po 5 zmiennych? Pytam bo nie mam pewności względem czego ty normalizujesz...
A to ma znaczenie.
Tymek pisze: jeżeli mamy tylko 2 wektory uczące jak teraz możesz wyznaczyć
ich przestrzeń czyli są w przedziale 0.0 do 0.08
że co? Przestrzeń, przedział?! W której ty jesteś klasie?! Skąd ty wziąłeś definicję przedziału? Ale nic, ok, w obu przypadkach różnica między Max i Min to 0.08... Nie ma to nic wspólnego z przestrzenią i przedziałem, ale jeszcze do tego momentu się domyślam o co chodziło... Ale teraz rozumie dlaczego nie potrafię czytać - jak ktoś pisze o wyznaczaniu przestrzeni i nazywa różnicę przedziałem to moja wina, że się nie domyślam o co chodzi...
Tymek pisze:czyli po normalizacji będą:
1: [0.02; 0.04; 0.08; 0.07; 0.0]
2: [0.02; 0.04; 0.08; 0.07; 0.0]
Czyli takie same ...
Eureka! Jesteś genialny! Mam tylko proste pytanie skąd wziąłeś wzór na tą "normalizację"? Bo widzisz, ja kilka postów wcześniej podałem konkretne źródło (książka napisana przez profesora), gdzie jest wymienione 5 wzorów na normalizację, ale żaden z nich nie wygląda tak: Xi - Xmin -> a zdaje się, że taki właśnie zastosowałeś. Mam więc ogromną prośbę o podanie jakiejś lektury (książka, praca doktorska - cokolwiek), gdzie ktoś "normalizuje" zmienne w ten sposób. No, chyba, że jesteś autorem tej wspaniałej metody - w takim razie dzięki, że ją opublikowałeś na forum!
Tymek pisze:a więc musisz sprawdzić czy odpowiedź na nie jest taka sama jak nie to nie ustabilizujesz
sieci.
Skąd zaczerpnąłeś termin "ustabilizowania sieci"? Co to w ogóle znaczy? Nawiązujesz do sieci rekurencyjnej czy modeli różniczkowych?
Tymek pisze:Tak robisz z całym zbiorem uczącym, i testowym. Dzięki normalizacji możesz określić czy twój zbiór
uczący jest prawidłowy
Czyli jeśli dobrze rozumiem to:
1. mam 100 000 danych uczących (tak wiem, że to jest niewiele, biorąc pod uwagę, że sieć tylko z 300 neuronami, wg. ciebie, może się nadawać tylko do liczenia ceny chleba w sklepie)
2. biorę pierwszy zestaw i porównuję go z pozostałymi 99 999 zestawami czy jest jakiś identyczny zestawy a jeśli tak to czy wzorzec dla niego jest taki sam, tak? Bo jeśli się różni to sieć mi zgłupieje O_o - a słyszałeś o czymś takim jak generalizacja? Celem sieci jest aproksymacja a nie znajdowanie wzoru na chaos... Przecież to normalne, że zmienne będą mogły być w niektórych sytuacjach nawet ze sobą "sprzeczne" - nic na to nie poradzisz... - jednak celem sieci jest uśrednienie wyników...
a co jeśli drugi wektor wynosiłby [0.019; 0.04; 0.08; 0.07; 0.0]? Jaka powinna być różnica we wzorcach?
3. biorę kolejny wektor i znowu porównuję go z pozostałymi 99 998 wektorami...
Ale przecież to będzie jakieś 0.5*N^2 porównań wektorów - teraz rozumiem dlaczego napisałeś o karcie graficznej i technologi CUDA.
Dla większych zestawów to nawet obecne superkomputery by nie podołały...

A może znowu coś źle "przeczytałem" i źle wydedukowałem? Chętnie się dowiem o co ci naprawdę chodziło...

Zastanawiam się również do czego była ci potrzebna w tym przykładzie normalizacja?! Czemu nie mogłeś sobie porównać dwóch oryginalnych wektorów? Co ci one przeszkadzały w oryginale?

A może tobie chodzi o grupowanie danych i sieć Kohonena?! Ale tam również normalizacja nie ma nic wspólnego z Twoim podejściem i częściej szkodzi niż pomaga...
Tymek pisze:By ci jeszcze namieszać to możesz sobie określić przedział jako -1 do 1 ;) i wtedy musisz odpowiedni te
dane przeliczyć i te dwa wektory też będą takie same
No nie mów, że zmiana takich samych wektorów w taki sam sposób spowoduje taki sam efekt?!? Ponawiam pytanie w której ty jesteś klasie?!
Tymek pisze:Nie chce mi się tłumaczyć tobie dlaczego te wektory wyszły
takie same bo i tak zaraz mi powiesz że nie umiem całkować lub że używam jakiś tam bibliotek albo coś tam
jeszcze.
A więc piszesz coś bez wyjaśnienia argumentując, że mogę mieć jakiś argument, który podważy twoje brednie? Napisałem wcześniej o 5 wzorach na normalizację, ale naprawdę intryguje mnie skąd ty wziąłeś swój wzór tj. Xi - Xmin -> mogę tylko zgadywać, że wziąłeś prawidłowy wzór (jeden z wielu) tj. (Xi - Xmin)/(Xmax - Xmin) i przez głupotę pomnożyłeś go jeszcze raz przez (Xmax - Xmin) - przez co wyszło (Xi - Xmin) - ale może da się to jakoś racjonalnie wytłumaczyć...

Piszesz takie głupoty, że do każdego zdania można się przyczepić, ale naturalnie to moja wina i to ja nie umiem czytać. Jak chcesz mnie dalej obrażać do ponawiam prośbę o argumentowanie swoich wypowiedzi - ja potrafię przyznać się do błędu i jak trzeba będzie to to zrobię. Daj mi tylko powód, by to zrobić a nie obrażasz mnie w kółko bez żadnych dowodów, że się mylę...
Tymek pisze:I teraz naprawdę koniec.
Naprawdę?
Ostatnio zmieniony 28 kwie 2014, 18:13 przez WojtexWay, łącznie zmieniany 1 raz.

Awatar użytkownika
Tymek
Pasjonat
Pasjonat
Posty: 648
Rejestracja: 20 mar 2006, 13:39

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: Tymek »

Czyli jednak masz wiele kont ;) Mam nadzieję, że wreszcie jakiś mod ci to przyblokuje ;)

Co do twojego pseudonaukowego bełkotu: to w ten sposób można udowodnić wszystko.
Niestety nie chce mi się analizować twoich wypowiedzi bo oddalasz się bardzo od tego co powinno być.
Przedstawiłem dokładnie wszystko jak powinno być to robione a że masz problem z "byciem bogiem" i
wiesz wszystko najlepiej nie przegadam cię i nawet nie będę próbował. Poczekam na twoją "innowacyjną"
sieć i kilka publikacji jakie zrobisz zanim będziesz miał doktorat. Z dziką rozkoszą przeczytam twoje
artykuły.

A co do reszty to przypomina mi się sentencja i dla tego zaprzestanę:
"Nie dyskutuj z głupim - bo sprowadzi cię do swojego poziomu, a później pokona doświadczeniem"
Każdy chce mieć pieniądze, ale pieniądze nie zawsze chcą każdego ;)

WojtexWay
Gaduła
Gaduła
Posty: 145
Rejestracja: 18 wrz 2012, 19:22

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: WojtexWay »

Tymek pisze:Czyli jednak masz wiele kont ;) Mam nadzieję, że wreszcie jakiś mod ci to przyblokuje ;)
I na podstawie czego to wydedukowałeś? Tego, że ktoś mnie broni?! No to gratuluję...
Tymek pisze:Co do twojego pseudonaukowego bełkotu: to w ten sposób można udowodnić wszystko.
Niestety nie chce mi się analizować twoich wypowiedzi bo oddalasz się bardzo od tego co powinno być.
Przedstawiłem dokładnie wszystko jak powinno być to robione a że masz problem z "byciem bogiem" i
wiesz wszystko najlepiej nie przegadam cię i nawet nie będę próbował.
Ja tylko zadaję proste pytania O_o. W dodatku dot. Twoich wypowiedzi.
Tymek pisze:A co do reszty to przypomina mi się sentencja i dla tego zaprzestanę:
"Nie dyskutuj z głupim - bo sprowadzi cię do swojego poziomu, a później pokona doświadczeniem"
Tak jest, gdy kończą się argumenty i sposoby na obrażenie kogoś - chociaż w twoim wypadku to argumentów nie było żadnych. W realu to bym pewnie jest po głowie dostał - w końcu argument siły jest niepodważalny.

Awatar użytkownika
Tymek
Pasjonat
Pasjonat
Posty: 648
Rejestracja: 20 mar 2006, 13:39

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: Tymek »

WojtexWay pisze: Tak jest, gdy kończą się argumenty i sposoby na obrażenie kogoś - chociaż w twoim wypadku to argumentów nie było żadnych. W realu to bym pewnie jest po głowie dostał - w końcu argument siły jest niepodważalny.
Każdy sądzi po sobie, więc skoro do takiego myślenia doszedłeś to tylko oznacza jak płytki jesteś.
Prawdę mówiąc czytając twoje teorie w pewnym momencie człowiek zaczyna wątpić w swoją wiedzę.
Jesteś destruktorem intelektów używając pseudo naukowego języka, który jest wstanie podważyć nawet
równanie e=mc2.

Tak więc czekam na twoje rezultaty. Jak tylko opublikujesz swoje artykuły nie zapomnij ich przedstawić.
Każdy chce mieć pieniądze, ale pieniądze nie zawsze chcą każdego ;)

donpedro112
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 01 kwie 2011, 23:16

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: donpedro112 »

Witam
W temacie sieci neuronowych nie mam dużego doświadczenia. Chciałem się samodzielnie przekonać jak to działa i czy rzeczywiście jest to takie banalne. Przez ostatnie 2 weekendy męczyłem sieć neuronową danymi z forexa. Z dotychczasowych testów wstępny ogólny wniosek jest taki, że sieci dwu i trzywarstowe z wsteczną propagacją słabo prognozują wartości kursu. Moje najlepsze sieci osiągały minimalne średnie błędy na poziomie 0,0027 - 0,0029 (prognoza wartości eur/usd na danych H1) czyli w zasadzie prognozy bezwartościowe. Poprawy wyników spodziewałbym się przy wprowadzeniu warstwy rekurencyjnej, ale nie mam jak tego zaimplementować. Prawdopodobnie wyniki poprawi również "uogólnienie" danych uczących.
Jak chodzi o normalizację danych wejściowych to najlepsza efektywność uczenia sieci jest wtedy jeżeli dane wejściowe są znormalizowane do wartości w przedziale (0, 10) lub blisko tego.

WojtexWay
Gaduła
Gaduła
Posty: 145
Rejestracja: 18 wrz 2012, 19:22

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: WojtexWay »

donpedro112 pisze:Z dotychczasowych testów wstępny ogólny wniosek jest taki, że sieci dwu i trzywarstowe z wsteczną propagacją słabo prognozują wartości kursu.
Wsteczna propagacja to tylko sposób na wydajne obliczenie pochodnej po każdej zmiennej (wadze) w każdej warstwie, więc biorąc to pod uwagę trochę dziwnie brzmi to zdanie. Chyba, że chodziło Ci o uczenie metodą gradientową (a nie np. algorytmami genetycznymi), ale to akurat jest drugorzędna kwestia i nie ma większego znaczenia na efekt prognozy.
Co do samej prognozy to główne znaczenie będzie tu miał wybór odpowiednich zmiennych wejściowych oraz wzorca - w tym wypadku wartość kursu. Niestety prognoza czystej ceny nie jest zadaniem prostym.
Pomijając kwestię, że...
Tego co nieprzewidywalne z definicji nie da się przewidzieć
Natomiast większa ilość warstw nie oznacza lepszego działania sieci, za to znacznie trudniej nauczyć taką sieć. Zazwyczaj robi się to w ten sposób, że uczy się sieć z 1 warstwą ukrytą a następnie dodaje kolejną warstwę itd.
donpedro112 pisze:Moje najlepsze sieci osiągały minimalne średnie błędy na poziomie 0,0027 - 0,0029 (prognoza wartości eur/usd na danych H1) czyli w zasadzie prognozy bezwartościowe
Dlaczego tak uważasz? Czy błąd był liczony z uwzględnieniem normalizacji czy nie? Poza tym na którym zestawie osiągnąłeś taki błąd? Na danych uczących, walidacyjnych czy testujących?
Zwiększenie liczby neuronów/warstw doprowadzi do poprawienia błędu - nawet do 0.0 -> oczywiście w zbiorze uczącym.
Natomiast w handlu dokładna prognoza ceny nie jest rzeczą kluczową - wystarczy informacja czy cena wzrośnie, spadnie czy nie zmieni się znacząco...
donpedro112 pisze:Poprawy wyników spodziewałbym się przy wprowadzeniu warstwy rekurencyjnej, ale nie mam jak tego zaimplementować.
Dlaczego tak uważasz i dlaczego "nie masz tego jak zaimplementować"?
Sieci rekurencyjne w cale nie muszą być lepsze od tradycyjnych sieci jednokierunkowych. Różnice są minimalne a za to z sieciami rekurencyjnymi jest znacznie więcej zachodu - m.in. w przypadku uczenia gradientowego są znacznie bardziej "wymagające" (w przypadku uczenia algorytmami heurystycznymi np. algorytmami genetycznymi już nie) oraz duże znaczenie ma kolejność wprowadzanych danych (wymagają wprowadzania danych po kolei, tzn. nie można wymieszać danych).
Jedyna różnica między zwykłą MLP a siecią rekurencyjną jest taka, że masz dodatkowe zmienne w postaci poprzednich sygnałów tj. takie skumulowane poprzednie wejścia. Równie dobrze możesz sobie dołożyć więcej zmiennych wejściowych ze starszych okresów.
donpedro112 pisze:Prawdopodobnie wyniki poprawi również "uogólnienie" danych uczących.
Co masz na myśli?
donpedro112 pisze:Jak chodzi o normalizację danych wejściowych to najlepsza efektywność uczenia sieci jest wtedy jeżeli dane wejściowe są znormalizowane do wartości w przedziale (0, 10) lub blisko tego.
To bardzo ciekawa konkluzja. Na jakiej podstawie do tego doszedłeś? Czemu normalizacja do przedziału (0,1) lub (0,0.001) lub (0,100) miałyby być gorsze?
A druga sprawa to czy uwzględniłeś ilość zmiennych wejściowych do danego neuronu oraz przedział normalizowanych zmiennych przy wstępnym losowaniu wag dla danego neuronu?
Bo jeśli wagi są stosunkowo duże + znormalizowane zmienne są stosunkowo duże + ilość zmiennych wejściowych jest stosunkowo duża to przy najpopularniejszych typach funkcji aktywacji (sigmoidalna i bipolarna) pochodna dla praktycznie każdej zmiennej w takim neuronie będzie bliska 0 (czyli sieć będzie bardzo źle się uczyć - jeśli w ogóle).

donpedro112
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 01 kwie 2011, 23:16

Re: Wykorzystanie Sztucznych Sieci Neuronowych na FX - zmien

Nieprzeczytany post autor: donpedro112 »

Testowane sieci posługiwały się metodą gradientową. Próbowałem również proste metody, które można zaliczyć do algorytmów genetycznych (losowy dobór poprawek wag i akceptacja tych poprawek, które zmniejszają błąd sieci - mniej efektywne niż met. gradientowa)
(bardziej zaawansowane heurystyki i algorytmy genetyczne - nie stosowałem, bo ciężko jest napisać na szybko takie skrypty). Stosowałem sieci 3 warstwowe, 8 wejść, 6 neuronów w warstwie ukrytej, 1 neuron wyjściowy, funkcja aktywacji unipolarna a w warstwie wyjściowej - liniowa.
Minimalny średni błąd sieci - chodziło mi o odchylenie prognozy generowanej przez sieć od wzorca. Błąd liczony był w zbiorze uczącym. Mierne efekty uczenia sieci zniechęciły mnie do pisania skryptów na zestawy danych walidacyjnych czy też testujących.
Próbowałem różne przedziały normalizacji, najszybciej sieć się stabilizowała właśnie w przedziale 0-10 ale być może jest to efekt wstępnego losowania wag - na to nie zwracałem uwagi.
W zastosowaniach prognoz przebiegów czasowych właśnie sieci rekurencyjne osiągają lepsze efekty. Sieci tworzę na bazie arkusza kalkulacyjnego, a tam formuły iteracyjne działają z dużymi problemami, już nie mówiąc o czasie uczenia.
"Uogólnienie" danych - miałem na myśli uogólnienie danych wzorca, tzn. odejście od konkretnej wartości wzorca, ale łatwiejsze do nauczenia przez sieć jako wzorzec - rodzaj zmiany wartości: wzrost, spadek, konsolidacja. Z tym wiązałoby się możliwa zmiana funkcji aktywacji warstwy wyjściowej na funkcję sigmoidalną unipolarną.
Zgadzam się z sugestią, że jednym z kluczowych elementów jest właściwy dobór i opracowanie danych wejściowych, i chyba nad tym teraz popracuję, jak będzie jakiś weekend wolny.

ODPOWIEDZ