MODIFICA (dopo aver letto il documento):
Ho letto il giornale pensieroso. Cominciamo con ciò che Google ha affermato nel documento:
- Hanno sconfitto lo stoccafisso con Monte-Carlo-Tree-Search + reti neurali profonde
- La partita è stata assolutamente unilaterale, molte vittorie per AlphaZero ma nessuna per lo stoccafisso
- Sono stati in grado di farlo in sole quattro ore
- AlphaZero ha giocato come un essere umano
Sfortunatamente, non penso che sia un buon giornale di giornale. Spiegherò con i collegamenti (quindi sai che non sto sognando):
https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
I risultati delle partite da soli non sono particolarmente significativi a causa della strana scelta dei controlli del tempo e delle impostazioni dei parametri di Stockfish: i giochi sono stati giocati a un tempo fisso di 1 minuto / mossa, il che significa che Stockfish non fa uso della sua euristica di gestione del tempo ( sono stati fatti molti sforzi per far sì che lo Stoccafisso identifichi i punti critici del gioco e decida quando trascorrere un po 'di tempo in più in una mossa; a un tempo fisso per mossa, la forza ne soffrirà in modo significativo).
Lo stoccafisso non avrebbe potuto giocare gli scacchi migliori con un solo minuto per mossa. Il programma non è stato progettato per questo.
- Lo stoccafisso funzionava su una normale macchina commerciale, mentre AlphaZero era su una macchina di oltre 4 milioni di TPU sintonizzata per AlphaZero. È come abbinare il desktop di fascia alta a un telefono Android economico. Tord ha scritto:
Uno è un programma di scacchi convenzionale in esecuzione su computer ordinari, l'altro utilizza tecniche fondamentalmente diverse e viene eseguito su hardware progettato su misura che non è disponibile per l'acquisto (e sarebbe fuori dal budget degli utenti ordinari se lo fosse).
- Google ha inavvertitamente fornito 64 thread a una macchina a 32 core per Stoccafisso. Cito GM Larry Kaufman (esperto di scacchi di classe mondiale):
http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987
Concordo sul fatto che il test è stato tutt'altro che equo; un altro problema che ha danneggiato SF è che apparentemente era eseguito su 64 thread su una macchina a 32 core, ma avrebbe giocato molto meglio eseguendo solo 32 thread su quella macchina, poiché non c'è quasi alcun vantaggio SMP per compensare il rallentamento di circa 5 o 3. Anche il rapporto dei costi era più di quello che ho detto; Pensavo fosse una macchina a 64 core, ma una macchina a 32 core costa circa la metà di quello che immaginavo. Quindi forse nel complesso 30 a 1 non è una stima così negativa. D'altra parte, penso che tu sottovaluti quanto potrebbe essere ulteriormente migliorato.
- Lo stoccafisso ha dato solo una tabella di hash da 1 GB. Questo è uno scherzo ... Ho una tabella hash più grande per la mia app iOS di Stockfish (Disclaimer: sono l'autore) sul mio iPhone! Tord ha scritto:
... tabelle hash troppo piccole per il numero di thread ...
La tabella hash da 1 GB è assolutamente inaccettabile per una partita come questa. Lo stoccafisso incontrerebbe frequentemente la collisione dell'hash. Sono necessari cicli di CPU per sostituire le vecchie voci di hash.
- Lo stoccafisso non è progettato per funzionare con quel numero di thread. Nella mia app di scacchi iOS, vengono utilizzati solo pochi thread. Tord ha scritto:
... stava giocando con molti più thread di ricerca di quanti non abbia mai ricevuto una quantità significativa di test ...
- Lo stoccafisso funzionava senza un libro di apertura o un tavolo da tavolo Syzygy da 6 pezzi. La dimensione del campione era insufficiente. La versione di Stoccafisso non era l'ultima. Discussione qui .
CONCLUSIONE
Google non ha dimostrato senza dubbio che i suoi metodi sono superiori allo stoccafisso. I loro numeri sono superficiali e fortemente distorti da AlphaZero. I loro metodi non sono riproducibili da una terza parte indipendente. È ancora un po 'troppo presto per dire che il Deep Learning è un metodo superiore alla tradizionale programmazione degli scacchi.
EDIT (dicembre 2017):
C'è un nuovo articolo di Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) per l'apprendimento approfondito del rinforzo negli scacchi. Dall'abstract, il motore di scacchi numero uno dello stoccafisso mondiale è stato "convincente" sconfitto. Penso che questo sia il risultato più significativo negli scacchi per computer dalla partita Deep Blue del 1997. Aggiornerò la mia risposta una volta che avrò letto il documento in dettaglio.
Originale (prima del dicembre 2017)
Chiariamo la tua domanda:
- No, i motori degli scacchi non usano la forza bruta.
- AlphaGo fa uso d'albero alla ricerca, utilizza Monte Carlo albero di ricerca . Google " Monte Carlo Tree Search alphaGo " se vuoi essere convinto.
ANN può essere utilizzato per i motori di scacchi:
Questo programma avrebbe prestazioni migliori rispetto ai migliori motori di scacchi (e giocatori di scacchi) di oggi?
Giraffe gioca a livello di Master internazionale, che è circa FIDE 2400. Tuttavia, Stoccafisso, Houdini e Komodo giocano tutti intorno a FIDE 3000. Questo è un grande divario. Perché? Perché non cercare l'albero di Monte-Carlo?
- Il materiale euristico negli scacchi è semplice. Il più delle volte, una posizione di scacchi sta vincendo / perdendo semplicemente contando i materiali sul tabellone. Ricorda che il conteggio dei materiali non funziona per Go. Il conteggio dei materiali è ordini di grandezza più veloci rispetto all'esecuzione di reti neurali - questo può essere fatto da bitboard rappresentati da un numero intero a 64 bit. Sul sistema a 64 bit, può essere eseguito solo con diverse istruzioni della macchina. La ricerca con l'algoritmo tradizionale è molto più veloce dell'apprendimento automatico. Nodi più alti al secondo si traducono in ricerche più approfondite.
- Allo stesso modo, ci sono tecniche molto utili ed economiche come la potatura a mosse nulle, la riduzione delle mosse in ritardo e le mosse killer ecc. Sono economiche da gestire e molto efficienti per l'approccio usato in AlphaGo.
- La valutazione statica negli scacchi è veloce e utile
- L'apprendimento automatico è utile per l'ottimizzazione dei parametri, ma abbiamo anche SPSA e CLOP per gli scacchi.
- Ci sono molte metriche utili per la riduzione degli alberi negli scacchi. Molto meno per Go.
Ci sono state ricerche secondo cui Monte Carlo Tree Search non si adatta bene agli scacchi. Go è un gioco diverso da scacchi. Gli algoritmi di scacchi non funzionano per Go perché gli scacchi si basano su tattiche brutali. La tattica è probabilmente più importante negli scacchi.
Ora, abbiamo stabilito che MCTS funziona bene per AlphaGo ma meno per gli scacchi. L'apprendimento profondo sarebbe più utile se:
- La valutazione NN sintonizzata è migliore rispetto agli algoritmi tradizionali. Tuttavia ... l'apprendimento profondo non è magico, tu come programmatore dovresti comunque fare la programmazione. Come accennato, abbiamo qualcosa come SPSA per giocare da soli per la regolazione dei parametri negli scacchi.
- Investimento, soldi! Non ci sono molti soldi per l'apprendimento automatico negli scacchi. Lo stoccafisso è gratuito e open source, ma abbastanza forte da sconfiggere tutti i giocatori umani. Perché Google spenderebbe milioni se qualcuno potesse semplicemente scaricare Stockfish gratuitamente? Perché pagare per i cluster di CPU? Chi pagherà per i talenti? Nessuno vuole farlo, perché gli scacchi sono considerati un gioco "risolto".
Se il deep learning può ottenere quanto segue, batterà l'algoritmo tradizionale:
- Data una posizione di scacchi, "sentirlo" come un grande maestro umano. Ad esempio, un grande maestro umano non andrebbe in fila per cattiva esperienza. Né l'algoritmo tradizionale né il deep learning possono raggiungerlo. Il tuo modello NN potrebbe darti una probabilità [0..1] per la tua posizione, ma non è abbastanza buono.
Vorrei sottolineare:
No. Giraffe (il link pubblicato da @Tim) non utilizza Monte Carlo Tree Search. Utilizza il normale algoritmo nega-max. Tutto ciò che fa è sostituire la normale funzione di valutazione con NN ed è molto lenta.
un altro:
Anche se Kasparov è stato battuto da Deep Blue nella partita del 1997. "L'umanità" è stata davvero persa intorno al 2003-2005, quando Kramnik ha perso una partita con Deep Fritz senza vittorie e Michael Adams ha perso contro una macchina a grappolo in una partita unilaterale. In quel periodo, Rybka si dimostrò troppo forte anche per i migliori giocatori del mondo.
Riferimento:
http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0
Quoto:
Negli scacchi abbiamo il concetto di materialità che fornisce già una stima ragionevole di come sta andando un motore e che può essere calcolato rapidamente. Inoltre, ci sono molti altri aspetti del gioco che possono essere codificati in una funzione di valutazione statica che non può essere eseguita in Go. A causa delle numerose euristiche e buona valutazione, l'EBF (Effective-Branching-Factor) è piuttosto piccolo. L'uso di una rete neurale in sostituzione della funzione di valutazione statica rallenterebbe decisamente il motore di parecchio.