Penso che sia meglio approfondire il tuo secondo punto con una mossa di esempio nel gioco 1 tra AlphaZero e Stoccafisso, che oggi è servito anche a soddisfare la mia curiosità.
il limite di tempo di 1 min / mossa (Come sarebbe questo svantaggio dello stoccafisso?)
Le prestazioni di Stockfish dipendono sia dal limite di tempo che dalla configurazione hardware, quindi pensa solo a quando qualcuno raddoppia i thread della CPU, quindi Stockfish ha bisogno di meno tempo (non necessariamente metà) per trovare la soluzione di quanto farebbe con la prima configurazione.
Nel primo rapporto pubblicato su Chess.com qualcuno ha affermato che Stockfish non stava giocando in modo ottimale perché non poteva riprodurre gli stessi risultati usando lo stesso Stockfish sul suo computer. Ha detto che nella posizione in basso (gioco 1 - mossa 11) lo stoccafisso ha giocato a Kg1-h1 (spostando il suo re) che non aveva alcun senso. D'altra parte, lo stoccafisso sul suo computer ha mostrato una mossa più in via di sviluppo come Be3 (sposta il vescovo quadrato scuro), diamo un'occhiata alla posizione:
Sì, è stata una mossa passiva e sembra che lo stoccafisso avrebbe dovuto giocare una mossa più in via di sviluppo. Ma aveva torto. Perché? Perché ha fatto funzionare lo stoccafisso per 15 secondi e se l'avesse fatto per un'ora avrebbe ottenuto Kg1-h1 come mossa migliore in quella posizione. Lo stoccafisso cambia decisione quando analizza tutte le mosse possibili in modo più approfondito. Ecco cosa ho detto originariamente nella mia risposta :
Ho eseguito l'ultimo stoccafisso sulla posizione (alla mossa 11):
- Inizialmente, fornisce b4 come mossa ottimale quando il motore è in funzione per circa un minuto. Dopodiché, decide che Be3 è meglio.
Ma dopo 5 minuti sul mio hardware che gira su 1.400k nodi / s, deciderà di scegliere Kh1 come mossa ottimale.
Nel documento, si dice che lo stoccafisso calcola 70.000.000 di posizioni al secondo e viene eseguito per 1 minuto per mossa, circa 50 volte il mio hardware, quindi lascerò correre il mio per 50 minuti ... Kg1-h1 è ancora il scelta per stoccafisso.
Il limite di tempo è la chiave
Nel caso sopra, probabilmente non importava molto se lo Stoccafisso funzionasse due volte, perché la decisione sarebbe stata la stessa, ma alla prossima mossa avrebbe sicuramente :
In questa posizione, lo stoccafisso ha scelto di spostare il pedone sul lato sinistro ( a4-a5 ). Diciamo che ho un computer che fa funzionare il motore Stockfish ad una velocità di 1.400k nodi al secondo, che è circa 50 volte inferiore allo Stockfish nel gioco reale ( nel documento , dice 70.000kn / s). Quindi posso simulare il gioco se lo eseguo per 50 minuti ad ogni mossa. Va bene.
Ho eseguito l'analisi dello stoccafisso nella posizione sopra e ho ottenuto i seguenti risultati:
- Lo stoccafisso ha iniziato a suggerire alcune mosse, ma dopo 6 minuti sul mio computer (corrisponde a 7,2 secondi sullo stoccafisso nel gioco reale) ha preferito a4-a5 proprio come è andato il gioco .
Va bene, ma l'ho tenuto in esecuzione per 50 minuti completi al fine di raggiungere i calcoli dello stoccafisso nel gioco che è stato concesso 1 minuto:
La triste verità è che credo che lo stoccafisso abbia perso tutti i suoi giochi a causa del limite di tempo. Lo stoccafisso ottiene una ricerca e una valutazione più approfondite col passare del tempo e nel gioco non è stato permesso di usare un libro di apertura che lo fa considerare molte mosse in profondità. Si noti che nel gioco reale a4-a5 è stato giocato il che dimostra che (supponendo che potesse valutare 70 milioni di posizioni al secondo) lo stoccafisso nel gioco non ha trascorso più di 21,6 secondi in movimento. Altrimenti, avrebbe cambiato la sua decisione con quelle altre tre mosse nel gioco reale. La ragione di ciò non è ancora chiara per me poiché il mio stoccafisso consumava anche meno memoria (circa 130 MB di RAM rispetto ai 1 GB citati nel documento originale , supponendo che tutto andasse alle tabelle di hash).
Conclusione
L'hardware che eseguiva Stockfish, come ho sottolineato, era nel migliore dei casi 18 volte più veloce del mio (Aggiornamento: su un singolo core) in base alla mossa che ho analizzato. Non sono sicuro che AlphaZero potesse davvero utilizzare tale hardware per allenare le sue reti in 4 ore, posso solo supporre che sia troppo basso per un gioco come gli scacchi. Inoltre, AlphaZero ha trascorso quelle ore sull'apprendimento, che include anche la costruzione di solide aperture (e come sottolinea il documento, le preferenze su determinate aperture). D'altra parte, lo stoccafisso era handicappato sulle aperture e non valutava 70 milioni di posizioni al secondo per 60 secondi su ogni mossa.
Come nota finale, tutte le cose che ho detto erano basate sui miei presupposti. Naturalmente, il risultato di AlphaZero e dei giochi è stato molto interessante per me. Tuttavia, mi sarebbe piaciuto vedere un gioco in cui lo Stockfish era proprio come quello che ottengo sul mio computer. Cioè, più tempo e un libro di apertura consentito. È anche facile ottenere i risultati dell'analisi dello stoccafisso su ogni mossa, e vorrei che lo rilasciassero per mostrare quanto bene fosse eseguito.