Strona główna  Edukacja  FOREX  Analiza  Rozmowy  Downloads  Moje konto
WYSZUKIWARKA  Edukacja->Model Neuronowy->Proces budowy LOGOWANIE 
Google
Web TE
Edukacja 
Podstawy biologiczne
Proces budowy
Typy modeli
Zastosowanie
Podsumowanie

Proces budowy modelu neuronowego

W procesie budowy modelu neuronowego wyróżnić możemy kilka etapów:

1. Określenie prognozowanej zmiennej (wyjściowej, objaśnianej)
Podstawowym pytaniem, które musimy sobie zadać podczas budowania modelu jest, co chcemy prognozować, czy to ma być np. kurs EURUSD, czy stopa bezrobocia w USA. Pytanie to jest o tyle istotne, że wpływa na budowę całego modelu neuronowego i będzie towarzyszyło nam w dalszej części artykułu. Po podjęciu decyzji co chcemy prognozować należy zastanowić się nad charakterem prognozowanych wartości i odpwiedzieć sobie na następujące pytania:
- czy wartość prognozowana ma mieć charakter numeryczny przyjmujący konkretne wartości liczbowe?
- czy wartość prognozy ma mieć charakter binarny przyjmujący wartości zero jedynkowe, gdzie zero może oznaczać spadek kursu, a jedynka wzrost kursu?
- czy wartość prognozy ma mieć charakter procentowej prognozy wzrostu czy spadku waloru, gdzie 10% może oznaczać wzrost o 10%, a -10% spadek od aktualnej ceny rynkowej?
- jaka jest skala czasowa prognozy czy chcemy prognozować przyszłość w z wyprzedzeniem minutowym, godzinnym, czy też dni, tygodnie

2. Określenie zmiennych uczących (wejściowych, objaśniających)
Wybór odpowiednich zmiennych wejściowych jest równie istotny jak wybór zmiennej przewidywanej. Wyobraźmy sobie najprostszą sytuacje w której decydujemy się na zastosowanie jednej zmiennej wejściowej np. tego samego kursu EURUSD który próbujemy szacować na wyjściu z tym że na wejście sieci podamy sygnały z poprzedniego dnia. W tej sytuacji oczekujemy aby sieć przetwarzała informacje według algorytmu z jedną zmienną, od razu powiem że takie przekształcenie możemy zrobić z wykorzystaniem prostego algorytmu matematycznego, a zadawanie takich obliczeń sieci neuronowej nie ma najmniejszego sensu. Wyobraźmy sobie drugą sytuacje na wejście sieci podajemy 250 zmiennych objaśniających np. wskaźniki analizy technicznej lub kurs EURUSD, z czego każde wejście to wartość przesunięta o 1 kolejny dzień wstecz (250 dni wstecz). Można powiedzieć że jest to bardziej sensowne rozwiązanie z punktu widzenia sieci neuronowej, ale czy prawidłowe i skuteczne. Sieci mają właściwości autoasocjacji, dzięki czemu automatycznie mogą ignorować sygnały nie istotne nie zmienia to jednak faktu, że jeśli będziemy mieli 250 wejść, z czego 100 będzie istotnych, a 150 mniejistotnych mamy prwiłowy model neuronowy. Każde wejście nawet mniejistotne obarczone jest pewnym błędem który po zsumowaniu daje wartości zakłucające funkcjonowanie całej sieci dlatego bardzo istotny jest dobór odpowiednich zmiennych wejściowych. Do prawidłowego doboru zmiennych wejściowych zstosuje się najczęściej niezależne metody od sieci neuronowej np. metodę badania korelacji poszczególnych wejść z wyjściem i odrzucenie nieskorelowanych zmiennych, równie dobrze można posłużyć się metodami logiki rozmytej lub metodami empirycznymi gdzie najczęstsze zastosowanie maja metoda konstruktywna i destruktywna. Innym problemem jest kwestia danych ilościowych i jakościowych gdzie trudno jest porównywać i wykorzystywać do nauki sieci dane ciągłe ilościowe powszechnie dostępne w analizie technicznej z danymi niesystematycznymi, jakościowymi takimi jak wskaźniki analizy fundamentalnej.

