Š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
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.
Čo je už hotové
- Plne funkčná manuálna verzia hry Snake v knižnici pygame.
- Samostatné RL prostredie s definovaným stavovým priestorom, akciami a reward funkciou.
- Implementácia DQN neurónovej siete v PyTorch (Linear_QNet).
- Tréningová logika s oddeleným short/long memory tréningom.
- Ukladanie a opätovné načítanie natrénovaných váh modelu.
- Vizualizácia priebehu učenia – skóre a priemerné skóre v čase.
- Skripty na testovanie a kontrolu uložených modelov.
- Vygenerované videá porovnania agentov a timelapse tréningu.
- Pripravené podklady pre rozšírenie na súťažné prostredie Kaggle.
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.
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
- Analýza pravidiel Hungry Geese
- Úprava herného prostredia
- Úprava neurónovej siete a vstupov
- Tréning v multi-agent prostredí
- Simulácia Kaggle hodnotenia
- 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í.