jhellis3 wrote: ↑Mon Sep 14, 2020 10:44 pm
cucumber wrote:There's no way around it: SF's search is hilariously well tuned on openings.
What? There is no phase information used in or available to search. This statement makes me rather suspicious of your other assertations.
Furthermore, a rather robust (wide) 3-moves book is use for testing, which is rather the opposite of temp based selections.
"There is no phase information used in or available to search. This statement makes me rather suspicious of your other assertations."
There does not need to be phase information used or available to search for eval (which does have phase information) and search tunes to tune SF toward and against certain opening choices. In fact, the nice thing about SPSA is that it only learns on match results.
If certain search changes just so happen to improve the move that SF plays in a certain position, and many 3-move openings transpose to this position, then SPSA will optimize toward it. (With the obvious caveat of search changes that regress too much elsewhere.) This is by design. SPSA finds settings that perform better empirically, even if the settings lack any obvious grounding in chess theory like game phases. Seeing as how opening moves have an outsized impact on the direction that a game will go (i.e, the largest signal will come from changes that affect openings), it'd be really surprising if SPSA
didn't optimize toward and against openings and opening characteristics.
It is very hard to find a three-move line that SF doesn't have shockingly reasonable PVs for with low depths. This is not true of most other engines. This is not nearly as true of SF in most middlegame or endgames.
"Furthermore, a rather robust (wide) 3-moves book is use for testing, which is rather the opposite of temp based selections."
Which is why it's both incredible and unsurprising that SF is the only engine that can produce a PV that maintains quality past 3 moves with under 10,000 nodes. It's pretty much exactly what I'd expect from an engine tuned with a bunch of parameters and a tool designed to push the engine toward playing the least-bad moves from 3 moves into a game and onward.