Se il computer dà scacco matto al computer

Ormai, è cosa nota, da anni i computer programmati per il gioco degli scacchi sono diventati troppo forti per qualsiasi essere umano, incluso il campione del mondo Magnus Carlsen. Se da un lato questo fatto è considerato dagli appassionati una possibile fonte di distorsione dello stesso gioco “umano” (i giocatori possono ormai tutti prepararsi con “consiglieri” più forti di qualsiasi avversario, e alcuni sostengono che questo renda il gioco più prevedibile e piatto), dall’altro ha inevitabilmente dato luogo a una nuova forma di competizione scacchistica, e cioè quella tutta computerizzata tra i diversi programmi che si contendono il primato del miglior scacchista artificiale del mondo (e quindi il migliore in assoluto). Ci sono diverse competizioni con diverse regole, ma se consideriamo i programmi commerciali specializzati, abitualmente utilizzati anche dai migliori scacchisti, ce ne sono alcuni che da anni si collocano regolarmente ai primi posti dell’ideale classifica, come Komodo, Houdini, Stockfish. Ciascuno di essi viene continuamente migliorato, e di volta in volta l’uno o l’altro guadagna un piccolo margine di vantaggio; se Houdini ha vinto l’ultimo Top Chess Engine Championship, Stockfish ha vinto l’analogo torneo organizzato da Chess.com, mantiene il primo posto nella valutazione complessiva, ed è probabilmente il programma più ampiamente usato anche tra gli scacchisti, forse anche perché è open source.

Quello che accomuna Stockfish, Houdini, Komodo e gli altri loro “concorrenti” è che sono programmi progettati appositamente per giocare a scacchi. Esperti giocatori umani hanno codificato la loro conoscenza del gioco negli algoritmi che consentono ai programmi di valutare una posizione, il vantaggio che deriva da un pedone centrale rispetto a uno laterale, o da un alfiere rispetto a un cavallo in fine partita. Tutti questi programmi utilizzano, come si dice in gergo, la forza bruta per scegliere le loro mosse: analizzano il più a fondo possibile i vari rami di mosse e contromosse, e scelgono quello che porta alla posizione più favorevole, valutata appunto con gli algoritmi che dicevo. Migliorare programmi come questi può significare renderli più veloci, e quindi capaci di ricerche più estese a parità di tempo; oppure perfezionare le loro funzioni di valutazione delle posizioni, o anche rendere più ingegnosi i criteri di ricerca, per dedicare più tempo ai rami di analisi più promettenti.
E poi…

Poi, è arrivato AlphaZero. Si tratta di uno stretto parente di AlphaGo Zero, il programma che, senza incorporare strategie preconfezionate, è stato in grado, come abbiamo visto, di sconfiggere i migliori giocatori umani nel gioco del Go, impresa considerata un tempo disperata per i computer. Leggiamo l’abstract dell’articolo Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm che racconta come funziona AlphaZero:

I programmi [di scacchi] più forti si basano su una combinazione di sofisticate tecniche di ricerca, di adattamenti allo specifico dominio [del gioco] e di funzioni di valutazione codificate con cura, che sono stati affinati da esperti umani nell’arco di diversi decenni. Al contrario, il programma AlphaGo Zero ha raggiunto recentemente un livello di gioco superumano nel Go, apprendendo progressivamente da zero giocando contro se stesso. In questo articolo, questo approccio viene generalizzato a un algoritmo unificato AlphaZero che può raggiungere, partendo da tabula rasa, un livello superumano in molti ambiti complessi. Partendo dal giocare a caso, e senza alcuna conoscenza precodificata al di fuori delle regole del gioco, AlphaZero ha raggiunto in 24 ore un livello superumano di gioco negli scacchi, nello shogi (scacchi giapponesi) e nel Go, e ha sconfitto nettamente un programma campione del mondo in ciascuna disciplina.

Ora, la cosa veramente notevole è questa: AlphaZero non conteneva alcuna nozione del gioco degli scacchi. Grazie al machine learning, ossia all’apprendimento progressivo basato su un elevatissimo numero di tentativi, è stato in grado di sconfiggere Stockfish, giocando 100 partite senza perderne nessuna e ottenendo 28 vittorie, un risultato schiacciante. Anche considerando che è difficile garantire l’equità di un confronto tra due programmi molto diversi, e che quindi ci sono stati parecchi commentatori che hanno ritenuto che le regole del confronto favorissero AlphaZero (uno dei migliori giocatori del mondo, Hikaru Nakamura, ha affermato che “neanche Dio” potrebbe battere Stockfish tanto nettamente senza qualche vantaggio indebito), la sostanza è che un programma generalizzato con solo quattro ore di “allenamento” specifico ha sconfitto il miglior programma tradizionale di scacchi, frutto di decenni di studi e miglioramenti. Come ha sintetizzato il Grande Maestro Peter Nielsen, “mi sono sempre chiesto come sarebbe vedere gli scacchi giocati da una specie aliena dalla mente superiore. Ora penso di saperlo”.

