4 ms·
Really cool! How much work would it be to get this to work for chess?
by thethimble 9y ago
Really cool! How much work would it be to get this to work for chess?
- brilee 9y agoYou'd have to write a Chess implementation that very carefully respects all possible game-ending pathways, a translation of a chess board into an array that a NN could understand, and a schema by which to flatten the array of all possible moves (both legal and illegal) into a single vector. Then, the MCTS and RL portions would be identical.
- jimmytucson 9y agoSounds like this meets the requirements: https://github.com/niklasf/python-chess https://github.com/niklasf/python-chess > very carefully respects all possible game-ending pathways Not sure exactly what this one means but it implements a is-game-over method, so you could do MCTS with it. > a translation of a chess board into an array that a NN could understand Chess positions are represented by sets of 64-bit integers so I don’t think this would be a blocker. > and a schema by which to flatten the array of all possible moves (both legal and illegal) into a single vector The list of legal moves is a set of bitboards as well.
- dsjoerg 9y agoNot quite. python-chess is a wonderful library, and you would use it to do the things that your parent said. But python-chess on its own doesn't do those things.
- glinscott 9y agoCheck out https://github.com/glinscott/leela-chess https://github.com/glinscott/leela-chess. We are getting close to kicking off the distributed version now that we have validated it's possible to get a strong network through supervised training. A nice win against Gnuchess (a very weak opponent, but nonetheless :) - https://github.com/glinscott/leela-chess/issues/47#issuecomment-361174111 https://github.com/glinscott/leela-chess/issues/47#issuecomm...
- grondilu 9y ago> A nice win against Gnuchess Not sure why you guys don't show the PGN, but here you are: 1. e4 Nc6 2. Nf3 Nf6 3. Nc3 d5 4. exd5 Nxd5 5. Bb5 Nf4 6. O-O Bf5 7. d4 Nd5 8. Ne5 Qd6 9. Nxd5 Qxd5 10. Bxc6+ bxc6 11. c4 Qd6 12. Qf3 g6 13. Nxc6 Bg7 14. Bf4 Qe6 15. Rfe1 Qxc4 16. Rxe7+ Kf8 17. Rae1 Kg8 18. b3 Qc2 19. Qd5 Be6 20. R7xe6 fxe6 21. Qxe6+ Kf8 22. Bh6 Bxh6 23. Qf6+ Kg8 24. Ne7# Question : when you switch to self-play reinforcement learning, do you plan on starting from the networked obtained in supervised learning or tabula rasa? I understand starting from tabula rasa will require more comptuting power/time, but if you start from the supervised learning network, isn't there a risk you inherit human biases in the game style? It would also defeat the purpose of having the system discover existing chess theory and possibly new one.
- glinscott 9y agoWe are going to start tabula rasa. The supervised learning is meant to prove that there are no major bugs in the framework/learning process. Should be fun to watch it learn chess theory :).