Neuronové sítě – hledání pozice

Díl 2

Konečně se přesuneme od teoretického výkladu a testování s číselnými výstupy, k něčemu praktičtějšímu. Hlavně snad názornějšímu a na první pohled snad posoudíte i učení neuronových sítí opticky.

Schéma pro hledání poziceNapadlo nás jednoduché hledání pozice v prostoru (2D prostoru, ale v 3D prostoru je to obdobné) .

Na ploše jsou dva body. První je řízen neuronovou sítí (říkejme mu pracovně Playron – ten větší) a druhý je cíl (menší), kterého neuronová síť má dosáhnout.

Vstupní a výstupní parametry

Vstupními parametry pro učení a vyhodnocení musí být samozřejmě poziční body Playrona (X a Y) a cíle (Xp a Yp).

Vstupní hodnoty jsou lineárně normalizované na 0 až 1 pro osu x i y. 0 odpovídá počátku a 1 maximální hodnotě souřadného systému. V našem případě 0 až 1 odpovídá hodnotám 0 až 608 pixelů pro každou osu.

Vstupní absolutní pozice

Pokud budeme vycházet ze vstupů absolutních pozic bude mít naše neuronová síť 4 vstupní neurony pro X, Y, Xp a Yp. Absolutní vstupní parametry učí neuronovou síť se pohybovat v souřadném systému podle aktuální pozice vztažené k počátku.

Vstupní relativní pozice

Nebo můžeme použít jako vstupní parametry rozdíl pozice Playrona a cíle v ose x a y. Tzn. že vstupní neurony budou jen dva X-Xp a Y-Yp. Relativní vstupní parametry učí neuronovou síť vyhledat cíl v libovolných souřadnicích jen podle vzdálenosti od cíle.

Výstupní parametry

Pro výstup jsme zvolili dva neurony pro pohyb v ose x a y. Výsledkem jsou hodnoty 0, která určuje pohyb jedním směrem a 1 směrem opačným. V našem případě jsme zvolili krok 10 s tím, že nulový pohyb je na hodnotě 0.5. Takže naše pohybové hodnoty (dX, dY) nabývají čísel od –5 až do +5.

Neuronová síť 4 vstupy      Neuronová síť 2 vstupy

Příprava dat pro učení

Na připravovaná data se dá pohlížet několika způsoby.

Aplikace pro hledání pozice neuronovou sítí

Aplikace obsahuje textovou nápovědu po najetí myší na určitý ovládací prvek.

Z přiložených souborů si můžete otevřít vzorová a naučená neuronová data, nebo si vytvořit svoji konfiguraci sítě a zkusit si učení a sledování změny chování výpočtu. 

UraxMove.zip (C++) hledání pozice neuronovou sítí aplikace ke stažení (288 kB)
(Stažený soubor rozbalte do nějakého adresáře. Balíček obsahuje aplikaci a vzorová data.)

Pro názornost také aplikace v Javě. Klávesou A spustíte jeden cyklus učení.

NoGoNw1.zip (Java) hledání pozice neuronovou sítí aplikace ke stažení (2,18 MB)
(Stažený soubor rozbalte do nějakého adresáře.)

Příště si zkusíme konečně něco okázalejšího – ping pong.

Pěkné hraní na Shrimphood.net

-fjura-

Odkazy

Další projekty Neuronové sítě

Galerie

| Více