AlphaZero

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

AlphaZero è un algoritmo di intelligenza artificiale basato su tecniche di apprendimento automatico sviluppato da Google DeepMind. È una generalizzazione di AlphaGo Zero, predecessore sviluppato specificamente per il gioco del go e a sua volta evoluzione di AlphaGo, primo software capace di raggiungere prestazioni sovrumane nel gioco del go. Analogamente ad AlphaGo Zero, impiega la ricerca ad albero Monte Carlo (MCTS) guidata da una rete neurale convoluzionale profonda addestrata per rinforzo.[1]

Il 5 dicembre 2017 il team DeepMind ha pubblicato su arXiv un preprint nel quale vengono presentati alcuni risultati ottenuti da AlphaZero in diversi giochi da tavolo classici, raggiungendo con poche ore di training un livello sovrumano nel gioco degli scacchi, shōgi e go, superando la forza di gioco di programmi campioni del mondo nelle rispettive discipline: Stockfish per gli scacchi e elmo/yaneura ou per lo shogi (entrambi motori basati su algoritmi tradizionali, ovvero ricerca ad albero con potatura alfa-beta), e AlphaGo Zero per il go. In particolare, un'istanza di AlphaZero ha vinto un match di 100 partite contro Stockfish, ottenendo 25 vittorie con il bianco, 3 con il nero, e patta nel resto delle partite. Gli autori stimano che AlphaZero abbia superato la forza di gioco di Stockfish dopo le prime quattro ore di addestramento (circa 300 000 mini-batch).[1][2][3] La versione definitiva dell'articolo è stata pubblicata su Science nel numero di dicembre 2018.[4]

Relazione con AlphaGo Zero[modifica | modifica wikitesto]

