ALGORYTMY GENETYCZNE:
Tu jest fajna prezentacja:
http://wombat.ict.pwr.wroc.pl/nauczanie ... /intro.swf
Fraktale , Sieci neuronowe ,Algorytmy genetyczne...
OOOO bynajmniej wcale nie, ale miast akademickich dywagacji na temat taki czy owaki proponowalbym bardziej konkretne posty na temat konkretnych aplkacji. Nie chcialbym byc zle zrozumiany, kazde tu wystapienie uwazam za bardzo cenne, ale by poszerzyc krag zainteresowanych sieciami trzeba chyba bardziej konkretnie na temat pisac. Jakiego to softu panowie uzywaja, jakich indykatorow, jak dlugo trenujecie sieci, itp itdlolek pisze:Czyli rozumiem że sieci sie wam już przejadły i nie widzicie sensu sie nimi interesować ?
Pozdrawiam serdecznie Greg
Testowalem troche programy korzystające z GEP no ale nic sensownego mi nie wyszlo. W GeneXproTools demo są w sumie za duze ograniczenia zeby policzyc cos wiecej niz "passangers" a tyle to na oko mozna przewidziec, chociaz cena sugeruje ze do czegos się nadaje
Z kolei testowalem też program DTreg z mniejszymi ograniczeniami demo, tez z zaimplementowanym GEP i sie nie popisał, za to korzystajac z sieci SVM wyniki byly w miare obiecujace. Korzystalem z validacji dla 250 ostatnich godzinowych swieczek i na EURUSD nawet przewidzial ostatnią zwałę. Ale GEP nic sensownego nie pokazal. Nie wiem, moze ograniczenia wersji demo powodują takie wyniki, albo ja cos zle ustawiam. Co do wlasnorecznie budowanych sieci to moze warto by sie zastanowic nad badaniem cykli przy pomocy transformaty Fouriera, wstepne okreslenie parametrow, a nastepnie jak najlepsze dopasowanie kilku wybranych najsilniejszych cykli do wykresu ceny przy pomocy sieci. Prognozowanie to juz wtedy tylko policzenie kolejnych wartosci dla gotowej funkcji. Niestety jesli chodzi o sieci to raczkuję dopiero 


Właśnie jestem (aktualnie w przerwie) w fazie testów mojej sieci neuronowej typu SOM. Sprawdziłem poprawność jej działania na przykładzie grupowania kolorów. Wydaje się działać dobrze. Jednak już w przypadku danych z FX wyniki są jakby chaotyczne 
Czy ktoś już eksperymentował z siecią SOM? Może znalazł jakiś zestaw kilku danych wejściowych, które dają jakiś miarodajny wynik? (nie chodzi o dużo pipsów, ale o to, czy sieć chociaż nie "wariuje")

Czy ktoś już eksperymentował z siecią SOM? Może znalazł jakiś zestaw kilku danych wejściowych, które dają jakiś miarodajny wynik? (nie chodzi o dużo pipsów, ale o to, czy sieć chociaż nie "wariuje")
"W Bogu wszelkie nasze bogactwo."
Z doświadczenia mogę powiedzieć, że moim głownym problemem w przypadku sieci neuronowych było to, czego dana sieć ma być uczona. Niestety nie znalazłem żadnego dobrego rozwiązania i aktualnie pracuję nad programowaniem genetycznym. Jeżeli chodzi o rozpoznawanie różnych wzorów to polecam Probabilistyczne sieci neuronowe (PNN).
Mam pytanie, a tym samym wielka prosbe do tych, ktorzy radza sobie z metoda wstecznej propagacji bledow. Duzo jest o tym materialow na necie, ale nie znalazlem konkretnego przykladu, na ktorym moglbym sie wzorowac. Chcialbym abyscie przesledzili moj tok rozumowania, pokazali ewentualne bledy i pomogli w ostatniej fazie obliczen.
Przykladowo, posiadamy taka oto siec:

Niebieskie kwadraty - wejscia
zielone prostokaty - wagi
czerwone okregi - neurony (gorna wartosc to potencjal membranowy, dolna to wartosc z funkcji aktywacji, tutaj krzywa logistyczna)
niebieski romb - wyjscie
Wspolczynnik uczenia sieci = 0.1
Siec zwrocila nam wartosc 0.9521. Docelowym wyjsciem mialo byc 1. Wyliczamy blad:
1 - 0.2604 = 0.7396
Wyliczamy korekte dla ostatnich wag.
Korekta = WspUcz * Blad * PFA * wejscie
PFA - to pochodna funkcji aktywacji z wyjscia
Tam gdzie waga byla -0.3 korekta wynosi:
koretka = 0.1 * 0.7396 * 0.1926(w przyblizeniu) * 0.7624 = 0.0108
Nowa waga = -0.2892
Tam gdzie waga byla -0.4 korekta wynosi:
koretka = 0.1 * 0.7396 * 0.1926 * 0.7329 = 0.0104
Nowa waga = -0.3896
No i teraz zaczyna sie kicha, bo jak wyliczyc blad i nowa wartosc dla pierwszej wagi przy neuronie (1,1) (lewy, gorny, czerwony okrag). Wyczytalem, ze blad z ostatniej warstwy przenoszony jest do poprzedniej. To znaczy, ze neuron (1,2) (prawy gorny okrag) staje sie tak jakby 'wyjsciem' sieci i wg niego obliczana jest korekta? Wszystko spoko, tylko, skad mamy wiedziec, jaka tam (neuron 1,2) powinna byc wartosc? Tej wlasnie czesci metody wstecznej propagacji nie rozumiem. Prosilbym o w miare przejrzysta odpowiedz, najlepiej z przykladem dla podanej sieci.
Dziekuje i pozdrawiam
ps. Kilka wzorow z ktorych korzystalem
Funkcja aktywacji neuronu:
f(x) = 1 / (1 + e^(-(2 * x)))
Pochodna funkcji aktywacji neuronu
f'(y) = y * (1 - y)
Przykladowo, posiadamy taka oto siec:

