Milos wrote:
Chess patterns are much simpler but chess is also much simpler game and therefore quality of chess play is for many orders of magnitude higher than quality of go play, or if you like much, much closer to perfection that level of go play.
Yes, you programmed a nice program using pattern recognition in evaluation, but take SF, strip it completely of its evaluation and replace it always with only lazy eval (material, pst and mobility) and it would still destroy your Giraffe. So the question is what is the point of some "advanced" evaluation when it is so inaccurate (and by inaccurate I mean it cannot discern reliably between couple of cp score difference that might make huge difference in selection a winning or losing move) ? How much is a slow down of your program due to calculation of the evaluation function.
I am guessing that if you took Giraffe, strip it completely of its "smart eval", use only material, pst and mobility and some endgame knowledge and pawn structure knowledge (so effectively extremely light evaluation) that it would beat current version of Giraffe comfortably.
So again, what is the purpose of that type of ML evaluation in chess, except as a student exercise? Deepmind is not working on chess not because it is easy, but because they know it's a lost cause. ML based evaluation chess will probably never beat classical approach.
Yes, that's exactly what I meant. Handwritten evaluation functions in chess are good enough that switching to a neural network (slightly better outputs but much slower) is a net negative.
I am not so sure about Giraffe with a simpler eval beating Giraffe. On CCRL Giraffe already beats many many engines that search 10-100x faster than it does (at around 2400 level). So there is certainly a lot of value in having a very good eval at that level, and it can certainly compensate for the speed loss to some extent, just not enough to get it to the top level.
Giraffe searches at about 140knps on my machine, compared to 1Mnps for Stockfish, and close to 3Mnps for Crafty (all single CPU).
I am still not entirely convinced that the AlphaGo/Giraffe approach (value and policy networks) cannot get to state of the art in chess, but I unfortunately don't have time to explore that anymore. Giraffe was just a crude first attempt. I really hope someone skilled in ML steps in and take it as far as it can go and see what happens.
Even if the AlphaGo/Giraffe approach doesn't work, there are still many possible machine learning approaches that can be explored.
Quoting myself from another thread -
Today's chess engines are terrible at generalizing and reusing results.
A human can see that a chess position is comprised of different patterns, many of which are independent, and results can be reused across different branches to massively cut down on branching factor.
Transposition tables are a very crude attempt to exploit this, but they require exact matches, which are very rare.
IMHO the next big breakthrough in computer chess will come when we have transposition tables (or something like transposition tables) that can do "fuzzy matches" to reuse results from different branches that don't have exactly matching positions.
This is obviously very difficult because of all the exceptions and special cases, and I don't really see any way of solving this without machine learning. We need a system that can extract the "essence" of positions, and use that to do matching instead.
I have some pretty concrete ideas on how to do this based on non-public information. A lot of that will become public at ICML in a few months.
Here is one possible starting point, if anyone wants to take a crack at it:
http://arxiv.org/abs/1410.5401
I think it's dangerous to say that chess nowadays is close to perfect. It's an easy illusion to have when we don't know any better. People thought the same with Rybka many years ago, and nowadays top engines are a few hundred ELOs stronger than early Rybka.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.