AlphaZero è una generalizzazione di AlphaGo Zero, algoritmo per il gioco del go evoluzione di AlphaGo. Può essere applicato a una varietà di giochi da tavolo, ed è stato testato dagli autori nel gioco dello shōgi, degli scacchi e del go. Le principali differenze di AlphaZero rispetto al suo predecessore sono:[1]

  • AlphaGo Zero usa tecniche di ottimizzazione bayesiana per il tuning dei parametri di ricerca in ogni singola partita, mentre AlphaZero usa parametri costanti nel corso di tutte le partite.
  • Nel training, le partite di AlphaGo Zero sono generate dalla migliore istanza (best player) ottenuta nel corso delle precedenti iterazioni, e dopo ogni iterazione la performance della nuova istanza è misurata contro il best player, sostituendolo se riesce a batterlo con un margine di almeno il 55%. AlphaZero usa invece una singola rete neurale che viene continuamente aggiornata, senza aspettare il termine di ogni iterazione.
  • Il go (a differenza degli scacchi e dello shogi) è simmetrico per determinate riflessioni e rotazioni; AlphaGo Zero sfrutta le simmetrie sia in fase di training (eseguendo data augmentation tramite otto possibili rotazioni e riflessioni per ciascuna posizione), sia in fase di valutazione (applicando una simmetria casuale all'input prima di sottoporlo alla rete neurale, per cancellare in media il bias dovuto alla rotazione o riflessione). AlphaZero non può invece trarre vantaggio di tali soluzioni tecniche.
  • Una partita a scacchi (a differenza del go) può finire in parità (patta); mentre AlphaGo stima ed ottimizza la probabilità di vittoria, AlphaZero stima ed ottimizza il risultato atteso della partita (espresso in forma numerica).

Risultati sperimentali[modifica | modifica wikitesto]

AlphaZero è stato sperimentato nel gioco degli scacchi, dello shogi e del go, usando tre distinte istanze addestrate separatamente per 700 000 mini-batch di 4096 record su un cluster di 5000 TPU di prima generazione per la creazione delle partite e 64 di seconda generazione per l'addestramento della rete neurale, usando 800 simulazioni per ogni MCTS e un learning rate iniziale pari a 0,2, progressivamente ridotto (dividendo per dieci) per tre volte nel corso del il training. Il tempo effettivo di addestramento è differente a seconda della dimensione della tavola da gioco, ed è stato pari a 9 ore per gli scacchi, 12 per lo shogi e 34 per il go. La valutazione è stata eseguita facendo girare AlphaZero su una singola macchina munita di 4 TPU e usando come avversari Stockfish 8 per gli scacchi e elmo WCSC27 con la funzione di ricerca yaneura ou 2017 Early KPPT 4.73 64AVX2 per lo shogi, in entrambi i casi con 64 thread di ricerca e 1 GB di hash, e per il go un'istanza di AlphaGo Zero addestrata per tre giorni ed eseguita sulla stessa configurazione hardware di AlphaZero. Le partite sono state giocate con un minuto per mossa senza pondering, libro di aperturatablebase. Le impostazioni di abbandono erano attive per tutti i software, pari a -900 cent per 10 mosse consecutive nel caso di Stockfish e elmo, e probabilità di vittoria inferiore al 5% per AlphaZero.[1]

AlphaZero ha disputato in tali condizioni un match di 100 partite contro ciascun avversario, generando i risultati nella tabella seguente. In fase di ricerca AlphaZero analizza una quantità di posizioni tre ordini di grandezza inferiore rispetto agli algoritmi tradizionali basati su ricerca ad albero con potatura, ovvero circa 80 000 posizioni al secondo negli scacchi e 40 000 nello shogi, mentre Stockfish analizza circa 70 milioni di posizioni al secondo e elmo 35 milioni.[1]

Gioco Bianco Risultato Nero
Scacchi AlphaZero 25 25 0 Stockfish
Stockfish 0 47 3 AlphaZero
Shogi AlphaZero 43 2 5 elmo
elmo 3 0 47 AlphaZero
Go AlphaZero 31 - 19 AlphaGo Zero
AlphaGo Zero 21 - 29 AlphaZero

È stato eseguito un esperimento nel quale AlphaZero ha affrontato Stockfish in 12 match di 100 partite, in ognuno dei quali la posizione iniziale era una delle 12 aperture più frequenti nel gioco umano (con oltre 100 000 entry nel database online del sito 365Chess.com).[5] Gli autori hanno evidenziato come AlphaZero abbia scoperto e giocato tutte queste aperture nella fase di training.[1]

Apertura ECO Bianco Risultato Nero
Apertura inglese A10 AlphaZero 20 30 0 Stockfish
Stockfish 2 40 8 AlphaZero
Gambetto di donna D06 AlphaZero 16 34 0 Stockfish
Stockfish 2 47 1 AlphaZero
Partita di donna A46 AlphaZero 24 26 0 Stockfish
Stockfish 0 47 3 AlphaZero
Partita di donna E00 AlphaZero 17 33 0 Stockfish
Stockfish 1 44 5 AlphaZero
Difesa est indiana E61 AlphaZero 16 34 0 Stockfish
Stockfish 2 48 0 AlphaZero
Difesa francese C00 AlphaZero 39 11 0 Stockfish
Stockfish 4 46 0 AlphaZero
Apertura ECO Bianco Risultato Nero
Difesa siciliana B50 AlphaZero 17 32 1 Stockfish
Stockfish 3 43 4 AlphaZero
Difesa siciliana B40 AlphaZero 17 31 2 Stockfish
Stockfish 7 40 3 AlphaZero
Difesa siciliana B30 AlphaZero 11 39 0 Stockfish
Stockfish 1 46 3 AlphaZero
Partita spagnola C60 AlphaZero 27 22 1 Stockfish
Stockfish 0 44 6 AlphaZero
Difesa Caro-Kann B10 AlphaZero 25 25 1 Stockfish
Stockfish 1 45 4 AlphaZero
Apertura Réti A05 AlphaZero 13 36 1 Stockfish
Stockfish 0 43 7 AlphaZero

Reazioni[modifica | modifica wikitesto]

I risultati di AlphaZero hanno ricevuto grande copertura mediatica. La stampa ha enfatizzato il relativamente limitato tempo di addestramento necessario per raggiungere una forza di gioco sovrumana (riguardo alle quattro ore necessarie per superare la forza di gioco di Stockfish, il Telegraph lo etichetta come "un tempo inferiore a quello tra la colazione e il pranzo.")[2][6][7][8][9] Si tratta di un tempo significativo, ma comunque equivalente ad una quantità di calcoli enorme: l'addestramento è stato infatti eseguito su una configurazione massivamente parallela (5000 TPU di prima generazione più 64 di seconda generazione), e la quantità di calcoli è equivalente a circa due anni di tempo macchina su una singola TPU, corrispondente ad un tempo molto maggiore su una GPU commerciale e ancora di più su una CPU.[10] L'esperta di IA Joanna Bryson ha osservato che, grazie alle buone capacità pubblicitarie di Google, AlphaZero si sta già fortemente imponendo all'attenzione degli sfidanti. "Non si tratta solo di disporre dei migliori programmatori. È anche una questione eminentemente politica, visto che contribuisce a rafforzare la posizione di Google nelle trattative con i governi e le autorità di regolamentazione che si occupano del settore dell'IA."[9]

Il mondo degli scacchi ha espresso diverse opinioni positive.[11] Garri Kasparov, ex campione del mondo e da sempre interessato all'intelligenza artificiale applicata agli scacchi, ha definito il risultato come eccezionale.[12][13] Il GM danese Peter Heine Nielsen ha affermato un'intervista rilasciata alla BBC "Mi sono sempre domandato cosa succederebbe se una specie superiore atterrasse sul nostro pianeta e ci mostrasse come gioca a scacchi. Ora lo so."[9] Il GM norvegese Jon Ludvig Hammer ha definito AlphaZero "un attaccante folle" con un profondo senso del gioco posizionale.[2] Opinione analoga è stata espressa da Demis Hassabis, cofondatore di DeepMind e giocatore di scacchi, che etichetta lo stile di gioco di AlphaZero come alieno: "a volte vince offrendo sacrifici controintuitivi, ad esempio sacrificando donna e alfiere per sfruttare un vantaggio posizionale".[14]

Critiche[modifica | modifica wikitesto]

I risultati hanno attirato anche perplessità dal punto di vista metodologico, dovute alla configurazione sperimentale e alla differente tipologia di hardware impiegato. Hikaru Nakamura e Larry Kaufman (che ha contribuito allo sviluppo di Rybka e Komodo, forti motori UCI) hanno evidenziato come l'assenza di un libro di apertura abbia inficiato negativamente la performance di Stockfish, che è ottimizzato per trarre vantaggio da esso, mentre al contrario AlphaZero non usa un meccanismo analogo (Kaufman sottolinea come di fatto AlphaZero impari la teoria d'apertura da zero nella fase di training), ipotizzando che in condizioni ottimali il divario finale nel punteggio potesse essere più contenuto. I due esprimono anche perplessità sul come la differente architettura hardware e relativa potenza di calcolo a disposizione dei software abbia influito sul risultato.[12]

