Bot di Dota 2 sconfitto. L'umano è ancora superiore alle IA?

Il famoso Bot di Dota 2 è stato sconfitto da giocatori non professionisti: l'IA è una tecnologia ancora da affinare rispetto alle capacità di un umano?

Bot di Dota 2 sconfitto. L'umano è ancora superiore alle IA?
Articolo a cura di

Durante il torneo internazionale di Dota 2, evento che si tiene ogni anno alla KeyArena di Seattle, hanno fatto l'apparizione sul palco gli sviluppatori di OpenAI, una delle aziende di Elon Musk che sta sviluppando intelligenze artificiali, creatrice di una delle IA più avanzate nel campo dei videogiochi. L'obiettivo era quello di testare il Bot creato dall'azienda contro uno dei giocatori storicamente più forti di Dota 2, l'ex-campione mondiale Dendi. Le regole di Dota 2 sono abbastanza complesse da impedire a qualunque Bot scriptato di poter vincere contro qualsiasi giocatore con molta esperienza, dunque creare un'IA che potesse competere contro i campioni non è un obiettivo semplice. Eppure OpenAI è riuscita nell'intento di dar vita a un algoritmo intelligente che ha sconfitto tutti i concorrenti più forti al mondo.

Nonostante questa parte di storia sia nota a quelli che ci seguono ed hanno già letto il nostro speciale sul Bot di Dota 2, quello che molti non sanno è che questo Bot è stato successivamente battuto più di 50 volte da altri giocatori 'meno esperti', che si sono cimentati nella sfida durante gli ultimi giorni del torneo internazionale. Vi consigliamo di leggere il precedente articolo per capire le regole di Dota 2, anche se i meccanismi basilari verranno riassunti brevemente in poche righe. Il nostro obiettivo ora è uno solo: un'intelligenza artificiale è in tutto e per tutto superiore alla mente umana? Oppure possiamo sempre trovare un modo per aggirarla?

Le strategie del Bot intelligente e i suoi punti deboli

Se conoscete il gioco potete saltare questo paragrafo. Dota 2 prevede una sfida 1v1 al centro di una mappa ed ogni giocatore controlla un eroe, lo stesso per entrambi al fine di garantire una lotta ad armi pari. La vittoria si ottiene uccidendo 2 volte l'avversario o distruggendo la sua prima torre difensiva. Per ogni schieramento ci sono dei creep, piccoli mostri deboli che hanno uno spawn automatico e combattono gli uni contro gli altri senza che il giocatore li controlli. Oltre a spingere la propria lane (corsia) e cercare di distruggere la torre nemica, i creep sono essenziali per i giocatori ad inizio partita: effettuando un last hit (ultimo colpo) sui creep, il giocatore guadagna esperienza e soldi e dovrà cercare di impedire all'avversario di fare last hit sui propri creep. Per negare il last hit all'avversario basta colpire il proprio creep prima di lui, effettuando quindi un deny. Poiché trovarsi nella zona sopraelevata della mappa conferisce un bonus di elusione se si viene attaccati dal basso (ovvero dal fiume, come visibile nell'immagine), è bene che all'inizio della partita i creep nemici avanzino di più rispetto al centro della mappa: per farlo i giocatori bloccano i creep con il proprio eroe in modo da rallentarli, così che lo scontro si svolga subito in prossimità della propria torre.

Queste sono le regole principali e secondo queste il Bot di OpenAI ha stracciato tutti i campioni mondiali. D'altronde era logico che l'algoritmo fosse allenato esattamente in quelle tattiche e che non potesse perdere non tanto per la capacità di eseguire rapidamente le azioni consecutive (che gli è stata rallentata per renderlo più umano), ma per la scelta della strategia migliore in ogni situazione. L'unico modo per battere l'IA era quello di farle affrontare un contesto differente rispetto a quello nel quale si è allenata, ovvero fare in modo di creare una situazione nella quale non avesse alcuna esperienza, esattamente quello che si fa in tutti gli sport competitivi: sorprendere l'avversario. Nel seguente video potete vedere le tattiche spiegate e altre più avanzate.


La sconfitta del Bot e la rivincita degli esseri umani

Quindi dov'è che i giocatori normali hanno avuto successo rispetto ai campioni mondiali? Nel creare situazioni nuove che l'IA non conoscesse. Chiaramente l'aver visto la sconfitta di Dendi in diretta è stato utile a tutti gli appassionati per realizzare immediatamente che il Bot non andava battuto secondo le regole classiche. SumaiL, uno dei campioni del gioco, ha definito il Bot 'imbattibile', non sapendo che esistessero situazioni che lo confondono. Nello specifico sono stati trovati 3 modi di batterlo.

Nel primo caso il giocatore ha scelto di non sfidare il Bot ed andare dietro le sue torri per attirare i suoi creep al di fuori della lane: infatti quando un eroe entra nel raggio di azione di creep nemici questi lo inseguono per tutta la mappa fintanto che non lo perdono di vista. Il trucco è fare in modo che allo spawn di ogni ondata di creep il giocatore li attiri al di fuori della lane, con l'obiettivo di liberarla e fare in modo che i propri creep non abbiano alcun nemico da affrontare e si dirigano verso la torre nemica. L'immagine qui sopra mostra chiaramente i creep verdi che attaccano la torre, perché i creep marroni sono bloccati sopra perché distratti da altro. Questo comportamento ha confuso il Bot: non sono stati pubblicati video al riguardo ma possiamo supporre che abbia cercato di inseguire l'eroe nemico, lasciando indifesa la propria torre che è stata distrutta dai creep del giocatore umano.

Nel secondo caso un altro giocatore ha sfruttato l'ignoranza del Bot di OpenAI verso alcuni oggetti acquistabili nello shop, in particolare Orb of venom e Wind Lace: il primo permette di rallentare il movimento del nemico quando colpito e di infliggergli danni bonus, mentre il secondo conferisce un bonus alla velocità del proprio personaggio. Il trucco è far sì che il nemico venga rallentato e che sia possibile inseguirlo facilmente grazie alla velocità bonus, sfruttando il vantaggio del danno bonus e il fatto che al livello 1 non ha abbastanza vita, abilità o oggetti per scampare alla morte. Il terzo metodo per battere l'algoritmo intelligente è stato usato da giocatori veramente esperti: l'eroe scelto, Shadow Fiend, ha 3 abilità che colpiscono il nemico infliggendogli molti danni quando è al livello 1. Queste skill richiedono molta esperienza per esse maneggiate, in quanto è necessario calcolare bene la distanza del nemico e il suo spostamento laterale, nonché il tempo di ricarica dell'abilità stessa. Con una buona dose di pazienza e precisione i giocatori più allenati hanno ucciso immediatamente il bot nemico. Nel video viene mostrato l'uso dell'abilità in questione (Shadow Raze) riconoscibile quando Shadow Fiend muove entrambe le braccia.


Quindi l'IA non è così forte come si pensa?

Il Bot di OpenAI è qualcosa che non si è mai visto in un videogioco, non segue delle regole fisse perché non deve obbedire a nessuno script prestabilito che gli indichi le azioni da svolgere: come un qualsiasi algoritmo di Machine Learning, analizza i dati ed impara secondo l'esperienza che affronta. Se non siete abbastanza impressionati da questo risultato dovreste cominciare a pensare più in grande immaginando di portare un'IA di questo tipo in un contesto bellico. Ora il Bot fa un po' più paura vero?

In ogni caso il Bot non ha problemi ad imparare, queste sconfitte non sono altro che un'opportunità per acquisire nuovi dati. Come un essere umano l'IA fallisce ed impara dalle proprie sconfitte, ma in modo più efficiente e senza mai stancarsi, senza contare la velocità alla quale può analizzare dati. Ad esempio l'IA era già stata battuta dal giocatore Pajkatt prima del torneo internazionale, perché non aveva mai sfidato un giocatore che usasse la magic wand, un oggetto che accumula cariche quando l'avversario usa le proprie abilità e fornisce una cura istantanea in base alla cariche accumulate. Pajkatt ha ingaggiato la lotta contro il Bot ed ha usato la magic wand per curarsi quando stava per morire, sorprendendo l'avversario che non aveva previsto l'aumento istantaneo della sua vita. Nel seguente video trovate la sfida intera:

