machine-learningevaluationchessreinforcement-learningreward

Training of chess evaluation function


I am about to write a chess engine based on reinforcement learning. I'd like to train an evaluation function and figure out what are the weights of the board's most important features.

I'm not an expert of machine learning, I'm trying to learn from books and tutorials. In each tutorial, the reward is quite straightforward, often 1, 0, maybe -1, but there's no such obvious reward in chess (regardless the check-mate positions). For instance, assume I have a situation on the board. I make 10 (random) moves and at that point I should calculate the reward, the difference (or error) between the starting position and the current one. How to do such thing, when my only evaluation function is under training?

I'd like to avoid using other engines' scoring system, because I feel that would rather be supervised learning, which is not my goal.


Solution

  • You can't really do that directly.

    A few approaches that I can suggest: