fabianvdW / FabChess

UCI compliant chess engine written in Rust
BSD 3-Clause "New" or "Revised" License
31 stars 6 forks source link

Add a KP table for the [ourKing][EnemyPawn] relation #82

Closed fabianvdW closed 4 years ago

fabianvdW commented 4 years ago

With this commit, we add a new type of evaluation parameter for FabChess: KP tables. KP stands for King-Piece and is a 64x64 big PSQT which can be updated incrementally. This structure is isomorph to a one layer NNUE network with only two neurons in the output layer. I was made aware that those KP tables can achieve good loss by Connor.

This commits adds the KP table for the relation of the king of each side and the enemy pawns. I mainly tried this first because we currently don't have any parameteres/concerning that area. The tuning code is updated to accomodate for KP tables. For now, there are still a lot of zeros in the table.

The table has only been trained for around 400 epochs. So future TODO's are:

Passed regression tests at OpenBench:

ELO | 14.23 +- 8.00 (95%) SPRT | 10.0+0.1s Threads=1 Hash=8MB LLR | 2.98 (-2.94, 2.94) [0.00, 5.00] Games | N: 4128 W: 1261 L: 1092 D: 1775 http://chess.grantnet.us/test/7798/

ELO | 12.67 +- 7.20 (95%) SPRT | 60.0+0.6s Threads=1 Hash=64MB LLR | 2.98 (-2.94, 2.94) [0.00, 5.00] Games | N: 4416 W: 1173 L: 1012 D: 2231 http://chess.grantnet.us/test/7800/

BENCH=9268205