3. Wstępne przetwarzanie danych
Różnorodny charakter potencjalnych danych wejściowych służących do nauki sieci neuronowej sprawia, że nawet przy wybraniu najbardziej skorelowanych zmiennych wejściowych ze zmienną prognozowaną nie daje nam pewności co do trafności wyboru zmiennych wejściowych. Każda zmienna obarczona jest pewnym błędem, który w tak skomplikowanym i nieprzejrzystym w swym działaniu modelu neuronowym uniemożliwia osiągnięcie prawidłowych wyników dlatego stosuje się wstępne przetwarzanie danych mające na celu lepsze dostosowanie danych do wymogów sieci neuronowej. Do podstawowych i nieporządanych czyników dla sieci neuronowych należą trendy oraz zmienności sezonowe. Na pewno zdziwi to każdego tradera, który uwielbia trendy wzrostowe, ponieważ wtedy może zarabiać pieniądze, ale sici neuronowe wręcz przeciwnie nie lubią trendów i zmienności sezonowych, które wprowadzają dodatkowe zakłócenia w nauce sieci, dlatego opracowano specjalne algorytmu niwelujące trendy i zmienności. Innym powodem potrzeby wstępnego przetwarzania danych jest konieczność dopasowania się do zakresu działania algorytmów obliczeniowych sieci neuronowej, gdzie stosuje się funkcje przejściowe sigmoidalne działające w zakresie 0 do 1 oraz tangensoidalne działające w zakresie -1 do 1.

4. Wyodrębnienie zbiorów uczących i testujących
Po wyodrębnieniu bardziej istotnych zmiennych wejściowych oraz wstępnym przetworzeniu powinniśmy zastanowić się ile zmiennych potrzebujemy do prawidłowej nauki sieci oraz jak prezentujemy zmienne podczas nauki. Zauważmy, że jeśli podamy sieci dane z jednego dnia i będziemy oczekiwali prawidłowego szacowania kursów w przyszłości to tak jak byśmy kazali doradcy inwestycyjnemu oszacować, jaki będzie kurs w najbliższym czasie na podstawi danych jednodniowych. Sprytny doradca powie kurs wzrośnie, ale może też spaść i tyle samo powie nam sieć neuronowa. Doświadczenia mówią, że na każde wejście powinno przypadać co najmniej seria 10 próbek uczących, gdzie jedna próbka ucząca zawiera po jednej wartości dla każdego wejścia sieci czyli posiadając 10 wejść sieci potrzebujemy 100 próbek uczących posiadając sieć o 250 wejściach potrzebujemy 2500 próbek uczących co daje nam 625000 niezależnych wartości uczących.
Zbiór uczący jest zestawem danych historycznych, w których mogą znaleźć się po pierwsze dane tak odległe, że nie są już istotne w aktualnej sytuacji z drugiej strony wśród tych danych mogą występować pewne anomalie zakłócające prawidłową naukę takie jak publikowane informacje fundamentalne, informacje polityczne, które stanowią chwilowe zaburzenia widoczne zarówno na wykresie kursu jak i wpływające niekorzystnie na proces uczenia sieci.

