Indica un intervallo di date:
  • Dal Al
©credits

Come funziona AlphaGo, spiegato bene – Liveblogging from IJCAI16

Prima di diventare uno dei principali programmatori nel team di AlphaGo, David Silver si è laureato in informatica a Cambridge e ha fondato un’azienda di giochi per computer. Fortunatamente per la comunità scientifica ha poi deciso di tornare in università a fare un dottorato, per poi finire a Deep Mind come leader del gruppo – una ventina di persone – che a Marzo ha battuto il campione mondiale di go Lee Sedol.

Oggi presenta i loro risultati alla conferenza annuale in intelligenza artificiale (IJCAI16) che raggruppa a New York più di un migliaio di ricercatori da tutto il mondo. Il tema di questa edizione è “human-aware artificial intelligence”, un promemoria per evitare di sviluppare macchine che poi si dimentichino dei propri creatori.

Go, le cui regole sono principalmente fondate sulla cattura di pezzi dell’avversario e la conquista di territorio sulla scacchiera, è un gioco tremendamente complicato sia per i computer che per gli umani. Perché? Innanzitutto il numero di possibili configurazioni sulla scacchiera di go, è nell’ordine di 10 alla 170 (per fare un confronto, il numero di atomi nell’universo osservabile è stimato a 10 alla 80). Consideriamo inoltre l’albero di gioco, che serve a visualizzare in ogni posizione tutte le possibili mosse dell’avversario, poi le mie risposte, e così via fino alla fine di ogni ipotetica partita. Analizzarlo tutto è impraticabile: mentre a scacchi ad ogni nodo si aprono 35 possibili rami per altrettante possibili mosse, a go se ne aprono più di 200. L’uso di euristiche – valutazioni che permettono di analizzare quali sono i rami più “promettenti” – sembrava essere proibitivo, visto che nemmeno gli esperti umani sanno valutare bene in una certa posizione quale dei due giocatori avrà più probabilità di vincere.

Bisogna dunque sviluppare tecniche per ridurre la dimensione dell’albero di gioco da analizzare ad ogni mossa. Qui entrano in azione due strumenti sviluppati da AlphaGo: una funzione che permetta di riassumere in un unico indice la probabilità di vincere in una certa posizione (value network), e una funzione trovi la probabilità di giocare ogni singola mossa in una data configurazione (policy network). In questo modo posso usare la policy network per esplorare soltanto i rami di gioco più probabili, e la value network per evitare di dover arrivare fino in fondo al gioco per sapere chi vince.

Queste due funzioni non possono essere programmate direttamente: come abbiamo visto neanche i giocatori più esperti sanno valutare la bontà di una data configurazione. Ad AlphaGo hanno usato due reti neurali, ossia funzioni inizialmente “vuote” che però sono in grado di imparare i valori corretti a partire da partite passate o giocandone di nuove.

E’ molto interessante capire il funziona del procedimento di apprendimento che ha portato a creare questi due strumenti. Un po’ come Yoda e Skywalker, l’apprendimento incomincia su dei dati reali e AlphaGo impara dai maestri del passato. Il software passa 4 settimane con 50 GPU sul Google Cloud imparando da un numero spropositato di partite passate quali sono le probabilità di giocare certe mosse e in quali configurazioni (la policy network). Nessun maestro cinese avrebbe saputo insegnare più in fretta! A questo punto Skywalker-AlphaGo gioca partite da solo, affinando la policy network e imparando da sé stesso quali sono le mosse più probabili per ottenere la vittoria (un procedimento di apprendimento senza supervisione noto come reinforcement learning). Dopo una settimana AlphaGo sa giocare al livello di 3 dan (meglio della maggior parte dei giocatori occidentali). L’ultima tappa vede il giovane apprendista battersi di nuovo contro se stesso per altre 30 milioni di partite per costruire la funzione di valutazione. A questo punto, dopo aver giocato molte più partite di quante un umano possa fare nella sua esistenza, AlphaGo è pronto a scendere in campo e giocare la sua partita!

Come si è comportato contro Lee Sedol? David racconta aneddoti interessanti mentre con i suoi collaboratori osservava sullo schermo i ragionamenti interni ad AlphaGo durante le cinque partite contro il campione del mondo. In particolare, un grafico mostra la funzione di valutazione di AlphaGo, ossia la sua personale valutazione di come la partita stia andando, se verso una sua vittoria o sconfitta.

Durante la prima partita, vinta da AlphaGo, Lee Sedol identifica in una particolare mossa, la numero 102, il momento in cui incomincia a perdere. Il grafico di AlphaGo mostra invece come la macchina avesse predetto da tempo la propria vittoria, e la mossa 102 non fosse altro che una pedina nella sua strategia. Nella seconda partita AlphaGo usa una mossa che tutti i proverbi e manuali di go sconsigliano di fare. Una mossa valutata dallo stesso software con una probabilità di uno su 10.000. AlphaGo la gioca, vince, e viene definito decisamente creativo. Nella quarta manche è Lee Sedol a giocare una mossa valutata con una probabilità su 10.000. AlphaGo non se l’aspetta, e perde molto rapidamente il suo proverbiale ottimismo, e insieme ad esso la partita. Nella partita finale sembra che AlphaGo non stesse capendo una mossa che tutti i giocatori umani conoscono bene. In realtà stava soltanto rispondendo in modo molto originale, ed era già abbastanza certo di superare l’attacco e vincere la partita. Una sicurezza non condivisa da chi dietro il monitor si domandava ancora se non ci fosse qualche baco nell’addestratissimo codice di AlphaGo!

In fondo AlphaGo si tratta solo di un software, un unico potentissimo algoritmo che sa fare una sola cosa – anche se la sa fare molto bene. Resta il fatto che i suoi creatori hanno fatto fare passi da gigante alle tecniche di apprendimento automatico e all’intelligenza artificiale in generale. Quali altre sfide aspettano il team di Deep Mind nei prossimi anni? I giochi restano un campo ideale su cui testare i loro algoritmi (ricordate gli avanzamenti sugli Atari games l’anno scorso), ma come già annunciato in precedenza è nel campo della sanità che si trovano le sfide maggiori, soprattutto nella diagnosi automatica e nella creazione di assistenti medici personalizzati.

[Approfondimenti: Google Deep Mind pubblica i suoi risultati su riviste scientifiche, nel caso di AlphaGo tutti i dettagli sono su Nature. Un bel riassunto in italiano si può trovare qui.]