Hacker News new | ask | show | jobs
by spawkfish 3757 days ago
Hello, I'm the creator of spawkfish :)

The project is still in pretty early stages, so don't expect it won't take down any strong chess players yet, but I'm hoping that with a bit of effort it will be possible for neural networks to do for chess what they have recently done for Go.

3 comments

Very interesting! It played very natural, "human" positional moves and defended against most obvious threats. There was one exception, where it played a move that looked normal for the position--developing a piece in the opening--but it also hung the piece. That was the only serious blunder, every other mistake was in tactical lines more than one or two moves deep.

That seems to make sense for being trained by a NN, still impressive how well it was able to spot concrete threats! Thank you for sharing.

(My elo is 2150ish)

Thanks for your feedback!

I've noticed it making quite a few errors like the one you mention. I think that a little bit of search (say just one or two ply) will help a lot with avoiding this kind of mistake, because the network seems very good at recognizing when a piece is in trouble if you show it the position.

These types of engines always interest me. I have a few questions:

1) Is it open source? Link to github?

2) Is the architecture similar to the go engine?

3) is there an alpha-beta pruning search tree at the core? If so, is that part from an exising engine?

4) do you have an estimate of its elo rating?

5) are you training or have you trained on available data sets? Are you training on user games? Are opening and closing libraries used?

1) Its not open source. I'll consider releasing the code at some point when the project is more mature.

2) The Go engine has a lot of pieces I don't have yet. What I have is similar to the policy network from the Go engine, but right now I don't have anything like the value network or the rollout parts. Also,

3) The current engine has no search at all. Behind the scenes the network ranks all of the moves, and then I walk down the list and choose the highest ranked legal move. The top ranked move is almost always valid, but occasionally one or two need to be rejected. It's very very rare to need to search outside of the top 5.

Search is definitely on the agenda, but I am pleasantly surprised at how well it plays without it.

4) Not yet :)

5) I'm using kingbase for training data (http://www.kingbase-chess.net/)

A very interesting project.

One remark: although I'm admittedly a poor chess player, I managed easily to get a draw by threefold repetition even though Spawkfish could have avoided that easily (and still destroy me). Am I correct to assume Spawkfish don't take past moves into accounts?

Yes that is correct, and being tricked into draw by repetition is one of his current weaknesses :)