Tord Romstad, uno degli sviluppatori originali di Stockfish, ha evidenziato come le condizioni di gioco fossero penalizzanti per Stockfish, che non è ottimizzato per il gioco a tempo fisso per mossa, traendo invece vantaggio dall'avere un tempo fisso per partita e distribuendo il tempo in misura differente nel corso delle mosse a seconda della necessità. Osserva anche il fatto che la versione del motore impiegata negli esperimenti fosse vecchia di un anno. D'altro canto, fa anche notare il breve tempo a disposizione del team per raggiungere il risultato, sostenendo che AlphaZero avrebbe potuto raggiungere risultati addirittura migliori con più lavoro messo a disposizione per il progetto, e osserva l'importanza rappresentata dall'introduzione di un approccio completamente nuovo, sia dal punto di vista hardware sia software, al problema del gioco degli scacchi.[15]

Altre critiche metodologiche riguardano la limitata riproducibilità dell'esperimento, in quanto il codice sorgente di AlphaZero non è accessibile e l'hardware impiegato non è disponibile a livello commerciale. Inoltre, tra le partite di esempio pubblicate non sono presenti sconfitte, la cui analisi sarebbe utile per proseguire la ricerca nel tentativo di migliorare i punti deboli, motivo per il quale nelle pubblicazioni scientifiche è buona prassi evidenziare anche le criticità di un algoritmo oltre che i suoi punti di forza.[10]

Per quanto riguarda lo shogi, critiche analoghe riguardano il fatto che la memoria allocata per la hash table di elmo fosse troppo poca e che le impostazioni per l'abbandono (in particolare in caso di nyū gyoku) non fossero ottimali.[16][17]

Note[modifica | modifica wikitesto]

  1. ^ a b c d e f (EN) David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis, Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm (PDF), 5 dicembre 2017.
  2. ^ a b c (EN) Sarah Knapton, Leon Watson, Entire human chess knowledge learned and surpassed by DeepMind's AlphaZero in four hours, Telegraph.co.uk, 6 dicembre 2017. URL consultato il 6 dicembre 2017.
  3. ^ James Vincent, DeepMind’s AI became a superhuman chess player in a few hours, just for fun, The Verge, 6 dicembre 2017. URL consultato il 6 dicembre 2017.
  4. ^ (EN) David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis, A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play, in Science, vol. 362, nº 6419, 7 dicembre 2018, pp. 1140-1144, DOI:10.1126/science.aar6404.
  5. ^ Chess Games Database Online, su 365chess.com.
  6. ^ Nadeem Badshah, Google’s DeepMind robot becomes world-beating chess grandmaster in four hours, in The Times of London, 7 dicembre 2017. URL consultato il 7 dicembre 2017.
  7. ^ (EN) Alphabet's Latest AI Show Pony Has More Than One Trick, in WIRED, 6 dicembre 2017. URL consultato il 7 dicembre 2017.
  8. ^ Nathan Mattise, DeepMind AI needs mere 4 hours of self-training to become a chess overlord, su arstechnica.com.
  9. ^ a b c 'Superhuman' Google AI claims chess crown, in BBC News, 6 dicembre 2017. URL consultato il 7 dicembre 2017.
  10. ^ a b Jose Camacho Collados, Is AlphaZero really a scientific breakthrough in AI?, su medium.com.
  11. ^ AlphaZero: Reactions From Top GMs, Stockfish Author, su chess.com.
  12. ^ a b Google's AlphaZero Destroys Stockfish In 100-Game Match, in Chess.com. URL consultato il 7 dicembre 2017.
  13. ^ Samuel Gibbs, AlphaZero AI beats champion chess program after teaching itself in four hours, in The Guardian, 7 dicembre 2017. URL consultato l'8 dicembre 2017.
  14. ^ (EN) Will Knight, Alpha Zero’s “Alien” Chess Shows the Power, and the Peculiarity, of AI, in MIT Technology Review, 8 dicembre 2017. URL consultato l'11 dicembre 2017.
  15. ^ AlphaZero: Reactions From Top GMs, Stockfish Author, chess.com, 8 dicembre 2017. URL consultato il 9 dicembre 2017.
  16. ^ Some concerns on the matching conditions between AlphaZero and Shogi engine, su コンピュータ将棋 レーティング, "uuunuuun". URL consultato il 9 dicembre 2017. (via (EN) 瀧澤 誠@elmo (@mktakizawa)| Twitter, in mktakizawa (elmo developer), 9 dicembre 2017. URL consultato l'11 dicembre 2017.)
  17. ^ DeepMind社がやねうら王に注目し始めたようです, The developer of YaneuraOu, a search component used by elmo, 7 dicembre 2017. URL consultato il 9 dicembre 2017.

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]