Scacchierando.it
alphazero

Si scrive AlphaZero e da oggi cambia tutto

un programma non specializzato per giocare a scacchi batte Stockfish dopo solo quattro ore di autoapprendimento

Il blog Uno Scacchista ha pubblicato un articolo sulla netta vittoria di AlphaZero su Stockfish, notizia che ha sbalordito gran parte degli osservatori di cose scacchistiche. Ritenendo l’articolo molto interessante, la Redazione ha deciso di pubblicarlo integralmente anche su Scacchierando e ringrazia Uberto Delprato (autore del Blog) per l’autorizzazione concessa.


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

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.

Neural networks

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.

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.

stockfisf640px-deepmind_logo

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

l’articolo sul blog UnoScacchista

51 Commenti a “Si scrive AlphaZero e da oggi cambia tutto”

  1. Oscar
    12 dicembre 2017 - 12:52

    Per chi vuole approfondire consiglio questo articolo su Chess.com, con particolari sul match e reazioni dei top players
    https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author

    Penso che se ci saranno cambiamenti (anche in campi non scacchistici), questi avverrano quando questa tecnologia diventerà accessibile, come è gia accaduto in passato: quando Deep Blue battè Kasparov la notizia fece il giro del mondo, ma ciò influì sugli scacchi giocati e seguiti solo dopo che ci fu la possibilità di avere i software da 3000 ELO sul proprio home computer.

  2. immortale
    12 dicembre 2017 - 15:22

    Ho letto molti articoli in proposito questi giorni. Alcune considerazioni.

    1. Come è stato fatto notare da più parti, il risultato è così clamoroso perché Stockfish è stato malignamente limitato: troppo poca ram e soprattutto tempo di riflessione fisso a un minuto a mossa (che evidentemente privilegia chi cerca meno linee per secondo ma qualitativamente migliori). È chiaro che hanno fatto prove anche con altre cadenze, e questa era quella che favoriva maggiormente il loro sistema.
    A prova della loro malafede, il fatto che alcune mosse decisive Stockfish presente sui nostri pc le veda, mentre non le abbia giocate in partita.

    2. Detto questo, è impressionante che in sole 4 ore una rete neurale riesca ad arrivare al livello di Stockfish. Meno impressionante se si vede il numero di partite giocate in quelle ore: 700.000!

    3. Ciò che estremamente interessante (ed entusiasmante!) è il modo di giocare di AlphaZero. Un modo che ha sviluppato tutto da solo, senza alcuna influenza (e teoria) umana. E si vede!
    Bellissimo, come è stato fatto notare, che abbia riscoperto le aperture (andate a vedere gli interessantissimi grafici sull’utilizzo delle varie aperture man mano che la forza del motore aumenta; ricerche di questo tipo influenzeranno clamorosamente la teoria delle aperture nei prossimi anni).
    Ma ancora più meraviglioso è che AlphaZero non dà *alcuna importanza* al materiale. L’unica cosa che conta è l’attività dei pezzi. Se ci pensate è logico: un pezzo inattivo, chiuso dai propri compagni, è come se non esistesse! In diversi esempi Stockfish si trova con una superiorità materiale impressionante, ma in una posizione completamente persa. Non credo che questo tipo di gioco possa essere copiato in toto dagli esseri umani: perché necessita un gioco preciso al millimetro, anche una piccola imprecisione può portarti alla disfatta. Per questo, tutto ciò che riguarda la quantità e il valore dei pezzi sarà ancora (sempre?) molto importante nelle partite tra umani; essere in vantaggio materiale ti consente di fare mosse subottimali, senza troppo stress per la ricerca della mossa perfetta.
    State sicuri però che le prossime versioni dei migliori software scacchistici saranno calibrate per dare molta più importanza all’attività dei pezzi, a discapito della loro quantità e del loro valore. E dunque AlphaZero impatterà profondamente anche sul loro mondo.

    Io ho trovato emozionante il modo in cui AlphaZero utilizzi a volte i propri pezzi esclusivamente per bloccare o rendere inutili i pezzi avversari. Non è importante se sia un alfiere, una torre o una regina: piazza il suo pezzo lì, come se fosse un pedone qualsiasi, e la posizione avversaria diventa irrimediabilmente passiva.

    È un qualcosa che assomiglia terribilmente all’umano =).

  3. Franco77
    13 dicembre 2017 - 01:02

    Per quello che credo di aver capito…

    AlphaZero apprende da sé, cioè senza alcun input umano che non siano le semplici regole del gioco: come a dire che non ha i “pregiudizi” forniti dall’uomo, ossia quei principi astratti – falange pedonale, avamposto, case deboli/forti ecc.
    Astraendo da questi “pregiudizi” interessante era (ed è) vedere se la macchina svolge o meno una sorta di “rivoluzione copernicana” scacchistica, ossia se rinnova il gioco per come lo intendiamo nei sui principi cardine. Per ora, invece, pare che – e ciò testimonia piuttosto il valore dell’evoluzione umana – CONFERMI la validità del nostro attuale modo di intendere gli scacchi; non è un caso che, in fase di apprendimento, in apertura, abbia seguito la filogensi umana: inizialmente e4-e5, con magari il gambetto di re; per arrivare alle partite di donna e al gambetto di donna. Dunque, al momento, non c’è stata nessuna rivoluzione copernicana.
    Resta da capire come se e come la macchina, per come opera, possa cambiare il modo di APPROCCIARE il gioco da parte dell’essere umano. Ora, sappiamo che AlphaZero sceglie le mosse non sulla base di principi astratti (i pregiudizi di cui parlavo pocanzi) ma, se non ho capito male, sulla base di una sorta di calcolo delle probabilità (di vittoria) che ciascuna posizione ottenibile gli fornisce; questo valore lo ottiene giocando una quantità immensa di partite, e dunque di posizioni, e tenendo in memoria tutto questo! In altre parole AlphaZero non solo prescinde da certi principi generali forniti dall’uomo, ma neppure li formula! Dunque, la domanda da porsi è: si tratta di un modo di operare imitabile per un essere umano? La risposta è chiaramente “no”, perché la memoria umana non potrà mai raggiungere quella di un’AI; ed è per questo che l’uomo necessita di princi astratti! Principi che poi andrà ad applicare, di volta in volta, in base alla propria intelligenza.
    In altre parole pensare di poter “funzionare” come AlphaZero – e quindi di poterlo utilizzare proficuamente in modo diverso da come si fa con una qualunque engine – è come pensare di poter giocare a scacchi, raggiungendo livelli molto alti, prescindendo dai manuali (che forniscono le regole astratte e generali) e mandando semplicemente a memoria tutte le possibili partite e posizioni esperite durante il gioco.
    L’uomo avrà sempre bisogno di regole astratte, ma AlphaZero non opera in questo modo, non “ragiona”, cioè PRESCINDE DALLE REGOLE ASTRATTE, usa memoria e memoria della percentuale di vittoria.

  4. Edo
    13 dicembre 2017 - 10:53

    Scusate se mi permetto di intervenire dal basso della mia ignoranza informatica, ma la mia modesta sensazione è che alcune questioni assai dibattute siano di fatto *irrilevanti*.
    Si discute di un nuovo software che gioca bene a scacchi e ci si domanda quanto bene giochi davvero, cose che mi sembrano di importanza modestissima.
    Non capisco che importanza possa avere se AlphaZero è un 3400 o un 3700 di Elo.
    In ogni caso migliora allenandosi, per cui se fosse un 3400 potrebbe arrivare facilmente a 3700 lasciandolo in allenamento ancora qualche ora o al limite qualche giorno.
    Mi sembrano discorsi inutili, quelli sulla reale forza di AlphaZero.

    Si dibatte se Stockfish sia stato discriminato e si invocano match più equi.
    A che pro, mi domando?
    Forse non si è compreso che qui non si sta parlando di competizioni sportive, ma di tutt’altro.

    Certo che il match costituiva un lancio pubblicitario per Google e certo che Stockfish non è stato messo nelle condizioni per lui ottimali. Nel qual caso – secondo i suoi mentori – quest’ultimo non avrebbe comunque vinto il match, ma avrebbe potuto ottenere molte più patte.
    A Google però serviva un risultato ampio da urlare sui giornali e così Stockfish è stato depotenziato in qualche misura.
    Marketing? Sì.
    Marketing pure un po’ disonest … vabbè, diciamo “ingannevole”? Sì.
    Bene, ma ora che ce lo siamo detti mi domando che importanza abbia, su una scala più ampia.

    Facciamo così: facciamo che Stockfish, se fatto competere al massimo delle sue possibilità, avrebbe pattato tutte e 100 le partite del match (temo proprio di no, ma come detto la cosa è irrilevante).
    Anche così, anche in caso di match pareggiato, avremmo che un software *non* progettato per giocare a scacchi ha ottenuto un risultato mostruoso con poche ore di lavoro in proprio (contro decenni di conoscenze specifiche acquisite dall’altra parte della barricata) e con un metodo che – bello o brutto che sia – è completamente diverso da quelli sino ad oggi utilizzati.
    E’ una rivoluzione, a prescindere dalla effettiva forza scacchistica manifestata da AlphaZero il giorno 5 dicembre 2017 (forza scacchistica che – ripeto ancora – è *irrilevante*).

    AlphaZero non serve a giocare a scacchi e può benissimo darsi che non ci giocherà mai più.
    Google se ne strafrega degli scacchi, ok?
    E ancor di più se ne strafrega di Komodo & C.

    Il punto sono le applicazioni che può avere in tutti i campi. In realtà l’idea non è neppure nuova: già da anni ci sono software che – sfruttando le loro capacità di pattern recognition, alla base pure del successo di AlphaZero – individuano alcuni tipi di tumore con più precisione dei medici umani.
    Non conosco la differenza tra questo e quelli, ma immagino che questo possa essere un ulteriore passo avanti in quella direzione (e in mille altre).

    Il match di scacchi è solo una vetrina pubblicitaria e come tale va trattato: stiamo discutendo di una pubblicità natalizia della Coca-Cola con i Babbi Natale, né più né meno.

    Ciò detto, c’è poco da dubitare della forza – quanto meno potenziale – dello strumento AlphaZero.
    E c’è poco da dubitare che il nuovo approccio, basato più sulla pattern recognition che sul calcolo, costituisca una rivoluzione nel mondo dell’informatica scacchistica.
    Diciamo che AlphaZero non era poi così tanto forte in quel momento e che ha vinto “barando”?
    Ma se (per assurdo) a Google interessassero gli scacchi e lasciasse AlphaZero ad allanarsi per un mesetto invece che per quattro ore, glielo concediamo che arriverebbe a livelli di gioco piuttosto inquietanti e che Stockfish non costituirebbe un grande ostacolo?
    Il punto però è che non è quello il punto.

  5. Maelstrom
    13 dicembre 2017 - 20:53

    Editate il commento con gli 0 per favore che rende la pagina illeggibile in mobile. Detto questo
    https://www.technologyreview.com/s/609736/alpha-zeros-alien-chess-shows-the-power-and-the-peculiarity-of-ai/

Lascia un commento

Devi essere loggato per lasciare un commento. Clicca per Registrati.