Dopo questa sconfitta i programmatori hanno inserito i dati della magic wand nell'algoritmo del Bot per insegnarli il suo funzionamento. Anche la sfida contro i due più forti giocatori di Dota 2, Arteezy e SumaiL non è stata indolore al 100%. Arteezy ha perso 10-0, e il giorno successivo anche SumaiL è stato sconfitto 6-0, eppure a quest'ultimo è stato concesso di sfidare il Bot del giorno precedente, ovvero l'IA prima che acquisisse i dati della sfida contro Arteezy. Il risultato? Ennesima sconfitta per SumaiL, ma stavolta con un punteggio di 2-1. Come è evidente i dati della partita contro Arteezy sono stati un'esperienza fondamentale per il Bot, tanto che senza questi è stato sconfitto una volta da SumaiL.

La superiorità dell'essere umano rispetto alle IA

Nonostante un algoritmo intelligente possa imparare in modo veloce e svelto non è assolutamente in grado di acquisire esperienza al di fuori del suo contesto d'uso. Un essere umano perderà sfidando il Bot nel suo campo di gioco, ovvero nella sfida classica 1v1 di Dota. Eppure con la giusta fantasia e la corretta dose di ingegno un giocatore può ancora sconfiggere un'IA, perché l'umano ha dietro di sé un'esperienza di anni e anni di vita che possono suggerirgli tattiche che non sono esplicite nel gioco. Quanti di voi cercano di sfruttare bug dei motori grafici per bypassare un gioco? Vi è mai capitato di mettere a dura prova il gameplay di un videogame per capire quante possibilità hanno previsto gli sviluppatori rispetto alla storia principale? Sono questi gli escamotage che un essere umano può sfruttare a suo vantaggio, ovvero la curiosità e la fantasia, nonché la capacità di generare situazioni imprevedibili. Da questo punto di vista il Bot di OpenAI è carente.

C'è un però abbastanza ovvio: per il Bot non è complicato correggere il proprio modo di agire per evitare di essere fregato con tattiche che l'hanno messo in difficoltà. Il banco di prova dello stato della IA di OpenAI sarà quello del prossimo torneo internazionale di Dota 2, quando porterà una squadra di 5 bot all'evento per scontrarsi con un team di 5 giocatori umani. Lì si capirà qual è la capacità di questi algoritmi di scegliere una strategia basata su ruoli specifici ed eroi scelti, nonché l'abilità di variare il proprio schema d'attacco in base alle reazioni del nemico. Sarà importante prevedere le mosse e le tattiche del team di umani e spostare istantaneamente gli eroi su tutta la mappa quando necessario. L'uso dei più di 100 oggetti è determinante in una partita tra professionisti: comprare la Blink Dagger permette ad un eroe di teletrasportarsi istantaneamente in un raggio d'azione corto ma sufficiente a cogliere di sorpresa uno o più evversari e ucciderli istantaneamente con la giusta coordinazione dei compagni. Nel video potere capire di cosa stiamo parlando: Earthshaker, che ha acquistato la Blink Dagger, si è istantaneamente teletrasportato vicino agli eroi nemici ed ha eseguito con successo l'Echo Slam, abilità che li colpisce ad area. Il risultato è quello che è stato definito l'Echo Slam da 6.000.000$ della finale del 2015.

Usare correttamente un oggetto del genere può condurre il team a vittoria in alcune situazioni e l'IA dovrà prevedere o rispondere a determinati oggetti che il team nemico ha comprato. Avete capito che la sfida di OpenAI è creare una squadra convincente che deve riuscire a pensare come degli umani, un'impresa davvero ambiziosa che non vediamo l'ora di guardare con i nostri occhi. Ricordate sempre che i videogames sono solo un banco di prova per questa tecnologia e il loro successo può portare benefici immensi alla società, nonché problemi etici di cui abbiamo già parlato nel nostro speciale e che continueremo a riportare su everyeye. Se vi interessa l'argomento vi consigliamo i nostri speciali sull'IA di Facebook e sulla spiegazione del Machine Learning. Restate sintonizzati, seguite l'argomento AI e non dimenticate di esprimere il vostro parere verso la sfida che vuole affrontare OpenAI.