In effetti, forse è esattamente quello che è accaduto. Come abbiamo scritto un po’ di tempo fa, il vero “sacro Graal” degli studi sull’Intelligenza Artificiale (o AI, dall’inglese Artificial Intelligence) è la creazione di un’AI generalizzata di livello almeno pari a quello umano. Generalizzata significa in grado di affrontare qualsiasi tipo di problema, e non specializzata a una specifica applicazione (come sappiamo bene, ormai in molte applicazioni specifiche i programmi “intelligenti” per computer sono già più abili degli esseri umani). Il momento della creazione di un’Intelligenza Artificiale di questo tipo è considerato infatti da molti studiosi quello che cambierà il mondo in cui viviamo, dando luogo alla cosiddetta singolarità. Ora, Stockfish è un eccellente esempio di Intelligenza Artificiale specializzata: è un giocatore di scacchi più forte di qualsiasi umano, ma sa fare solo quello, ed è progettato usando la conoscenza umana del gioco. È quindi ben difficile che un programma come Stockfish (e tutti gli altri programmi di scacchi fino a ieri) arrivi a giocare mille volte meglio di un umano: le sue tecniche sono alla nostra portata, o lo sarebbero se avessimo la memoria e la capacità di calcolo di un computer.

aperture

Alcune aperture e il variare della loro frequenza nelle partite di AlphaZero – Fonte: Silver et al., articolo citato

AlphaZero è una cosa completamente diversa. Se noi cercassimo in AlphaZero delle “regole” che dicano, ad esempio, che la migliore apertura con il Nero in risposta a 1.e4 è la Siciliana (o anche la stessa nozione di apertura), o che è bene occupare con una Torre una colonna aperta, non troveremmo nulla del genere; semplicemente, le aperture migliori, e le mosse migliori, comparirebbero sempre più spesso nelle sue partite. Inoltre, AlphaZero non è migliore di Stockfish perché analizzi più mosse: secondo l’articolo citato, “AlphaZero esamina solo 80.000 posizioni al secondo negli scacchi e 40.000 nello shogi, rispetto a 70.000.000 di Stockfish e 35.000.000 di Elmo [il programma campione di shogi]. AlphaZero non è uno Stockfish migliore, è una diversa specie di AI.

Se volessimo assecondare la nostra inclinazione per la letteratura fantascientifica, potremmo dire che abbiamo assistito a un evento che retrospettivamente qualcuno (forse un computer?) potrà un giorno indicare come una pietra miliare (o un primo vagito). Programmi come AlphaZero (che è comunque ancora un programma specializzato, nel senso che così com’è è utilizzabile solo per giocare, anche se la sua struttura è adattabile ad altre situazioni) si trovano già, o si troveranno presto, in diversi ambiti di applicazione (ovviamente uno dei campi più immediati è il trading di Borsa), saranno sempre più generali e versatili e opereranno in contesti reali e non “artificiali” come i giochi. Può darsi che questo umile programma per giochi da tavolo si rivelerà essere un primo “anello di congiunzione” tra programmi AI limitati, come Stockfish, e i futuri software superintelligenti, quella “specie aliena” di cui Peter Nielsen ha visto una traccia nel gioco di AlphaZero.

 

5 commenti

  • areyoureally sayingthis

    Quindi, a parte la conoscenza dettagliata delle regole degli scacchi, e lo scopo del gioco (entrambe le cose codificate dall’esterno), AlphaZero avrebbe contemporaneamente usato il machine learning, ossia “l’apprendimento progressivo basato su un elevatissimo numero di tentativi” ma in “solo quattro ore di “allenamento” specifico ha sconfitto il miglior programma tradizionale di scacchi”. Ci sarebbe da sorprendersi, se non fosse improbabile, ad essere gentili.

    • Lei ha idea di quante partite giochi un computer come quello in quattro ore?

      • areyoureally sayingthis

        Piuttosto buona, grazie. E invece lei ha idea del fatto che il procedimento illustrato, anche se con numeri non consistenti (ma ciò è indifferente) è esattamente il contrario di una AI, ma è il procedimento seguito dalla evoluzione naturale in un contesto estremamente ristretto? Ovviament, se si esclude che l’evoluzione naturale non sia che l’intelligent design di qualcosa di ordine superiore.

      • Il Machine Learning in effetti funziona tendenzialmente così. Una volta, come sa, c’erano i cosiddetti “algoritmi genetici”; oggi in qualche modo i meccanismi di selezione sono incorporati nei procedimenti di autoapprendimento. Naturalmente funzionano meglio quando l’esito positivo o negativo è chiaramente verificabile, infatti il preprint spiega che uno degli adattamenti richiesti per generalizzare il software per il Go è stato introdurre la possibilità di patta.

  • Un ragionamento da science fiction…La Singolarità evocata nell’articolo sembra ineluttabile in qualsiasi sistema che stia sviluppando un’intelligenza artificiale: è solo questione di tempo. Quindi se mai dovessimo essere raggiunti da una specie aliena, quasi certamente questa non sarebbe “biologica”.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

w

Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.