Hacker News new | ask | show | jobs
by S4M 4895 days ago
I have an idea of a project involving Machine Learning, applied to the game of chess:

You would need a large database of chess games and a program that can detect some features in a position (for example: "white are a pawn up", "black pawn structure is better", "black king is not safe", etc.).

The idea would be to see if some features in a position are making one side more likely to win. For example, we might find that being a piece up makes one side more likely to win, since the largest majority of the cases when one side had a piece up, it ended up winning.

But that's not an interesting result. What I would like to see if it's possible to discover features that are good for one side, and which we didn't know about.

I didn't have time to start anything about it, though.

1 comments

Have you checked out chess problems and go problems? They're usually presented in bulk in structured data. http://www.chessproblems.com/ I haven't look at any in a long time, but it at least should highlight some problems hard for humans, which implies something can be learned there, imho.
Thanks for the link, but that's not exactly what I wanted. The chess problem you are showing are some composition problem: someone creating a position where it is possible to checkmate in two moves, but the moves are very unintuitive and the position is completely unnatural, which is very hard for a human player to find the solution. A computer, on the other hand, will have no problem to find it by brute force.

What I want is something different: mining tons of games to learn new stuff about positional strength in chess. For example, assume that we don't know that a queen is stronger than a knight, and instead think that the two pieces have the same value. We would trade those two pieces more or less indifferently, resulting in lots of games where one side has a queen and the other side has a knight. Now, the program I would like to do will mine all those games and say "99% of the cases where one side had a queen and the other side had a knight were a win for the side with the queen". And we would be able to learn that a queen is stronger to a knight... Now obviously this example is too simple, but I would like to see if it is possible to learn some more subtle things.