Perché NN + MCTS & AB + eval scritto a mano dominano gli scacchi del motore?


14

A quanto ho capito, i motori possono essere divisi in quattro gruppi in questo momento: quelli che usano Alpha-beta (AB) + quelli che usano Monte Carlo Tree Search (MCTS) per la ricerca e quelli che usano funzioni scritte a mano + quelli che usano le reti neurali per eval. I due motori più potenti sono Leela e Stoccafisso. Leela usa MCTS + NN, mentre Stockfish usa AB + scritto a mano.

Perché queste due combinazioni? Perché non scritto a mano NN + AB o MCTS +? Se MCTS è migliore di AB, perché Komodo MCTS non è più forte di Komodo AB? Se AB è migliore di MCTS, perché Leela non usa AB?


Basta speculare: NN sono riconoscitori di schemi. Poiché MCTS lancia una rete più ampia, è più probabile che si incontrino modelli che la NN è stata addestrata a riconoscere come buoni o cattivi.
John Coleman,

Risposte:


12

Velocità

Le reti neurali operano molto più lentamente delle funzioni di valutazione realizzate a mano. Nella Superfinale TCEC , Leela Chess Zero, in esecuzione su due GPU ciascuna con core tensore dedicati, è in grado di cercare circa 60 mila posizioni al secondo. Al contrario, Stoccafisso, su un unico core sul mio PC, cerca oltre 2 milioni di posizioni al secondo.

Mentre i motori moderni hanno una vasta selezione di tecniche per tagliare rami inutili , la ricerca di alberi alfa-beta è ancora una tecnica di forza bruta, che richiede un gran numero di posizioni da cercare per determinare buone mosse.

MCTS, al contrario, è molto più selettivo e espande il suo albero di ricerca solo verso le mosse più promettenti, il che gli consente di sfruttare al massimo il numero più limitato di nodi che è possibile cercare.

Peggior comportamento

Uno dei requisiti chiave della funzione di valutazione per un motore basato sulla ricerca alfa-beta è che deve avere un buon comportamento nel caso peggiore . Questo perché qualsiasi grosso errore nella valutazione, per quanto raro, può essere facilmente propagato alla radice e portare a una mossa orrendamente errata.

Per natura della loro complessità, le reti neurali sono inclini a un eccesso di adattamento e possono essere valide solo come i dati utilizzati per addestrarle. Ad esempio, nella partita 80 della Superfinale della Stagione 14 del TCEC , la mossa 47 Lc0 apparentemente non è stata sbalordita dalla regina in più di Stockfish, valutando la posizione come un fresco +0,77, mentre Stockfish (e la maggior parte degli altri motori) ha mostrato una valutazione di +8,31. Una spiegazione popolare per questo è che Lc0 potrebbe non aver avuto un numero significativo di giochi con più regine sul tabellone nel suo set di allenamento.

Le reti neurali, quindi, hanno uno scarso comportamento nel caso peggiore, e quindi probabilmente hanno prestazioni scarse con la ricerca alfa beta. MCTS, al contrario, consente di compensare un punteggio errato assegnato a una posizione calcolando la media con punteggi ragionevoli assegnati a posizioni vicine nella ricerca.

quiescenza

Tutti i potenti motori alfa-beta utilizzano una tecnica chiamata ricerca di quiescenza , una forma limitata di ricerca alfa-beta applicata ai nodi foglia, in riconoscimento del fatto che le loro funzioni di valutazione artigianali funzionano bene solo in posizioni "silenziose", dove non sono presenti acquisizioni o controlli in sospeso .

Ad esempio, immediatamente dopo la prima metà di uno scambio di regina, una funzione di valutazione artigianale potrebbe dirti che la parte che ha appena preso la regina è completamente persa, mentre una rete neurale potrebbe essere in grado di capire che la regina verrà riconquistata presto.

Ciò rende le funzioni di valutazione fatte a mano allo stesso modo inadatte per MCTS a causa dell'assenza della ricerca di quiescenza, con il risultato che le funzioni artigianali eseguono scarse prestazioni per la maggior parte del tempo (anche se Komodo 12 MCTS aggira questa restrizione usando comunque brevi ricerche alpha-beta , per ottenere posizioni quiescenti e quindi consentire alla sua valutazione artigianale di restituire un punteggio ragionevole)


2

AB e MCTS non sono necessariamente migliori l'uno dell'altro per i loro meriti. È solo che sono diversi algoritmi di ricerca che funzionano meglio con basi diverse. Per la NN, MCTS funziona bene poiché consente al motore di esplorare i rami che stanno andando meglio. Questo dà al motore più libertà di guardare a ciò che "vuole".

Nel frattempo con AB, tutti i rami in linea di principio devono essere esaminati. Questo perché anche con l'approfondimento iterativo, il motore guarda solo così lontano su ogni ramo in ogni iterazione. Quindi non sa se un ramo sta effettivamente vincendo per una parte, anche se sembra perdere a una profondità limitata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.