Lc0 contro Stoccafisso
Stockfish analizza molte posizioni al secondo e sceglie la linea migliore. Lc0 è una rete neurale che ignora immediatamente le mosse che non funzionano, ma è più lenta. Tuttavia, in qualche modo lo stoccafisso è migliore. Come mai questo è vero, quando la maggior parte delle posizioni che esamina sono effettivamente inutili?
Risposte
Perché Stockfish cerca MOLTE più posizioni.
Basta controllare l'ultima superfinale del TCEC tra i due. In una posizione tipica, Leela potrebbe cercare 40.000 posizioni al secondo. In confronto, Stockfish cerca circa 200 milioni di posizioni al secondo. Sono circa 5000 volte più posizioni al secondo. Significa che Stockfish può permettersi di sbagliare 4999 volte fintanto che cerca le mosse giuste. (Questo è ovviamente semplificato poiché presuppone che ci sia una mossa "giusta".)
Vale anche la pena sottolineare che non è affatto ovvio che la ricerca selettiva delle mosse "migliori" sia un approccio migliore rispetto alla semplice ricerca di tonnellate e tonnellate di esse. Ricorda diversi decenni fa, quando gli scacchi per computer erano nuovi, c'erano due modi per avvicinarsi alla ricerca. Il primo era far sì che i computer "pensassero" come gli umani e considerassero solo le migliori mosse candidate. L'altro, e quello che alla fine è arrivato a dominare, è cercare quante più mosse possibili. Puoi vedere tensioni simili nel mondo reale: gli esseri umani hanno solo pochi bambini, ma alcune specie (come le felci) hanno molti bambini, la maggior parte dei quali muore, ma quelli che sopravvivono propagano la specie con successo.
Infine, si dovrebbe notare che la rete neurale di Leela non è sempre corretta. Vedi questo errore di Leela contro il GM Andrew Tang , insieme a una spiegazione del perché Leela ha commesso un errore.
Ma come mai Leela ha sbagliato una tattica così semplice? Guardando gli orologi degli scacchi, possiamo vedere che Leela ha trascorso meno di 0,1 secondi a pensare prima di fare la mossa. In tali limiti di tempo, Leela non è davvero in grado di considerare e valutare molte mosse diverse, ma fa invece molto affidamento sul suo "istinto". Guardando sotto il cofano dopo la partita, potremmo vedere che Leela pensa che Qxd4 sia la mossa corretta il 90% delle volte nella posizione critica. Inoltre, Leela pensa che Bh7+ sia la risposta corretta solo il 10% delle volte. Se avesse avuto più tempo per ricontrollare le sue ipotesi, non avrebbe commesso un errore, ma non l'ha fatto, così ha fatto. Secondo la nostra stima, Leela avrebbe evitato l'errore se avesse trascorso 0,25 secondi a pensare prima di fare una mossa.
Come mostra questo paragrafo, l'istinto di Leela non è sempre quello giusto. Leela compensa questo fatto cercando comunque le altre mosse, semplicemente le cerca di meno. Se Leela davvero ignorasse le "mosse che non funzionano", perderebbe decisamente ripetutamente.
Mi amplierò su alcune cose che Allure ha già menzionato: Dalla domanda: "Stockfish analizza molte posizioni al secondo e sceglie la linea migliore. Lc0 è una rete neurale che ignora immediatamente le mosse che non funzionano, ma è più lenta".
Questo non è proprio vero. Leela e Stockfish sono più simili di quanto alcune persone sembrino supporre: entrambi alla fine guarderanno tutte le mosse. Tuttavia, entrambi trascorrono quantità variabili di tempo su mosse diverse, ad esempio, trascorreranno più tempo su mosse che ritengono buone. La differenza tra i due è: Stockfish usa l'euristica "scelta umanamente" (ovviamente anche quelle sono sintonizzate, ma sono ancora basate su idee umane) per determinare quale mossa cercare quanto, mentre Leela usa una rete neurale per determinare quale mossa per cercare quanto. Entrambi i motori quindi ricercano ciò che si sposta e in base ai risultati (ovvero alla valutazione) decidono quanto cercare per andare avanti. (ovviamente, migliore è una mossa e più verrà ricercata)
L'altra differenza è il backup di ricerca, Stockfish utilizza un backup basato su minimax, il che significa che la valutazione di una linea è esattamente la valutazione della posizione finale di quella presunta migliore variazione. Nel frattempo Leela utilizza un backup basato sulla media, il che significa che anche le valutazioni da posizioni che non fanno parte della linea migliore possono influenzare la valutazione. Quest'ultimo algoritmo non è realmente possibile con Stockfish poiché richiede la memorizzazione dell'intero albero di ricerca, che data la velocità di Stockfish non è possibile. Tuttavia, a causa dei nodi al secondo più bassi di Leela a causa del NN, è possibile lì. Quale dei due sia preferibile è discutibile, l'algoritmo di ricerca di Leela presenta alcuni problemi.
Ovviamente le nuove versioni di Stockfish ora usano anche un NN, anche se con una struttura molto diversa. Tuttavia, ciò non cambia affatto la risposta.