Il gioco del Go e l’inizio di una nuova era per l’Intelligenza Artificiale

Il Go è un gioco millenario, molto diffuso in Cina, dove veniva considerato una forma d’arte insieme alla pittura, alla musica e alla calligrafia. E’ molto popolare anche in Giappone e Corea, e ad oggi viene praticato da più di 40 milioni di persone in tutto il mondo.

Si gioca con una tavola su cui è tracciata una scacchiera con 19×19 caselle tutte uguali. Le regole sono poche e molto semplici, ma lo sviluppo del gioco è così complesso che le possibili configurazioni di pietre nel corso di una partita sono circa 10170, superando di molto il numero stimato di atomi nell’universo, 1080. Questo lo rende notevolmente più complesso degli scacchi, di cui parleremo in un altro articolo.

Per chi non conoscesse il gioco, il Go prevede due giocatori che si alternano nel collocare pietre (nere per un giocatore, bianche per l’altro) una alla volta sulle intersezioni della scacchiera, cercando di formare territori che racchiudono pietre avversarie al fine di eliminarle dal gioco. Alla fine, quando i giocatori non desiderano collocare ulteriori pietre, la partita finisce e avviene il conteggio delle pietre rimaste sulla scacchiera per stabilire il vincitore.

Vista la complessità del gioco, il suo fascino, dal punto di vista dell’intelligenza artificiale, è costituito dal fatto che un approccio che utilizzi la “forza bruta”, cioè che tenti di calcolare tutte le varianti possibili a partire da una certa mossa, è destinato a fallire, e questo è quanto puntualmente accaduto con i primi programmi che giocavano come dei principianti. I giocatori umani di Go che abbiano un po’ di esperienza utilizzano invece l’intuito nella scelta di una determinata mossa e non sono pienamente coscienti dei processi mentali che li hanno portati a tale scelta. E’ stato in realtà dimostrato che in questo caso “l’intuito” ha a che vedere con il riconoscimento di schemi visivi che si ripetono e dopo un po’ risultano familiari.

Quello che gli scienziati che lavorano alla DeepMind, una azienda britannica di ricerca sulle neuroscienze fondata nel 2010 e successivamente rilevata da Google nel 2014, hanno pensato, è di affrontare il problema di creare un programma in grado di giocare a Go utilizzando due reti neurali artificiali che collaborano tra di loro.

Possiamo semplicisticamente definire una rete neurale artificiale come una rappresentazione software estremamente semplificata di un insieme di neuroni del nostro cervello. In pratica una rete neurale è in grado di modificare la sua configurazione a seconda degli stimoli ricevuti dall’esterno, innescando in questo modo un processo di apprendimento.

Delle due reti neurali summenzionate, la prima è stata utilizzata per studiare centomila partite giocate da forti giocatori umani, cercando di individuare degli schemi, o pattern, di risposta a determinate configurazioni di pietre, o più precisamente le distribuzioni di probabilità delle varie mosse in una determinata posizione. La seconda rete neurale è stata utilizzata per assegnare dei numeri alle diverse mosse possibili in una certa posizione, permettendone una valutazione.

Utilizzando queste due reti neurali la DeepMind ha realizzato il programma AlphaGo, facendogli giocare trenta milioni di partite contro versioni precedenti di se stesso e sfruttando così un processo di autoapprendimento che lo ha portato a battere 4-1 il pluricampione del mondo, il coreano Lee Sedol, nel marzo 2016.

E non è finita qui: ad ottobre 2017 è stata presentata la più recente versione del programma, chiamata AlphaGo Zero, che senza neanche studiare le partite dei giocatori umani e iniziando a giocare in maniera completamente casuale ha sconfitto AlphaGo 100-0 solo giocando contro precedenti versioni di se stesso…

Perché nel titolo ho parlato di nuova era per l’intelligenza artificiale?

Il primo aspetto importante del lavoro degli scienziati alla DeepMind è l’implementazione di un efficace meccanismo di autoapprendimento, cioè il programma riesce a migliorarsi in maniera misurabile imparando dai propri errori, non dipendendo più da regole fisse codificate dai suoi programmatori.

Il secondo aspetto è la generalità dell’approccio, cioè lo stesso programma, se fornito di regole diverse come input, può risolvere problemi completamente differenti usando lo stesso meccanismo di autoapprendimento. Questo e’ fondamentalmente differente da quanto visto fino ad ora in questo ambito, dove ogni soluzione era fortemente dipendente dal problema che doveva tentare di risolvere.

I due aspetti descritti sono fondamentali per sviluppare applicazioni in ambiti completamente diversi, come il risparmio energetico, la sintesi vocale, e la medicina. Applicando di fatto  lo stesso approccio, ma con regole diverse, i centri di elaborazione dati di Google hanno risparmiato il 15% dell’energia elettrica che avrebbero consumato altrimenti, e WaveNet ha fatto compiere un balzo di qualità all’assistente vocale di Google.

Per quanto riguarda la medicina, la DeepMind sta partecipando a vari progetti, alcuni dei quali si focalizzano sull’interpretazione di immagini per aiutare la diagnosi di tumori al collo, al cervello, e al seno, e aiutano a prevedere la degenerazione maculare della retina.

Altri progetti aiuteranno a capire come le proteine si ripiegano su se stesse, requisito fondamentale per poter creare dei farmaci che contrastino l’accumulo di proteine “mal ripiegate”, come avviene in malattie neurodegenerative quali l’Alzheimer (proteina tau) e il Parkinson (alfa-sinucleina).

Infine, e questo avremmo dovuto prevederlo, la DeepMind  sta cercando di ricreare una versione software dell’ippocampo, quella parte del nostro cervello che ha a che fare con la memoria a breve termine e l’orientazione nello spazio.

Ce n’è abbastanza per giustificare il titolo dell’articolo, direi!