Neuronové sítě – předpověď funkce dle předchozích hodnot

Díl 7

Navážeme na již zveřejněný díl o neuronových sítích Neuronové sítě – grafy a funkce.

Neuron UraxFceFollow principBudeme učit neurony opět popisovat nejrůznější funkce, ale trochu jinak. Naučíme neuronovou síť jen část funkce a zbytek ji necháme vykreslit bez toho aniž by následná data někdy viděla. Uvidíme, jestli se naučí odhadnout, jak bude funkce pokračovat.

Princip

V díle, ve kterém jsme neuronovou síť učili podle dat funkce, jsme jako vstupní hodnoty používali hodnoty osy X a učili jsme neuronovou síť odpovídající hodnotu Y.

Nyní pro učení použijeme několik vstupních hodnot Y jdoucích bezprostředně za sebou a výstupem bude následná hodnota Y. Potom se celý postup opakuje tak, že se o jeden krok hodnot posuneme.

Takto postupujeme třeba do 50 % dat funkce a dále necháme neuronovou síť vykreslit křivku bez toho aniž by další hodnoty Y prošly procesem učení.

Vstupní parametry

Normalizace probíhá tak, že nejprve zjistíme minimum a maximum v ose Y a tyto hodnoty lineárně normalizujeme k hodnotám 0 až 1. Tato data jsou použita jako vstupní hodnoty neuronové sítě.

Výstupní parametry

Výstupní data normalizujeme obdobně jako vstupní jen opačně. Hodnoty výstupu 0 až 1 lineárně normalizujeme na minimum až maximum osy Y.

Tvar neuronové sítě

Tvar neuronové sítě od předchozího použití se mírně liší. Minule jsme použili neuronovou síť s jedním vstupním a jedním výstupním neuronem. Nyní budeme počet vstupní neuronů volit podle toho, z kolika předchozích hodnot bude následující hodnota vycházet, viz. obrázek.

Pro jednoduché hladké funkce (sin, cos) bez četných lokálních minim či maxim dostačuje menší počet vstupních neuronů. Pro větší detail funkce je nutné počet vstupních neuronů zvýšit tak, aby dostatečně popsal charakteristiku dat, viz. ukázková data.

Aplikace

Aplikace je dostatečně intuitivní, tak jen ve zkratce:

UraxFceFollow.zip (C++) aplikace ke stažení (527 kB)
(Stažený soubor rozbalte do nějakého adresáře a spusťte UraxFceFollow.exe, jsou přibaleny i nějaké vzorové soubory, které můžete načíst do ukázkové aplikace)

Závěrem

Rozhodujícím faktorem pro ideální nalezení funkce je správně zvolený počet vstupních neuronůreprezentativní část funkce vybrané pro učení. Pokud jsou body funkce/dat detailnější musí se volit vyšší počet vstupních neuronů. Dalším faktorem, který ovlivní učení neuronové sítě je zvolený krok jednotlivých bodů a jakým podílem je tento krok periody funkce. Tyto předpoklady se jeví ideální v zásadě pro všechny cyklické funkce/data.

UraxFceFollow – ukázka zpracování individuálních dat – (UraxFceFollow_data_test.zip pro UraxFceFollow ke stažení 3 kB)
(Stažený soubor rozbalte v adresáři s aplikací UraxFceFollow, spusťte aplikaci UraxFceFollow a načtěte ukázková data)

Shrimphood.net tým a jejich neuronové sítě na vás čekají v budoucnu

-fjura-

Odkazy

Další projekty Neuronové sítě

Galerie

| Více