Icone color1 09

implementare una rete neurale profonda per giocare a fifa 18

Autore: Chintan Trivedi

Linkedin: https://www.linkedin.com/in/chintan-trivedi-78665774/

Traduttrice: Sabrina Sala

 

Gli A.I. bots, ossia di programmi in grado d’agire, sono solitamente programmati con una serie di regole a priori che comunicano con il gioco. Nella maggior parte dei casi, questo approccio è sufficientemente efficace per far sì che il bot imiti i comportamenti umani. Tuttavia, in molti contesti è ancora molto semplice distinguere un bot da un vero essere umano. Prenderemo quindi in considerazione questo  quesito: cosa succederebbe nel caso in cui lasciassimo che il bot comprenda autonomamente dall’osservazione del gioco umano, senza l’utilizzo di regole empiriche?

Ciò richiede un gioco dove sia possibile raccogliere questo genere di dati sul comportamento dei giocatori e FIFA 18 fa al caso nostro. Poter registrare le nostre azioni e decisioni durante la fase di gioco ci permette di implementare un bot basato sulla deep learning, senza che si renda necessaria la programmazione di una singola regola di gioco.

Il codice per questo progetto ed il modello già allenato possono essere trovati qui.

 

Meccanismi di gioco

Il meccanismo alla base per implementare un tale bot non necessita di accesso ad alcun codice interno. È sufficiente un semplice screenshot della finestra di gioco per dare avvio al nostro engine. Quest’ultimo, processa le informazioni visive e realizza sulla base di esse un’azione che viene comunicata al gioco attraverso una simulazione della pressione dei tasti. Quindi, la procedura viene ripetuta per ogni step.

 

4 1

Ora che abbiamo l’input, l’insieme di screenshot che permettono al bot di agire, giungiamo alla parte interessante: la costituzione di un’intelligenza artificiale che apprenda dal gioco. Ciò viene fatto dapprima 1) utilizzando una rete neurale convoluzionale (CNN) per elaborare le schermate e, secondariamente, 2) sfruttando le reti di memoria a breve e lungo termine (LSTM) per decidere in merito all’azione più appropriata.

 

Step 1) allenare una rete neurale convoluzionale (CNN)

Le CNN sono spesso conosciute per la loro capacità di individuare oggetti in un’immagine con elevata accuratezza. Associando ad essa potenti GPU e architetture di reti intelligenti, possiamo ottenere un modello di CNN che opera in tempo reale.

5 2

5 2

Per far sì che il nostro bot processi l’immagine che gli è stata data come input, utilizziamo una CNN veloce ed estremamente leggera chiamata MobileNet. La mappa delle caratteristiche, estrapolate dalla rete, rappresenta una comprensione profonda dell’immagine, riuscendo ad individuare dati quali la posizione dei giocatori e di altri oggetti di interesse nello spazio dello schermo. Questa mappatura è quindi usata con un single-shot multi-box per individuare i giocatori nell’area di gioco, insieme al pallone e alla porta.

6

 

Step 2) allenare reti di memoria a breve e lungo termine (LSTM)

7

Ora che abbiamo una comprensione dell’immagine, possiamo procedere con il passaggio successivo, l’azione. Tuttavia, non possiamo limitarci allo studio di una sola schermata per decide come agire ma, piuttosto, dovremmo guardare a una breve sequenza di queste. È qui che entrano in gioco le LSTM poiché sono conosciute per modellare una sequenza temporale di dati. Ciascun frame consecutivo è utilizzato come passo temporale nella nostra sequenza, e per ognuno di essi viene estrapolata una feature map utilizzando il modello delle CNN. Queste ultime sono poi introdotte simultaneamente in due reti LSTM.

La prima rete LSTM ha la funzione di capire quali movimenti il giocatore necessita di fare ed è, quindi, un modello di classificazione “multi-classe”. La seconda LSTM riceve lo stesso input ma deve, invece, decidere quale azione scegliere tra passaggio corto, cross, passaggio filtrante e tiro. È quindi anch’essa un modello multiclasse. Gli output prodotti da queste due classificazioni sono poi convertiti nella pressione dei tasti che controllano le azioni di gioco.

Le reti sono state allenate sulla base di dati collezionati attraverso il gioco manuale, la raccolta delle immagini e la pressione del tasto corretto.

 

Valutazione della prestazione del bot

Non potremmo valutare la performance del bot, se non lasciando che giochi. Dopo soli 400 minuti di allenamento, il bot ha imparato a correre verso la porta avversaria, a fare passaggi frontali e scattare una fotografia dello schermo ogni qualvolta rilevi un goal. Nella modalità principiante di FIFA 18, ha già conseguito 4 goal in sei partite, uno in più di quanti ne abbia fatti Paul Pogba durante la stagione 17/18.

Video del bot in azione possono essere trovati qui.

 

Conclusioni

Le impressioni iniziali a questi approccio di implementazione di bot in grado di giocare sono certamente positive. Con un allenamento piuttosto limitato, il bot è riuscito a cogliere le regole basi del gioco: muoversi verso la porta avversaria e spingere la palla nella rete. Sarebbe sicuramente in grado di avvicinarsi al livello di performance umano se sottoposto a molte più ore di allenamento, le quali potrebbero essere facilmente raccolte dallo sviluppatore del gioco. In aggiunta, estendere il modello di allenamento a riprese reali di partite, permetterebbe di rendere il comportamento del bot molto più naturale e realistico.

 

 

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *