Si scrive “AlphaZero” e da oggi cambia tutto

(UnoScacchista)
Il 5 Dicembre 2017 sarà un giorno da ricordare. Se non entrerà nella storia è solo perchè altre date più simboliche seguiranno presto, ma per gli scacchi oggi cambia tutto. Non perchè un computer abbia superato in forza scacchistica i giocatori umani, quello è successo da tempo, ma perchè un programma non specializzato per giocare a scacchi ha battuto uno dei programmi scacchistici più forti dopo solo quattro ore di autoapprendimento.


Sbalorditi? Cominciamo da fatti e antefatti.

E’ notizia recente (Maggio di quest’anno) che Ke Jie, il numero 1 della classifica mondiale dei giocatori professionisti di Go, è stato battuto, per la prima volta nella storia, in un match contro un programma. Il fatto ha destato molto scalpore perchè il Go è considerato il gioco strategicamente più complesso e difficile da giocare per i programmi. Eppure AlphaGo, un programma sviluppato dalla società DeepMind di Londra (una società di Google), lo ha fatto in maniera convincente.

2017.05.23_24alphago-master768

Nella risonanza della notizia, solo in pochi hanno compreso cosa c’era veramente dietro al risultato: AlphaGo, al contrario della totalità dei programmi prima di lui, non ha utilizzato un metodo di analisi basato sulla cosiddetta “forza bruta” nè su un algoritmo di ricerca “alpha-beta” calibrato con parametri di valutazione suggerito da giocatori umani. Tanto per capirci, il primo metodo è stato il primo ad essere abbandonato anche nel caso degli scacchi, perchè di applicabilità pratica nulla: se funzionasse, il gioco in esame sarebbe risolto completamente, come nel caso del semplice gioco “Tris”. E’ però usato (anche se in analisi retrograda) per la costruzione delle cosiddette “Tablebase”, ovvero dei database che risolvono completamente i finali di scacchi fino un massimo di 7 pezzi sulla scacchiera.

Tutti gli attuali programmi di scacchi usano invece un metodo basato sulla valutazione delle posizioni sulla base di algoritmi, sempre più sofisticati, che vengono personalizzati dai programmatori in funzione sia della loro abilità (ci sono sempre Grandi Maestri nei team di sviluppo) sia della “personalità” che si vuol dare al programma. La capacità di un programma si misura anche nella capacità di cambiare “mappatura” dei parametri di decisione “Alpha-Beta” a seconda della fase di gioco e della dinamicità della posizione.

Bene tutto questo non stava funzionando per il Go e i ricercatori di DeepMind hanno pensato di applicare un metodo completamente diverso: realizzare e istruire una rete neurale che sapesse giocare a Go. Senza entrare nel dettaglio, significa creare un numero molto alto di semplici nodi (neuroni) collegati in una fitta rete, che prendono singolarmente una decisione binaria (si/no, ovvero vero/falso) basandosi solamente sui valori dei suoi nodi predecessori e di alcuni “pesi” che vengono definiti autonomamente dalla rete stessa durante la fase di apprendimento (mi scuseranno gli esperti per questa voluta semplificazione). Il risultati di tutti i livelli di elaborazione è una decisione finale della rete (ovvero, nel nostro caso, la mossa da eseguire sulla scacchiera).

Neural networks

Il tutto ricorda la struttura del nostro cervello (molti neuroni collegati in rete), che riesce ad apprendere, ovvero a prendere decisioni basate sull’esperienza, una volta che sia riuscito a raccogliere sufficienti informazioni sulle conseguenze di una decisione. Questo hanno immaginato di fare i programmatori di AlphaGo: creare una rete neurale che, opportunamente istruita e in grado di affinarsi con l’aumentare delle partite analizzate, sarebbe stata in grado di scegliere una mossa non sulla base di un calcolo, ma sulla base della esperienza pratica. E il metodo ha avuto successo, come abbiamo visto.

E, altra cosa interessantissima, la rete non ha bisogno di analizzare un numero elevato di decisioni possibili, ma, nel caso di AlphaGo, lo ha fatto utlizzando un algoritmo chiamato “MonteCarlo”, che (come il nome suggerisce) è completamente casuale ma corretto da un “pizzico” di calcolo delle probabilità.

Dopo aver vinto con AlphaGo, i ricercatori di DeepMind avevano annunciato che non si sarebbero fermati a avrebbero cercato di espandere le capacità del programma, affrontando anche altri giochi.


Ed eccoci arrivati a quello che è stato comunicato nel documento pubblicato il 5 Dicembre: Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm.


Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm


L’evoluzione di AlphaGo, chiamata AlphaZero, è stata progettata e realizzata per poter giocare a Scacchi, Shogi e Go a partire da zero (“tabula rasa“), ovvero conoscendo solamente le regole dei giochi.