Niebieskie kwadraty - wejscia
zielone prostokaty - wagi
czerwone okregi - neurony (gorna wartosc to potencjal membranowy, dolna to wartosc z funkcji aktywacji, tutaj krzywa logistyczna)
niebieski romb - wyjscie
Wspolczynnik uczenia sieci = 0.1
Siec zwrocila nam wartosc 0.9521. Docelowym wyjsciem mialo byc 1. Wyliczamy blad:
1 - 0.2604 = 0.7396
Wyliczamy korekte dla ostatnich wag.
Korekta = WspUcz * Blad * PFA * wejscie
PFA - to pochodna funkcji aktywacji z wyjscia
Tam gdzie waga byla -0.3 korekta wynosi:
koretka = 0.1 * 0.7396 * 0.1926(w przyblizeniu) * 0.7624 = 0.0108
Nowa waga = -0.2892
Tam gdzie waga byla -0.4 korekta wynosi:
koretka = 0.1 * 0.7396 * 0.1926 * 0.7329 = 0.0104
Nowa waga = -0.3896
No i teraz zaczyna sie kicha, bo jak wyliczyc blad i nowa wartosc dla pierwszej wagi przy neuronie (1,1) (lewy, gorny, czerwony okrag). Wyczytalem, ze blad z ostatniej warstwy przenoszony jest do poprzedniej. To znaczy, ze neuron (1,2) (prawy gorny okrag) staje sie tak jakby 'wyjsciem' sieci i wg niego obliczana jest korekta? Wszystko spoko, tylko, skad mamy wiedziec, jaka tam (neuron 1,2) powinna byc wartosc? Tej wlasnie czesci metody wstecznej propagacji nie rozumiem. Prosilbym o w miare przejrzysta odpowiedz, najlepiej z przykladem dla podanej sieci.
Dziekuje i pozdrawiam
ps. Kilka wzorow z ktorych korzystalem
Funkcja aktywacji neuronu:
f(x) = 1 / (1 + e^(-(2 * x)))
Pochodna funkcji aktywacji neuronu
f'(y) = y * (1 - y)
Błędy liczysz od ostatniej warstwy. Najpierw wyliczasz błędy warstwy ostatniej. Błędy warstwy przedostatniej to błędy warstwy ostatniej przepuszczone przez funkcję aktywacji i odpowiednie wagi, itd.
Dlatego nazywa się to propagacja (bo błędy wędrują przez sieć) wsteczna (bo idą od warstwy wyjściowej, przez ukryte do wejściowej).
Dlatego nazywa się to propagacja (bo błędy wędrują przez sieć) wsteczna (bo idą od warstwy wyjściowej, przez ukryte do wejściowej).
Gdyby ciężka praca prowadziła do bogactwa, to najbogatsi byliby niewolnicy.
Musisz wiedzieć, czego chcesz, wierzyć, że to osiągniesz i działać, by to zrealizować.
Najbardziej niebezpieczna broń na Ziemi: ludzki mózg...
Musisz wiedzieć, czego chcesz, wierzyć, że to osiągniesz i działać, by to zrealizować.
Najbardziej niebezpieczna broń na Ziemi: ludzki mózg...
Moglbys to rozwinac?LesioS pisze:Błędy warstwy przedostatniej to błędy warstwy ostatniej przepuszczone przez funkcję aktywacji i odpowiednie wagi, itd.

Blad ostatniej warstwy (w podanym przeze mnie przykladzie) wyniosl 0.7396. Mam go podac jako argument funkcji aktywacji neuronu, a pozniej przemnozyc przez wagi? Dokladnie przez ktore wagi mam go przemnozyc, jesli chce wyliczyc blad dla neuronu (1,2)? Przez 0,6 i 0,1 (pierwsza waga neuronu (1,1) i pierwsza waga neuronu (2,1))? Moze jakbys mogl zoperowac ten proces dla neuronu (1,2) na liczbach z mojego rysunku, byloby mi latwiej

Dzieki