Neuronové sítě – ping pong

Díl 3

Hra ping pong nebo také tenis je dnes známá snad každému. Objevovala se již v prvních herních zařízeních a s různými obměnami se objevuje dodnes na všech platformách. Jedná se snad o nejzákladnější hru, ve které se snažíte odrazit míček k soupeři tak, aby jej soupeř nezachytil a ztratil bod.

Pokud nemáte soupeře je vám soupeřem herní zařízení, které simuluje protivníka. Simulace spočívá v tom, že herní algoritmus má umělé omezení herního algoritmu, které nechá Vás jako soupeře třeba i vyhrát.

Co ale mít za protivníka neuronovou síť. A třeba neuronovou síť, která se stane vašim protivníkem po tom, co ji naučíte pinkat do míčku. Jednoduše žák, který se stane rovnocenným soupeřem (vaším dvojčetem).

Princip

Neuron ping pongInicializovaný a nenaučený datový model neuronové sítě, neví nic o tom jak se pohybovat ve vztahu k pohybujícímu se míčku. Tzn. že bude stát u některého okraje hřiště a jen pozorovat hru soupeře. Podle úspěšných pokusů soupeře se začne také pokoušet míček trefit pálkou.

Systém učení je zde trochu jiný než u jiných výuk neuronové sítě. Míček je vystřelen proti pálce protivníka. Cesta míčku k pálce hráče je vzorkována a pokud je míček hráčem úspěšně odražen, jsou data pohybu míčku vůči pálce uložena do archívu (v opačné orientaci, protože učíme neuronovou síť podle soupeře). Vzápětí dojde k učení neuronové sítě podle dat v archívu. Při zpětném pohybu míčku k neuronové síti se pak podle naučených schopností snaží míček zachytit svoji pálkou. A toto se opakuje neustále dokola.

Vstupní parametry

Vstupními parametry musí být tedy pohyb a poloha míče a také poloha pálky v ose Y.

Výstupní parametry

Výstupem bude pouze pohyb pálky 0 až 1 (při deoptimalizaci pohybu potom od –8 až 8 pix v ose Y)

Tvar neuronové sítě

Neuron ping pong netZvolený model neuronové sítě bude závislý na počtu vstupních a výstupních parametrů. Dobře se osvědčil tvar neuronové sítě 5-3-10-1 (viz odkazy), ale i zmenšený model 5-10-1. Mějte na paměti, že pokud bude model příliš velký bude hodnou chvíli trvat než se pálka neuronové sítě pohne. Pokud bude model příliš malý nebude se moci kvalitně naučit pohyb pálky vůči pohybujícímu se míčku.

Aplikace pro učení ping pong neuronové 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í. Pro zpestření jsme přidali možnost zapnout gravitaci či zpomalování míčku po odpálení.

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

Příště si zkusíme něco z matematiky – matematické grafy funkcí.

Bavte se na Shrimphood.net

-fjura-

Odkazy

Další projekty Neuronové sítě

An Introduction to Neural Networks with an Application to Games

Galerie

| Více