Ebbene, nel caso degli scacchi, AlphaZero ha imparato giocando 700.000 partite contro se stesso. Tutto qua. Durante l’apprendimento, il programma è stato fatto giocare contro Stockfish in modo da valutarne la forza relativa.

AlphaZero - apprendimento Scacchi

Dopo solo 4 ore di apprendimento (avete letto bene – quattro ore), AlphaZero aveva raggiunto la forza di Stockfish (attorno ai 3300 Elo), per poi superarlo. In un match su 100 partite, non c’è stata storia: AlphaZero ha vinto 28 a 0, con 72 patte.

AlphaZero - Match con Stockfish

Possiamo guardare questo risultato (e quelli, analoghi, per lo Shogi e il Go) con sbalordimento, ma il 5 Dicembre ci è stato detto che sono successe nei laboratori della DeepMind:

  • che è possibile realizzare un programma per computer in grado di imparare a prendere sequenze di decisioni che si sono dimostrate superiori a quelle degli uomini e di altri programmi nel caso di tre giochi di strategia ritenuti rappresentativi di una classe complessa di problemi
  • che il sistema di auto-apprendimento e di valutazione dei risultati può essere molto rapido
  • che l’applicazione del metodo MonteCarlo alle reti neurali ha come risultato un algoritmo decisionale molto efficace (come provato dal fatto che AlphaZero analizza 80.000 posizioni al secondo nel caso degli scacchi, mentre Stockfish ne analizza 70 milioni al secondo)

L’impressione che ho avuto leggendo l’articolo è la stessa che ho provato quando lessi per la prima volta dei lavori di Turing, che compì l’incredibile (all’epoca) passo di rendere una macchina programmabile, ovvero in grado di sovlgere diversi compiti (anche giocare a scacchi) rimanendo se stessa ma eseguendo istruzioni diverse definite dal suo programmatore. Qui stiamo parlando di una macchina (di tipo informatico) che è in grado di imparare da sola come svolgere benissimo un certo task del quale a priori conosce solamente le regole generali; una macchina che è in grado di apprendere senza neanche bisogno di avere un insegnante, ma solamente dall’esperienza pratica. Non è che questo viene scoperto oggi: è che oggi lo vedo per la prima volta applicato agli scacchi, un gioco che mai avrei potuto immaginare si potesse apprendere e giocare a livelli altissimi, senza un lungo percorso di istruzione.

Ma anche guardando il risultato puramente scacchistico, dobbiamo notare, sbigottiti, che:

  • un programma che ha analizzato il gioco “da zero”, quindi senza preconcetti o i risultati di analisi precedenti, ha “riscoperto” la teoria delle aperture arrivando a conclusioni molto simili a quelle a cui noi umani siamo arrivati dopo secoli di studio;
  • la qualità del gioco di AlphaZero è davvero eccellente: nell’articolo pubblicato sono incluse 10 partite del match con Stockfish e c’è da rimanere a bocca aperta di fronte alla fantasia tattica e alla profondità strategica del programma.
  • l’approccio alla partita è stranamente molto “umano”, con molta fantasia nell’identificare le continuazioni più tattiche

Le reazioni della comunità scacchistica sono quasi tutte improntate alla dichiarazione di “fine” degli scacchi. Personalmente non lo condivido: è ormai da tempo che i computer sono più forti degli uomini e sicuramente AlphaZero sarà in grado di esplorare nuove possibilità del gioco. E’ però vero che quando questo programma o uno simile sarà messo a disposizione dei Grandi Maestri, sempre più ci sarà il rischio di vedere i giocatori ridotti a esecutori di sequenze mandate a memoria.

Insomma l’intelligenza potrebbe diventare quella del computer e la pura esecuzione delle mosse essere affidata a umani debitamente istruiti: un ribaltamento completo dei ruoli. Che per fortuna non toccherà il 99.99% degli appassionati di scacchi che continueranno a divertirsi così come ci divertiamo a organizzare gare di atletica che i robot vincerebbero sicuramente.

Rimane per me, in realtà, quel vago timore da sempre paventato: che le macchine comincino ad imparare come si fa ad imparare. Una volta fatto questo, come le potremo limitare o controllare? Anche volendole considerare come alleate nelle sfide di tutti i giorni, come evitare che, a forza di imparare, non comincino a considerarci per quello che, ai loro occhi, inevitabilmente sembreremo: esseri a loro inferiori.

Asimov ha scritto bellissimi racconti giocando su questi temi: io spero di avervi dato informazioni e spunti di riflessione. Ripeto l’invito dell’inizio di questo post: segnatevi il 5 Dicembre 2017 sul calendario, perchè qualcosa di inarrestabile oggi ha dimostrato le sue potenzialità.

 

I Commenti sono chiusi