5. Wybór odpowiedniej architektury sieci
Architektura sieci to odpowiednio dobrana ilość wejść sieci, ilość wyjść, ilość warstw i liczba neuronów w warstwach oraz dobór odpowiednich funkcji przejściowych występujących w każdym z neuronów. Uwzględniając architekturę wyróżnić można wiele rodzajów sieci w śród których należy powiedzieć o sieciach samoorganizujących się, rekurencyjnych, probabilistycznych, o bazowych funkcjach radialnych, sieciach liniowych, ale my powinnismy koncentrować się na sieciach jednokierunkowych wielowarstwowych, które ze względu na swą budowa oraz własności aproksymacyjne znalazły zastosowanie w prognozowanianiu szeregów czasowych. Kolejną rzeczą, którą musimy wyznaczyć w modelu to ilość warstw, która najczęściej wynosi od trzech do czterech włączając w to warstwę wejściową i wyjściową. Odpowiedź na pytanie ile neuronów wejściowych oraz ile neuronów wyjściowych oszacowaliśmy już na pierwszych etapach budowy modelu, ponieważ liczba neuronów w warstwie wejściowej (pierwszej warstwie) równa jest liczbie wyznaczonych wejść, a ilość neuronów wyjściowych równa jest liczbie wyjść sieci. Natomiast do wyznaczenia ilości neuronów w warstwach ukrytych możemy posłużyć się wzorami na obliczanie postępu geometrycznego.

6. Wybór odpowiedniego algorytmu uczenia
Jest to chyba najprostsza decyzja, którą musimy podjąć przy projektowaniu sieci, ponieważ do nauki możemy zastosować dowolny algorytm uczący przystosowany do danego typu architektury sieci. Sam algorytm uczenia sieci nie wpływa na zdolności i możliwości prognozowania wartości wpływa natomiast istotnie na szybkość uczenia oraz możliwości zatrzymywania nauki w minimach lokalnych dając złudzenie zakończenia procesu uczenia.
Wśród algorytmów uczących najczęściej wykorzystywana jest wsteczna propagacja błędu, oprócz tego można wykorzystać metody delta-bar, gradient sprzężony, Quasi-Newton, Levenberg-Marquard.

7. Uczenie i testowanie
Proces uczenia polega na ciągłym pokazywaniu, zadawaniu na wszystkich wejściach wartości próbki uczącej, a na wyjściu (metoda nauki z tak zwanym nauczycielem) danych, które chcemy prognozować np. kurs waluty z wyprzedzeniem jednodniowym. Prezentacji danych dokonujemy iteracyjnie do czasu, kiedy sieć nie wskaże nam satysfakcjonującego rezultatu nauki (minimalnej wartości błędu nauki sprawdzonego na danych testowych). Nie bez znaczenie jest odpowiedni dobór prezentacji zmiennych podczas uczenia, gdzie możemy pokazywać dane od najbardziej odległych do najbliższych w czasie lub dokonywać losowego prezentowania danych uczących. Ocena skuteczności działania polega na przetestowani danych na zbiorze danych testowych, który powinniśmy wyznaczyć, przy czym zaleca się nie stosowanie do testów tych samych próbek danych, które były wykorzystywane podczas nauk.

8. Zastosowanie
Po opracowaniu architektury sieci oraz zakończeniu nauki przy otrzymaniu satysfakcjonującego rezultatu możemy przystąpić do wykorzystania sieci w praktyce co polega na zadawaniu na wejścia sieci aktualnych danych zgodnych ze wcześniejszym wyborem zmiennych wejściowych (objasniających) i oczekiwaniu rezultatu prognozy na wyjściu.

login :
haslo :
KURSY WALUT
SONDA
Na jakich parach walut dokonujesz transakcji?

EURPLN
EURUSD
EURGBP
EURJPY
EURCHF
USDPLN
USDJPY
USDCHF
GBPUSD
INNE

forex

forex

forex

forex

forex
forex

analiza

analiza

analiza

analiza

analiza
analiza
Strona główna |  Mapa serwisu |  Wyłączenie odpowiedzialności |  Polityka prywatności |  Kontakt

Copyright © 2004 Trading Expert, All Rights Reserved.

Trading Expert - forex waluty kursy walut handel dolar euro analiza Forex dla kazdego! Zarabiaj pieniadze na rynku forex. Materialy edukacyjne, analizy, rekomendacje, oprogramowanie dla inwestorów. Analiza techniczna, analiza fundamentalna, efektywnosc rynku. analiza tradingexpert broker dolar euro forex handel inwestycje kursy walut notowania rynek rynku tradingexpert trader waluta waluty xtrade praca metastock