deep-position-analysis
deep-position-analysis copied to clipboard
Enhancements to the script
Hi,
As promised, I would like to suggest some enhancements to this project:
- I think the biggest revolution in the chess world would be if we create an ensemble learning method for chess as well. What do I mean by this? Let's say we take the two top engines of today - Leela and Stockfish. What if we asked both Leela and Stockfish to vote on different moves in a position (by vote I mean both eval and the choice number - 1st choice, 2nd choice etc). This way we can extend this logic further:
a) Suppose both the engines agree on a move, then explore it deeper and keep it as top choice.
b) If there is a disagreement - go linearly and try to understand at what point the evals converge. If the eval is positive for the side that we want to do the analysis for (White/Black) then we keep the line, else we remove it.
c) This scenario also has this use-case - suppose there is a move by Leela, which is known for liking different ideas, that is not completely refuted by Stockfish, then explore that idea in further detail.
-
An extension of the 'chess voting classifier' that I proposed above - use multiple strong engines of today and order 3-4 moves based on individual votes. Do this for each level upto a certain depth in the search tree, then provide a final evaluation based on the top engine being used (Leela/Stockfish).
-
Right now your script is doing an exponential branching if I am not wrong - if depth is 2 then at the 1st level we have two nodes and then two children for each node correct? So what we can do is that we add another feature that does a linear search i.e. no branches - just give a single line up to a certain ply.
All the enhancements I am suggesting is based on different chess GUI I have explored like Aquarium IDeA, Chessbase DPA (which I currently use) and Extreme Chess Analysis of Banksia GUI. I don't know if we can do all this, but I thought that starting from something is better than starting from nothing.
Would love to know what you think of this. Please label this as an enhancement.
I really like this idea and I see no reason why it wouldn't be possible.
I think it would need a bit of work though, but nothing impossible. I tried to tidy the code base a few months ago and document everything, I will continue to do so in the following month. In the meantime, feel free to contact if you have any question.
Thanks for your response! Unfortunately, I am not a great coder, so not sure how much I can help you with this. But I will try to see what else can be done. What I can give you is a strong chess player's perspective. Please do comment here once you have tidied up the code base so that I can try again.