Špecifikácia projektu

Názov projektu
PyTorch Game Agent: Návrh, tréning a súťažné porovnanie
Študent
Dávid Moniš · david5.monis@gmail.com
Školiteľ
RNDr. Andrej Lúčny, PhD. · lucny@fmph.uniba.sk
Téma
Reinforcement learning a neurónové siete aplikované na hranie jednoduchej videohry so súťažením na Kaggle.
Špecifikácia (Cieľ)
Projekt je rozdelený do dvoch nadväzujúcich fáz. Prvá fáza sa zameriava na návrh a implementáciu DQN agenta pre hru Snake vrátane kompletného tréningového ekosystému v PyTorch. Druhá fáza nadväzuje rozšírením riešenia na multi-agentové prostredie Kaggle Hungry Geese, kde je cieľom adaptovať agenta na nové pravidlá a dosiahnuť merateľné výsledky v súťažnom hodnotení.
Zdrojový kód projektu
GitHub – DavidMonis / RocnikovyProjekt
README
Návod na spustenie tréningu a testovania

Krátky opis hry

Hra je variácia klasického Snake, navrhnutá ako prostredie pre reinforcement learning. Agent sa v každom kroku rozhoduje na základe lokálnych informácií o nebezpečenstve, aktuálnom smere pohybu a relatívnej polohe potravy. Jeho cieľom je efektívne navigovať mriežku, vyhýbať sa kolíziám so stenami a vlastným telom a dlhodobo maximalizovať skóre.

Správanie hada nie je explicitne naprogramované – agent sa učí stratégiu postupne prostredníctvom skúseností, odmien a penalizácií. Pomocou Deep Q-Learningu dokáže plánovať pohyb, prispôsobovať sa rastúcej dĺžke tela a zlepšovať svoje rozhodnutia s narastajúcim počtom odohraných epizód.

Projekt nepredstavuje len výslednú hru, ale kompletný tréningový ekosystém zahŕňajúci definíciu stavového priestoru, množinu akcií, návrh reward funkcie, neurónovú sieť, tréningovú logiku, ukladanie modelov a vizualizáciu učenia v reálnom čase.

Screenshot 1
Herné rozhranie počas behu agenta
Screenshot 2
Prostredie určené pre reinforcement learning

Čo je už hotové

Evidencia a výsledky

Nižšie sú ukážky výsledkov tréningu. Videá demonštrujú rozdiely medzi natrénovaným agentom v rôznych fázach učenia a časový priebeh tréningu.

Porovnanie 3 úrovní hadov

TimeLapse tréningu

Uložené váhy modelu

smartSnake.pth (GitHub)

Plán na druhý semester – Kaggle Hungry Geese

Cieľom druhého semestra je zapojiť sa do súťaže Kaggle – Hungry Geese , ktorá predstavuje multi-agentovú verziu hry Snake. V tejto hre súťažia štyri „husi“ na jednej mriežke, zbierajú potravu a snažia sa prežiť čo najdlhšie bez kolízie so stenou alebo inými hráčmi.

Hoci je súťaž oficiálne ukončená, Kaggle stále umožňuje spúšťať notebooky, simulovať zápasy a porovnávať výsledky lokálne, takže projekt je možné realizovať ako realistickú „offline“ súťaž.

Hlavná úloha

Upraviť existujúceho Snake DQN agenta tak, aby bol schopný hrať v prostredí Hungry Geese (4 hráči, iná mapa, iné pravidlá pohybu a kolízií) a následne dosiahnuť merateľné umiestnenie v rebríčku alebo v offline hodnotení.

Plánované kroky

  1. Analýza pravidiel Hungry Geese
  2. Úprava herného prostredia
  3. Úprava neurónovej siete a vstupov
  4. Tréning v multi-agent prostredí
  5. Simulácia Kaggle hodnotenia
  6. Vyhodnotenie a dokumentácia

Výsledkom druhého semestra bude agent schopný hrať komplexnú multi-agentovú verziu hry Snake a demonštrovať praktické použitie reinforcement learningu v súťažnom prostredí.