Nome: AlphaGo

Data di Nascita: 2014

Produttore: DeepMind

Vittorie: ottobre 2015, marzo 2016
Sfidanti: Fan Hui, Lee Sedol

 

Stando alle leggende, nel VI secolo a.C., in Cina, nacque il gioco che oggi noi chiamiamo go, simile al gioco degli scacchi. Sebbene quest’ultimo sia più giovane di almeno mille anni, negli ultimi anni il loro destino è stato lo stesso: hanno ceduto sotto i colpi dei computer. Negli scacchi un giocatore umano ha perso contro un computer già nel 1997 (ricordate? ne abbiamo parlato qui), ma nel 2016 ben due campioni di go sono stati sconfitti da un sistema chiamato AlphaGo.

Il go si gioca su una tavola quadrata solcata da 19 righe orizzontali parallele e altrettante verticali: gli incroci di queste linee rappresentano i territori. Ogni giocatore occupa un territorio posizionandovi sopra una pietra del suo colore, nero o bianco. Se uno o più territori dell’avversario vengono circondati completamente, li si conquista. Vince chi ha conquistato più territori.

Il go è un gioco complesso, le configurazioni possibili della scacchiera sono senza dubbio in numero finito, ma è possibile calcolarne il numero esatto? Probabilmente fin dalla sua origine i matematici si sono posti questa domanda senza trovare risposta, per quanto ne sappiamo, fino al 2016 quando John Tromp riuscì a risolvere il mistero. Il valore trovato da Tromp è di più di 2·10170. È difficile capire la vastità di questo numero, ma proviamoci: i secondi trascorsi dal Big Bang a oggi sono “solo” 4·1017; una stima per eccesso del numero di particelle nell’Universo visibile è intorno a 1080, ancora troppo piccolo; le configurazioni possibili negli scacchi sono approssimativamente 10120: ci avviciniamo, ma perdiamo di concretezza. Insomma, le configurazioni possibili sono tantissime e ciò rende il go incredibilmente complesso.

Come fa dunque AlphaGo a districarsi tra tutte queste combinazioni? DeepMind, la società che ha sviluppato AlphaGo, lo spiega in un articolo uscito su Nature.

Va ricordato che quella che è definita “Intelligenza Artificiale” altro non è che un computer che compie calcoli per valutare la situazione proposta. Per fare ciò, in tutti i giochi a informazione perfetta, cioè dove si conosce la situazione del gioco a ogni istante, viene usata una funzione che esprime con un numero quanto è favorevole per un giocatore la situazione del gioco presente. Scopo del computer è trovare una serie di mosse che ottimizzi tale funzione e che lo porti alla vittoria. Per fare ciò, si può costruire un diagramma, detto albero, con tutti i percorsi possibili, e scegliere il percorso che massimizza il nostro punteggio.

Ecco come il complicato gioco del go viene ridotto a dei “semplici” calcoli.

Per trovare la successione di mosse ottimizzata AlphaGo usa due sistemi: i Monte Carlo tree search e le reti neurali convoluzionali profonde. I Monte Carlo search tree sono dei metodi per costruire alberi di mosse senza considerarle tutte, ma partendo da un nodo, quindi dalla situazione attuale della tavola, si genera casualmente un nodo figlio (la mossa successiva), e si procede con esso fino alla fine della partita, quindi viene dato un valore al nodo originale in base all’esito finale. Si itera il processo in modo da considerare i nodi, e quindi le mosse, più promettenti, risparmiando tempo.

Le reti neurali convoluzionali, invece, sono usate per valutare la situazione del gioco e fare la nuova mossa, avendo già dato buoni risultati con il riconoscimento di immagini, viene dato come informazione d’ingresso proprio un’immagine della tavola al momento del gioco. Inoltre, sono usate per ridurre ulteriormente la profondità dell’albero di ricerca, in particolare una “policy network” ha il compito di scegliere le posizioni migliori, mentre la “value network” valuta la situazione.

L’allenamento di queste reti è consistito nello studiare più di 30 milioni di mosse di giocatori umani per poi giocare migliaia di partite contro se stesse, in modo da riconoscere le situazioni e compiere le mosse migliori, proprio come accade per un giocatore umano.

La prima vittoria rilevante arriva in concomitanza con l’uscita dell’articolo su Nature nell’ottobre 2015 quando AlphaGo batte Fan Hui, campione europeo.

Nella prima metà di marzo dell’anno seguente riuscì a battere uno dei giocatori più forti al mondo: Lee Sedol, in una sfida di cinque partite, quattro delle quali vinte da AlphaGo.

Gara 3 tra AlphaGo e Lee Sedol. Immagine di Buster Benson via Flickr.

Per qualche tempo, i ricercatori di DeepBlue si sono chiusi nei loro laboratori e la comunità del go ha potuto tranquillizzarsi e accantonare la vicenda. Ma alcune “stranezze digitali” sono rispuntate nelle ultime settimane del 2016 quando un account misterioso ha fatto strage di avversari su alcuni server dedicati al gioco del go online. In seguito Google ha ammesso che l’account, conosciuto prima come “Magist” e poi come “Master”, altro non era che una nuova versione di AlphaGo.
La versione successiva è stata chiamata AlphaGo Zero, e ha la peculiarità di essere stata istruita senza inserire mosse umane. Come detto sopra, l’AlphaGo originale e le sue versioni successive, erano state allenate facendogli studiare moltissime mosse umane. Nell’apprendimento di AlphaGo Zero, invece, questa parte è del tutto assente: una volta inserite le regole, la rete neurale si è allenata contro se stessa e contro le versioni precedenti, arrivando in pochi giorni a batterle decine di volte.

AlphaGo è risultato quindi il giocatore di go più forte al mondo. Un altro gioco in cui le macchine” ci hanno battuto. Va ricordato però che questi sistemi non sono delle intelligenze nel senso umano del termine, sono addestrati a svolgere in maniera egregia un solo compito e a risolvere un solo problema: ottimizzare una funzione. Svolgono questo compito in maniera veloce e magari arrivano a soluzioni a cui non avremmo pensato, ma la mente umana, a cui essi si ispirano, è tutt’altra cosa.

 


Immagine di copertina: Tatiana Murr by Shutterstock