Quote:
Originally Posted by lkasigh
So rather than learning to prefer 1.d4 over 1.f4, it would look at patterns in won games and lost games and notice that a configuration of empty f2 square and K on e1 (however that is encoded in the program) is correlated with losses, and thus underweight options leading to this configuration?
It seems counterintuitive that this could be so effective, since the number of potential patterns is astronomically high. But then again it's pretty much how humans learn and play chess, so who knows?
Yeah, that's basically it. The patterns it recognises are probably a fair bit more complex and abstract than that, but in the two games I've watched so far it has smashed Stockfish positionally, so it obviously has very good "understanding" of positional ideas.
That's not all it does though, it's still looking at 70,000 positions per second so it obviously does a bunch of lookahead. From what they said in the paper, one of the big advantages it has is that it tends to deeply investigate "candidate moves" and not waste its time on dead ends, which again is more human-like than an engine. It's basically an engine still but with a vastly improved (but slower) evaluation function.
It's not just how humans learn, by the way, it's also more or less how the brain does it. Artificial neural networks were modelled from how the brain works.
In the case of pattern recognition, it breaks the image down into pixels (probably larger pixels than the actual resolution of the image) and the color values of those pixels are the input to the neural network. "Line detection" is a trivial exercise for a pattern recognition machine, so it doesn't have to be hardcoded in. While hardcoding stuff in might be a help to the machine, it can also be a hindrance. Anything other than basic data given to the machine will tend to shape the outcome. For instance, you could supply information to the machine about weak pawns, but if you do that, it will latch on to that information and not find out about weak pawns itself. That might not be a good thing. For instance, it might turn out that pawn structures need to be considered holistically and that breaking them down reductively into things like "weak pawns" is the wrong way to go about it.
More is often not better with neural networks. For instance, if you create a gigantic, extremely high powered neural network and then give it a training set of 5,000 example letters so it can learn character recognition, with a neural network that powerful the result will be that it "overtrains" and learns to just recognise all 5,000 images. So instead of being like "a single circular line with a hole in the middle, that's the letter o" it's like "I recognise this, it's image #1,342 of my training set, which is an o". Then when you give it images it hasn't seen before, it has no clue. There's a balancing act to making it learn in a generalized way.
Last edited by ChrisV; 12-07-2017 at 11:29 PM.