Time Control 3m + 2s. 50 Rounds 4 Core Book Fischer Random. 1024 Mb Hash 7 man tablebases.
Add a specific FRC correction from classical to NNUE
our net currently is not trained on FRC games, and so doesn't know about the important pattern of a bishop that is cornered in FRC. This patch introduces a term we have in the classical evaluation for this case, and adds it to the NNUE eval.
mwyoung
Posts : 880 Join date : 2020-11-25 Location : USA
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Fri Mar 19, 2021 11:59 pm
The new Stockfish FRC patch is just crushing the field. Against the best FRC engines currently out. A successful patch looks to be an understatement.
Ray
Posts : 38 Join date : 2020-11-26
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 7:10 am
Yes, I'm running it as chess960 also, stunning performance so far. The +40 Elo is probably right.
Ray
Posts : 38 Join date : 2020-11-26
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 12:15 pm
Apologies to hijack your thread, but my testing has completed and I have the same assessment !
Posts : 1254 Join date : 2020-11-17 Location : France
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 1:50 pm
I took a very quick look, there only appears to be a change made to the classical evaluation, the NNUE looks untouched. Ok it’s checks if B on corner and applies a rough penalty depending on blocking pawn and if the blocking pawn is blocked..
// An important Chess960 pattern: a cornered bishop blocked by a friendly // pawn diagonally in front of it is a very serious problem, especially // when that pawn is also blocked. if ( pos.is_chess960() && (s == relative_square(Us, SQ_A1) || s == relative_square(Us, SQ_H1))) { Direction d = pawn_push(Us) + (file_of(s) == FILE_A ? EAST : WEST); if (pos.piece_on(s + d) == make_piece(Us, PAWN)) score -= !pos.empty(s + d + pawn_push(Us)) ? CorneredBishop * 4 : pos.piece_on(s + d + d) == make_piece(Us, PAWN) ? CorneredBishop * 2 : CorneredBishop; }
mwyoung likes this post
mwyoung
Posts : 880 Join date : 2020-11-25 Location : USA
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 6:23 pm
Ray wrote:
Apologies to hijack your thread, but my testing has completed and I have the same assessment !
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 9:10 pm
Chris Whittington wrote:
I took a very quick look, there only appears to be a change made to the classical evaluation, the NNUE looks untouched. Ok it’s checks if B on corner and applies a rough penalty depending on blocking pawn and if the blocking pawn is blocked..
// An important Chess960 pattern: a cornered bishop blocked by a friendly // pawn diagonally in front of it is a very serious problem, especially // when that pawn is also blocked. if ( pos.is_chess960() && (s == relative_square(Us, SQ_A1) || s == relative_square(Us, SQ_H1))) { Direction d = pawn_push(Us) + (file_of(s) == FILE_A ? EAST : WEST); if (pos.piece_on(s + d) == make_piece(Us, PAWN)) score -= !pos.empty(s + d + pawn_push(Us)) ? CorneredBishop * 4 : pos.piece_on(s + d + d) == make_piece(Us, PAWN) ? CorneredBishop * 2 : CorneredBishop; }
Yes this changes is only of very limited help with FRC. And it seems with more time, or cores in testing. Even the current NN are able to correct this issue with more search.
We need a FRC trained net. But I guess this is still very hard to do. As you must train the net in all of the 960 starting positions. As each opening position would have its own unique opening development issues. That the NN would need to understand.
Current results +13 Elo with more time and cores. Way under the +40 Elo with 1 core testing.
Mclane
Posts : 3022 Join date : 2020-11-17 Age : 57 Location : United States of Europe, Germany, Ruhr area
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 9:43 pm
Stockfish. Why ?! Stockfish or crafty or fritz. Same procedure as every year.
mwyoung
Posts : 880 Join date : 2020-11-25 Location : USA
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sat Mar 20, 2021 11:15 pm
Posts : 1254 Join date : 2020-11-17 Location : France
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament. Sun Mar 21, 2021 10:53 am
mwyoung wrote:
Chris Whittington wrote:
I took a very quick look, there only appears to be a change made to the classical evaluation, the NNUE looks untouched. Ok it’s checks if B on corner and applies a rough penalty depending on blocking pawn and if the blocking pawn is blocked..
// An important Chess960 pattern: a cornered bishop blocked by a friendly // pawn diagonally in front of it is a very serious problem, especially // when that pawn is also blocked. if ( pos.is_chess960() && (s == relative_square(Us, SQ_A1) || s == relative_square(Us, SQ_H1))) { Direction d = pawn_push(Us) + (file_of(s) == FILE_A ? EAST : WEST); if (pos.piece_on(s + d) == make_piece(Us, PAWN)) score -= !pos.empty(s + d + pawn_push(Us)) ? CorneredBishop * 4 : pos.piece_on(s + d + d) == make_piece(Us, PAWN) ? CorneredBishop * 2 : CorneredBishop; }
Yes this changes is only of very limited help with FRC. And it seems with more time, or cores in testing. Even the current NN are able to correct this issue with more search.
We need a FRC trained net. But I guess this is still very hard to do. As you must train the net in all of the 960 starting positions. As each opening position would have its own unique opening development issues. That the NN would need to understand.
Current results +13 Elo with more time and cores. Way under the +40 Elo with 1 core testing.
It ought not be too problematical to train for FRC, just have to more or less start again. A bore, but doable.
Sponsored content
Subject: Re: Stockfish FRC Correction from Classical to NNUE Testing Tournament.
Stockfish FRC Correction from Classical to NNUE Testing Tournament.