Una Rete Neurale che gioca a FIFA18

206

Le possibilità dell’ultimo Esport EA ha tutte le carte in regola per essere giocato da giocatori esperti e meno esperti… come una intelligenza artificiale!

Il 2000 è passato da un pezzo, e ogni piccolo passo compiuto dalla tecnologia fa emozionare come se l’epoca dei Robot e delle Intelligenze Artificiali fosse alle porte! Ma prima che le macchine possano ribellarsi contro il genere umano, come già predetto in numerosi film catastrofici, le Intelligenze Artificiali (o AI, derivato dalla contrazione delle due parole “Artificial Intelligence“) sono state utilizzate nei più disparati ambiti, da Deep Blue, campione di scacchi tuttora invincibile, alle missioni spaziali, ma anche in ambiti più “comuni”, basti pensare alle recenti auto a guida autonoma o i termostati “intelligenti”, in grado di interagire con gli altri dispositivi di casa.
Perché non utilizzarle allora per giocare a FIFA18?

La Rete Neurale Artificiale

Una Rete Neurale non è altro che un sistema attraverso il quale diversi Input (generalmente stimoli esterni) vengono elaborati attraverso dei Nodi (i Neuroni) e viene rilasciato uno o diversi Output.

Se si immagina il processo che si compie nel cervello umano, si tratta di una rete neurale!
Prendendo ispirazione dalle reti neurali presenti in natura, l’informatica ha sviluppato a partire dagli anni ’50 diverse Reti Neurali Artificiali, nel quale i Neuroni vengono sostituiti da una controparte artificiale. Durante la creazione di una rete neurale serve prestare particolare attenzione al processo di trasformazione degli input inseriti al suo interno per la generazione degli output di risposta, attraverso una solida funzione di trasporto. Il successo di una rete neurale si misura proprio dalla sua capacità di generare degli output corretti a seconda della situazione. Non pensate per forza a qualcosa di troppo sofisticato, applicato agli Esport: probabilmente ne avrete visti giocando a League of Legends o ad altri sport elettronici. Sono quei “giocatori” che hanno un comportamento decisamente schematico, niente altro che codice, impossibilitati (per ora) a spammare Emote insieme a voi.

Studi preliminari a FIFA18

L’approccio dei Bot agli Esport è pertanto al momento molto limitativo: compiono alcune azioni in maniera schematica. L’approccio di Chintan Trivedi è stato differente; invece di sviluppare un codice e applicarlo in maniera schematica al gioco, ha ricercato un Esport che permettesse alla macchina di apprendere dalle scelte compiute dai giocatori, in modo da avere una enorme mole di dati da far analizzare al suo bot, permettendole quindi di apprendere dalle decisioni prese da giocatori umani, senza dover codificare ogni regola del gioco.

Per costruire questa rete neurale, Trivedi non ha dovuto quindi mettere le mani sul codice del gioco: basta catturare uno screenshot della schermata di gioco, per fornire gli input iniziali alla macchina. Le informazioni visive sono elaborate e viene generata l’azione che si vuole intraprendere, che viene poi comunicata al gioco tramite una sequenza di tasti.

Il funzionamento della Rete

Messo a punto il sistema col quale gli input vengono elaborati per giungere ad un corretto output, eccoci alla parte più interessante: l’apprendimento della rete!
Esso si articola in due parti: 

  • La rete comprende l’immagine dello screenshot
  • La rete elabora una azione appropriata in base a ciò che ha compreso dall’immagine

Per permettere al Bot di comprendere l’immagine, il ricercatore ha utilizzato una rete neurale chiamata MobileNet, ispirata all’organizzazione della corteccia visiva animale. Grazie a questa rete, è possibile comprendere molti elementi di una immagine come i giocatori o altri parametri importanti della stessa (come l’obiettivo finale. fare Goal!)

Una volta che l’immagine è stata compresa, dobbiamo decidere come agire. La difficoltà sta nel non dover decidere nel frame (il momento esatto della azione), ma prevedere le possibili strategie da un dato moemnto. Ed è qui che le reti Long Short Term Memory (LSTM) entrano in gioco: esse possono modellare i dati in sequenze temporali, adattandoli nel corso del tempo. I fotogrammi successivi alla azione in corso vengono quindi utilizzati per prevedere “cosa accadrà”. Nello specifico, vengono utilizzati due sistemi LSTM: il primo prende coscienza del movimento che deve compiere il giocatore, il secondo riceve lo stesso input del primo e decide quale azione intraprendere
L’output dei due sistemi viene convertito in seguito in un output di pressione tasti con la quale vengono controllate le azioni in gioco. I dati sono stati inseriti giocando precedentemente delle partite in modalità umana.

Le AI: giocatori…bravini!

Le performance del Bot non sono state per nulla brutte: dopo 400 minuti di apprendimento, la macchina era già in grado di correre verso la porta avversaria, fare qualche passaggio e tirare in porta quando le era possibile. Sono risultati stupefacenti, se consideriamo che parliamo di una macchina alle prese con problemi complessi come la gestione di una partita di calcio. Ha totalizzato 4 goal in 6 partite al livello principiante, più di quanti potrei farne io con ore di allenamento, per esempio, e chissà cosa potrebbe fare con ulteriori ore di apprendimento!
L’uso delle intelligenze artificiali negli Esport potrebbe essere utile agli sviluppatori mentre creano il codice necessario alla produzione di nuovi titoli. 

Potrebbe avvicinarsi o superare l’abilità dei giocatori in carne ed ossa.

Potete ritrovare il lavoro di Chintan Trivedi direttamente su GitHub, mentre vi è un video esplicativo del suo lavoro proprio qui!

 

Giocatore di League of Legends dalla Season 3, si interessa da subito alla architettura sulla quale poggia il concetto stesso di "Gioco". Numeri, statistiche e performance sono gli strumenti che vuole utilizzare per raccontare al grande pubblico come funzionano i giochi che li appassiona.