@Jayeffect said in #60:
I have actually spent time on this and I actually have no idea the best way to calculate a brilliant move. The algorithm for this is a mystery to me, I have tried to think about how chess.com does it and sometimes brilliant moves are super obvious (Greek gift is often brilliant, or leave a piece hanging for mate in 3, but these are not brilliant really).
So if you have suggestions, I would be open to it.
@Jayeffect said in #60:
>
I have actually spent time on this and I actually have no idea the best way to calculate a brilliant move. The algorithm for this is a mystery to me, I have tried to think about how chess.com does it and sometimes brilliant moves are super obvious (Greek gift is often brilliant, or leave a piece hanging for mate in 3, but these are not brilliant really).
So if you have suggestions, I would be open to it.
I would be very interested in this discussion as well. LiChess Tool has an algorithm that kind of works, but it's really buggy at the moment and very simple.
BTW, Chesscom's algo maximizes engagement, not impressive moves. And it is also very buggy.
I would be very interested in this discussion as well. LiChess Tool has an algorithm that kind of works, but it's really buggy at the moment and very simple.
BTW, Chesscom's algo maximizes engagement, not impressive moves. And it is also very buggy.
@TotalNoob69 said in #62:
Yes, I would be curious to discuss this, as I have done some mapping, but it is hard, as humans cannot actually agree on a brilliant move definition, so coding it is pretty tough.
@TotalNoob69 said in #62:
>
Yes, I would be curious to discuss this, as I have done some mapping, but it is hard, as humans cannot actually agree on a brilliant move definition, so coding it is pretty tough.
First of all, there are multiple types of brilliant moves. So basically you need a host of separate algorithms.
As I am using only client resources and no chess database, I couldn't fine tune the algorithm, but I imagine the best solution for a relatively objective solution is:
- create a LARGE database of games with CAREFULLY annotated brilliant moves
- create a series of formulas that compute various elements that we feel are related to brilliance
- train a model positively on the annotated brilliant moves and negatively on all the others, using the metadata from the formulas above (this doesn't have to be a complicated NN, it can even be a SOM or something like this)
- decode the resulting model results to get to principles that can determine the algorithms to use.
Unfortunately, the first step is both necessary and extremely difficult to achieve, especially by devs. This should come from the chess community.
P.S. assuming you clearly define the clusters of brilliant moves based on the metadata, there is another step that aggregates the results. A move could be brilliant for multiple reasons! Wouldn't that be cool?
First of all, there are multiple types of brilliant moves. So basically you need a host of separate algorithms.
As I am using only client resources and no chess database, I couldn't fine tune the algorithm, but I imagine the best solution for a relatively objective solution is:
- create a LARGE database of games with CAREFULLY annotated brilliant moves
- create a series of formulas that compute various elements that we feel are related to brilliance
- train a model positively on the annotated brilliant moves and negatively on all the others, using the metadata from the formulas above (this doesn't have to be a complicated NN, it can even be a SOM or something like this)
- decode the resulting model results to get to principles that can determine the algorithms to use.
Unfortunately, the first step is both necessary and extremely difficult to achieve, especially by devs. This should come from the chess community.
P.S. assuming you clearly define the clusters of brilliant moves based on the metadata, there is another step that aggregates the results. A move could be brilliant for multiple reasons! Wouldn't that be cool?
@HollowLeaf said in #61:
I have actually spent time on this and I actually have no idea the best way to calculate a brilliant move.
Nor do I—The vastness breaks me to shivers
The algorithm for this is a mystery to me, I have tried to think about how chess.com does it and sometimes brilliant moves are super obvious (Greek gift is often brilliant, or leave a piece hanging for mate in 3, but these are not brilliant really).
So if you have suggestions, I would be open to it.
Ear regardless tard suggestsies
- measure brilliance proportional to total results of the game in which it is played
- appraise brilliance by cleverness divided by visibility
You're welcome
@HollowLeaf said in #61:
> I have actually spent time on this and I actually have no idea the best way to calculate a brilliant move.
Nor do I—The vastness breaks me to shivers
> The algorithm for this is a mystery to me, I have tried to think about how chess.com does it and sometimes brilliant moves are super obvious (Greek gift is often brilliant, or leave a piece hanging for mate in 3, but these are not brilliant really).
>
> So if you have suggestions, I would be open to it.
Ear regardless tard suggestsies
- measure brilliance proportional to total results of the game in which it is played
- appraise brilliance by cleverness divided by visibility
You're welcome
@TotalNoob69 said in #64:
First of all, there are multiple types of brilliant moves. So basically you need a host of separate algorithms.
As I am using only client resources and no chess database, I couldn't fine tune the algorithm, but I imagine the best solution for a relatively objective solution is:
- create a LARGE database of games with CAREFULLY annotated brilliant moves
- create a series of formulas that compute various elements that we feel are related to brilliance
- train a model positively on the annotated brilliant moves and negatively on all the others, using the metadata from the formulas above (this doesn't have to be a complicated NN, it can even be a SOM or something like this)
- decode the resulting model results to get to principles that can determine the algorithms to use.
Unfortunately, the first step is both necessary and extremely difficult to achieve, especially by devs. This should come from the chess community.
P.S. assuming you clearly define the clusters of brilliant moves based on the metadata, there is another step that aggregates the results. A move could be brilliant for multiple reasons! Wouldn't that be cool?
Yeah, that is a huge undertaking, and creating a database is extreme, and not easy at all, especially just to identify brilliant moves.
I do have my own vps and was thinking of hosting some AI chess stuff for fun, but it is not easy to train a model. The issue is that unless there is a concrete definition, it is hard to get right, we probably approximate, but it is definitely food for thought.
@TotalNoob69 said in #64:
> First of all, there are multiple types of brilliant moves. So basically you need a host of separate algorithms.
> As I am using only client resources and no chess database, I couldn't fine tune the algorithm, but I imagine the best solution for a relatively objective solution is:
> - create a LARGE database of games with CAREFULLY annotated brilliant moves
> - create a series of formulas that compute various elements that we feel are related to brilliance
> - train a model positively on the annotated brilliant moves and negatively on all the others, using the metadata from the formulas above (this doesn't have to be a complicated NN, it can even be a SOM or something like this)
> - decode the resulting model results to get to principles that can determine the algorithms to use.
>
> Unfortunately, the first step is both necessary and extremely difficult to achieve, especially by devs. This should come from the chess community.
>
> P.S. assuming you clearly define the clusters of brilliant moves based on the metadata, there is another step that aggregates the results. A move could be brilliant for multiple reasons! Wouldn't that be cool?
Yeah, that is a huge undertaking, and creating a database is extreme, and not easy at all, especially just to identify brilliant moves.
I do have my own vps and was thinking of hosting some AI chess stuff for fun, but it is not easy to train a model. The issue is that unless there is a concrete definition, it is hard to get right, we probably approximate, but it is definitely food for thought.
If you try to make a database of information, please, pretty please, don't just remember the cp eval, but the cp eval for each depth.
If you try to make a database of information, please, pretty please, don't just remember the cp eval, but the cp eval for each depth.
@HollowLeaf no we cant paste pgn file content..please please add option to upload pgn file...then it automatically takes all games of that file.please
@HollowLeaf no we cant paste pgn file content..please please add option to upload pgn file...then it automatically takes all games of that file.please
@vishal3029 said in #68:
@HollowLeaf no we cant paste pgn file content..please please add option to upload pgn file...then it automatically takes all games of that file.please
Yes, I will allow for the uploading of files, can you not see the load PGN button?
@vishal3029 said in #68:
> @HollowLeaf no we cant paste pgn file content..please please add option to upload pgn file...then it automatically takes all games of that file.please
Yes, I will allow for the uploading of files, can you not see the load PGN button?
otherwise just use https://www.chessigma.com