Come pensano le intelligenze artificiali che hanno battuto i campioni di Dota 2?

Analizziamo il funzionamento delle intelligenze artificiali di Dota 2 che sono riuscite a coordinarsi come una squadra coesa.

Come pensano le intelligenze artificiali che hanno battuto i campioni di Dota 2?
Articolo a cura di

Il notevole progresso dell'intelligenza artificiale continua a palesarsi nelle ricerche di imprese come DeepMind o organizzazioni non profit quali OpenAI, che sfruttano i videogiochi per fini di studio. Impossibile non parlare quindi del notevole successo che OpenAI ha ottenuto nel realizzare una squadra di 5 intelligenze artificiali, capaci di coordinarsi e sconfiggere i giocatori più esperti del famoso MOBA Dota 2.
Per maggiori dettagli sul gioco e sul match di Benchmark che si è svolto questo mese vi rimandiamo al precedente articolo, mentre di seguito verrà approfondito il funzionamento di queste AI, le loro potenzialità e i limiti degli algoritmi.

La supremazia delle intelligenze artificiali in Dota 2

Dota 2 è un videogioco competitivo di squadra, che vede 5 giocatori fronteggiare altrettanti avversari in un'arena, con l'obiettivo di distruggerne la base. Mentre lo scorso anno OpenAI è riuscita vincere contro i professionisti in una partita 1v1 grazie ad un bot controllato da AI, quest'anno ha portato ben 5 AI, mettendo in campo una squadra affiatata per confrontarsi con un team di altrettanti giocatori umani. La partita di Benchmark è stata vinta dalle AI, ma la vera sfida da affrontare è quella contro i professionisti del torneo The International 2018. Il match Benchmark consisteva in 3 partite, due delle quali sono state vinte dalle AI in modo netto, sfoggiando una strategia degna dei professionisti, che predilige il lavoro di squadra ed il controllo della mappa piuttosto che il farming solitario. Nell'ultima partita le AI sono invece state sconfitte.
Non c'è da stupirsi, in quanto è stato il pubblico stesso a scegliere una squadra decisamente sbilanciata, che secondo una stima delle intelligenze artificiali stesse aveva il 2,9% di possibilità di vittoria alla fine della fase di scelta degli eroi.

I videogiochi come banco di prova dell'AI

Dicevamo che i videogiochi sono diventati un banco di prova importante per DeepMind ed OpenAI, che gli permette di sperimentare gli avanzamenti dell'intelligenza artificiale in contesti differenziati fra di loro e ricchi di sfide.
La novità importante delle attuali AI basate su algoritmi di Machine Learning è che non vengono programmate in modo da suggerire loro come agire, ma imparano a giocare da sole grazie ad ore ed ore di allenamento abbastanza autonomo. Per Dota2 i ricercatori hanno parlato di un equivalente di 180 anni di partite al giorno, che dopo diversi mesi hanno portato ai risultati del benchmark: un team di professionisti messo insieme per l'occasione è stato sconfitto brutalmente.
Rispetto a quelle che sono le attuali "intelligenze artificiali" nei videogiochi, quelle usate da OpenAI sono in grado di analizzare il comportamento del giocatore e decidere quale azione compiere in base ad un calcolo puramente statistico, che ha il solo obiettivo di aumentare le possibilità di vittoria.

Gli algoritmi usati da DeepMind ed OpenAI sono detti di Deep Learning e rientrano in quelli che comunemente vengono denominati di Machine Learning, che viene reso in italiano con "apprendimento automatico".
Nel caso specifico si parla di Reinforcement Learning, che permette all'algoritmo stesso di imparare dai propri errori con un meccanismo di premi: questi vengono decisi dai programmatori in modo da insegnare all'AI quali sono le azioni prioritarie da prediligere, ed è il motivo per cui non è propriamento corretto affermare che le AI hanno imparato a giocare autonomamente a Dota 2. Bisogna sempre tenere a mente che l'AI non è altro che una serie di istruzioni digitali che stimano la situazione futura tramite i dati disponibili nel presente. In pratica, l'AI sceglie qual è l'output migliore che le garantisce un premio maggiore: spesso non è semplice capire quale sia la scelta ottimale ed in situazioni troppo ambigue diventa difficile addestrare un'intelligenza artificiale.
La vera sfida in un gioco come Dota 2 è l'elevato numero di azioni che un giocatore può compiere in ogni istante: queste vengono premiate solo a lungo termine, ovvero spesso la singola scelta non ha un beneficio diretto. Per un'AI è relativamente semplice giocare a Pac-man, dove il pericolo ed i premi sono presenti sullo schermo e sono chiari in ogni istante. In Dota 2 è necessario coordinarsi con il proprio team per uccidere gli eroi nemici e controllare la mappa distruggendo le torri avversarie: i premi arrivano solo dopo aver pianificato una lunga serie di azioni, un concetto non semplice da trasmettere a una macchina.

Prendendo come esempio il gioco GO, per quanto sia complesso ha un numero di possibilità limitate rispetto a Dota 2, dove l'eroe può spostarsi in ogni "pixel" della mappa, usare abilità, oggetti, attaccare un creep o un nemico: il range di azioni che l'AI deve scegliere è decisamente più vasto e questo non fa altro che aumentare la complessità dell'intelligenza artificiale stessa.
La non disponibilità di tutte le informazioni della mappa in ogni istante complica ancor più la partita, poiché ogni singola AI che controlla un eroe può sapere solo quello che vede sulla sua schermata, compresa una minimappa che però non mostra gli avversari nelle zone al di fuori del campo di visione della propria squadra. Così come un umano ipotizza le mosse degli avversari a seconda di dove sono posizionati, anche un'AI svolge un'inferenza sulle possibilità che possono scaturire da quello che vede su schermo: se un nemico fuggiasco entra in una zona d'ombra, l'intelligenza artificiale dovrà calcolare le possibili direzioni che potrebbe aver scelto, così da scovarlo, assicurandosi una preziosa kill.

Anche le intelligenze artificiali hanno bisogno di allenamento

La fase di allenamento delle AI è decisiva: è qui che l'algoritmo imposta i propri parametri che, nelle partite contro avversari umani, sono fissi e vengono sfruttati per compiere le decisioni. Così come un umano si allena prima di partecipare a un torneo, anche OpenAI ha messo a dura prova i propri bot: ognuno dei 5 bot, gestito da reti neurali separate, si è allenato 180 anni al giorno per un totale di 900 anni al giorno. Allenare significa eseguire l'algoritmo di machine learning su un hardware (anche il vostro PC di casa è sufficiente) ed attendere che la statistica faccia il suo corso, ovvero che i parametri ottimali vengano impostati.
Per raggiungere l'equivalente di 900 anni di allenamento al giorno sono state necessarie ben 128.000 CPU e 256 GPU (parliamo di Tesla P100, tra le più avanzate presenti sul mercato, prodotta da NVIDIA proprio per applicazioni di intelligenza artificiale). Il costo di questo hardware si aggira intorno ai 2500 dollari per ora, un prezzo che OpenAI può permettersi visti i finanziamenti che vengono da personaggi come Elon Musk.
Ovviamente il solo fatto che sia stato necessario un allenamento così estremo per raggiungere il livello dei professionisti in Dota 2 dimostra come le attuali implementazioni di intelligenza artificiali manchino di "vera intelligenza", ovvero hanno bisogno di una vera esperienza e in linea di principio non possono prevedere un evento che non si è mai verificato nella fase di allenamento. Il prossimo video vi fornisce un'idea chiara di quali sono i grattacapi da affrontare nell'allenare un'AI.

Le ward di Dota 2 permettono di avere un piccolo cerchio di visibilità nel punto della mappa dove vengono posizionate e nel video è chiaramente visibile che i bot a volte le collocano in modo inefficiente, una vicina all'altra, piuttosto che a una certa distanza, per scrutare altre porzioni di mappa. Questo comportamento è rimasto anche nel match di Benchmark e dimostra quanto sia complesso comunicare all'AI quando un'azione è errata, almeno se non è semplice impostare matematicamente il problema.
Le AI non effettuano una scannerizzazione dello schermo ad ogni frame, ma sfruttano 20.000 parametri (numeri) forniti dal gioco che riassumono lo stato della schermata ogni 4 frame (su 30 fps). Questo è un chiaro vantaggio rispetto ad un essere umano che non può leggere tutta la sua schermata con la stessa velocità di un bot. Il team di OpenAI ha precisato che, nonostante il vantaggio sui riflessi, i bot hanno dimostrato di mettere in campo una strategia vincente che è stata la vera ragione della vittoria. Dunque, anche se la prontezza è generalmente superiore (ma non inarrivabile per un esperto del settore), in realtà la chiave di vittoria è stata la coordinazione tra le intelligenze artificiali.

A proposito di coordinazione: non esiste alcuna comunicazione esplicita fra i bot e l'unico modo che hanno per mettere in piedi un gioco di squadra degno dei professionisti è grazie ad un semplice parametro, un numero compreso tra 0 e 1 che indica il team-spirit.
Quando questo numero si avvicina ad 1, le 5 intelligenze artificiali hanno la stessa funzione matematica come obiettivo e il loro comportamento sembra quello di una squadra affiatata. Non è dato sapere se esistono parametri condivisi che permettono una comunicazione non esplicita tra i bot, essendo estremamente complicata l'analisi del significato di ogni singolo parametro di una rete neurale.

Il futuro è nella generalizzazione delle AI?

Quelli che vi abbiamo spiegato sono i problemi principali che i ricercatori hanno dovuto affrontare, che mostrano quale sia l'interesse di organizzazioni come OpenAI. Il gran numero di variabili da tenere in conto è un ottimo allenamento per future applicazioni nel mondo reale. DeepMind sta seguendo la stessa strada nel gioco Starcraft II, che come Dota 2 si pone come un'ottima sfida per le AI visto il gran numero di possibilità che si presentano a schermo in ogni istante.
Se la vittoria in un videogioco sembra fine a sé stessa, bisogna pensare alle possibilità che si apriranno all'intera umanità quando le intelligenze artificiali verranno sfruttate in modo massiccio nei campi dell'ingegneria, della medicina, della fisica o dell'astronomia. Ad oggi abbiamo la dimostrazione che l'AI può risolvere problemi specifici estremamente complessi tramite la forza bruta, fintanto che sono disponibili abbastanza dati per allenarla e che il problema sia formalizzabile in modo semplice.
L'elevate quantità di dati è un requisito ancora stringente se si prende come esempio l'AI di Dota 2: infatti è proprio nel terzo match che le AI si sono mostrate confuse e disorientate, ovvero in quella situazione di netto svantaggio che non è stata mai affrontata in fase di allenamento.
Le prospettive future, oltre al miglioramento di questo tipo di AI, sono sicuramente da rivolgersi nella generalizzazione di questi algoritmi, per risolvere problemi più generici, così da ridurre l'intervento dell'umano nell'indirizzare l'intelligenza artificiale verso la soluzione corretta.