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.

2017.05.23_24alphago-master768
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).

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


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 ufficialmente detto e dimostrato dai ricercatori 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
  • il sistema di auto-apprendimento e di valutazione dei risultati può essere molto rapido
  • 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)

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:

  • il metodo di apprendimento di AlphaZero non è mai stato sperimentato (immaginate un singolo uomo che debba studiare gli scacchi giocando unicamente contro se stesso), ma il risultato è spettacolare;
  • 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. 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à.

 

7 thoughts on “Si scrive “AlphaZero” e da oggi cambia tutto

Add yours

  1. In effetti questa notizia dello sviluppo di un nuovo programma per giocare a scacchi (e non solo!) è molto interessante e importante. Come riporta l’articolo, il nuovo software si basa su reti neurali in grado di autoapprendere in tempi molto brevi, raggiungendo livelli di gioco altissimi ed in continuo miglioramento.
    Sarà la “fine” degli scacchi? io personalmente non credo questo (almeno per molto tempo ancora);
    più interessanti e più “problematiche” ritengo le ricadute, soprattutto in termini di velocità di evoluzione, sugli studi e realizzazioni di intelligenza artificiale.
    Ma questo è un argomento molto più complesso e ricco di implicazioni, che possono “giustificare” allo stesso tempo previsioni ottimistiche o “catastrofiste”.
    Chi vivrà vedrà!!

  2. Ho analizzato una delle 10 partite tra AlphaZero e Stockfish pubblicate sull’articolo originale sfruttando il motore di analisi del sito lichess.org che è Stockfish 8+PNACL: stranamente alcune mosse di Stockfish erano indicate come errori dallo stesso Stockfish 8+PNACL. Forse mi sfugge qualcosa.

    1. Interessante osservazione, Donato. Io non uso programmi quindi non saprei dirti, ma nessuno dei vari commentatori esteri lo ha fatto notare. Magari puoi postare qui le mosse che sarebbero deboli?

  3. Proprio ieri sera su Rai 3 ho visto, praticamente per caso, “The Imitation Game” che racconta la storia agro dolce di Alan Turing, il grande matematico inglese che decodificò la macchina “Enigma”, inventando praticamente uno dei primi computer ed un modello matematico di algoritmo, tramite la sua macchina di Turing”. Fu una rivoluzione che oggi ha avuto un ulteriore compimento con questo programma scacchistico che auto apprende dalla sua esperienza. Mentre nel primo caso si rimane sgomenti per una grande dimostrazione d’intelligenza dell’uomo, nel secondo si rimane altrettanto sgomenti ma anche inquietati da questa evoluzione che l’intelligenza artificiale sta prendendo. Il riferimento ad Asimov non poteva non essere fatto, e forse bisognerebbe cominciare a pensare anche alle sue famose leggi sulla robotica, o a qualcosa di simile, perché la storia ci ha insegnato che l’essere più intelligente, ad oggi, sulla terra è quello che poi ne ha preso il controllo, ed è l’uomo. Ma qui si va rapidamente verso un’altra forma d’intelligenza potenzialmente più evoluta, alla quale manca solo la comprensione e la coscienza di se. È la cosa, sinceramente, fa un po’ paura.

  4. Le macchine sono macchine e tali restano,per quanto sofisticate. Se stacchi la spina si fermano. E i creatori siamo noi.E’ anche vero che la stupidità umana non ha limiti, e solo di noi stessi c’è da aver paura, non di pezzi di ferro e schede elettroniche. …..

    1. Grazie molte per la segnalazione. Pur non essendo un esperto in materia avevo notato della lacune (un po’ sospette) nell’articolo. Diciamo che in altri contesti a me non avrebbero approvato una comunicazione scientifica così organizzata. L’effetto è in realtà quelli di suscitare dubbi che non dovrebbero venire nei confronti di un lavoro che ha sicuramente un’alta rilevanza.
      Allo stato di quello che viene riportato nel paper, oggettivamente bisognerebbe astenersi da conclusioni affrettate e chiedere, coma fa molto bene l’autore dell’articolo che citi, chiarimenti e trasparenza nel metodo.

Rispondi

Powered by WordPress.com.

Up ↑

%d blogger hanno fatto clic su Mi Piace per questo: