AlvaroBegue wrote: ↑Tue Nov 28, 2017 8:37 pm
[I downloaded games from CCRL, took positions from those games and analyzed them with my program RuyDos. I saved positions on which the evaluation function was being called after searching 1000 nodes. I then labelled each position by running one very quick SF8-vs-SF8 game.
flok wrote: ↑Wed Jun 26, 2019 6:21 pm
Something I forgot to ask:
for
totalError += pow(value_from_fen - calculateSigmoid(eval_score), 2);
value_from_fen = 1.0 for 1-0, 0.0 for 0-1 and so on
but eval_score, should it be from the point of view of the fen-string? or from white? or...?
Obviously the sigmoid function (and therefore also eval_score) must represent a value from the same viewpoint as value_from_fen. Otherwise you would get a high "error" e.g. if value_from_fen = 1, it is black's turn, and your eval function returns a high score in favor of white so that the sigmoid function returns a value close to 0 (from black viewpoint).
Sven Schüle (engine author: Jumbo, KnockOut, Surprise)
flok wrote: ↑Wed Jun 26, 2019 6:21 pm
Something I forgot to ask:
for
totalError += pow(value_from_fen - calculateSigmoid(eval_score), 2);
value_from_fen = 1.0 for 1-0, 0.0 for 0-1 and so on
but eval_score, should it be from the point of view of the fen-string? or from white? or...?
Obviously the sigmoid function (and therefore also eval_score) must represent a value from the same viewpoint as value_from_fen. Otherwise you would get a high "error" e.g. if value_from_fen = 1, it is black's turn, and your eval function returns a high score in favor of white so that the sigmoid function returns a value close to 0 (from black viewpoint).
Ok, is what I thought to be honest but as the results are currently garbage, I wondered if I maybe did it wrong.
flok wrote: ↑Wed Jun 26, 2019 6:21 pm
Something I forgot to ask:
for
totalError += pow(value_from_fen - calculateSigmoid(eval_score), 2);
value_from_fen = 1.0 for 1-0, 0.0 for 0-1 and so on
but eval_score, should it be from the point of view of the fen-string? or from white? or...?
Obviously the sigmoid function (and therefore also eval_score) must represent a value from the same viewpoint as value_from_fen. Otherwise you would get a high "error" e.g. if value_from_fen = 1, it is black's turn, and your eval function returns a high score in favor of white so that the sigmoid function returns a value close to 0 (from black viewpoint).
It looks to me like you have a scale mismatch:
value_from_fen is in [0,1]
calculateSigmoid(eval_score) is in [-1,1].
Robert Pope wrote: ↑Wed Jun 26, 2019 7:18 pm
It looks to me like you have a scale mismatch:
value_from_fen is in [0,1]
calculateSigmoid(eval_score) is in [-1,1].
Are you sure? Because this is what the wiki says about it:
"Ri is the result of the game corresponding to position i; 0 for black win, 0.5 for draw and 1 for white win."