Site icon Uno Scacchista

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 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.

Il n.1 del Go mondiale, Ke Jie, durante la sfida con AlphaGo

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” (ovvero sul calcolo esaustivo di tutte le possibili sequenze) 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 di un concetto già applicato in altri campi da decenni, 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).

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, che in passato era stato già tentato con scarsi risultati probabilmente a causa delle minori capacità computazionali, ha avuto successo, come abbiamo visto.

E, altra cosa interessantissima, la rete è stata progettata per non avere 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à. Insomma la rete “esplora” le possibili alternative con un certo margine di casualità, garantendo una copertura vasta dell’universo delle varianti.

Dopo aver vinto con AlphaGo, i ricercatori di DeepMind avevano annunciato che non si sarebbero fermati e 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.



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.

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.

Possiamo guardare questo risultato (e quelli, analoghi, per lo Shogi e il Go) con sbalordimento, ma il 5 Dicembre ci è stato ufficialmente detto e dimostrato dai ricercatori della DeepMind che:

Se ne avete tempo e voglia potete leggere l’articolo (in inglese) per maggiori dettagli, ma l’impressione che ho avuto leggendo la pubblicazione è la stessa che provai quando lessi per la prima volta dei lavori di Turing. Egli compì l’incredibile (all’epoca) passo di rendere una macchina programmabile, ovvero in grado di svolgere diversi compiti (anche giocare a scacchi) rimanendo se stessa, 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:

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. Diciamo che, dopo l’avvento dei programmi scacchistici, questa è una nuova svolta che può mettere fine agli scacchi “per come li conosciamo oggi”.

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 che ho 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è a partire da lì qualcosa di inarrestabile è iniziato e ha dimostrato clamorosamente le sue potenzialità.

 

Exit mobile version