A couple of approaches immediately suggest themselves.
1. Train the neural net on a large number of position pairs consisting of current position and one move on. Have these move pairs assessed by an expert to identify which of the moves improved the position and which made it worse. Eventually, the NN should be able to discriminate between sound moves and unsound moves.
2. Train the neural net to recognise mate-in-ones. Then (forced) mate-in-twos, and so on.
These two policies should take care of the middle-game and end-game.
Hi there,
playing around with various Engines in the past, reading the discussions here in the forum and studying informatics myself i did quite a lot of thinking about computer chess recently. let me walk you through it:
so, chess engines have been evolving, as have the computers. 1996 is the well-known date were they reached a level that... can be called impressive. that was 14 years ago. computers double their calculation power roughly every two years (moores law). deep blue had 11 gflops, todays top is 1,7 Pflops (peta, meaning it is 100,000 times as fast as deep blue). STILL it seems to be a bit of a question if computer have surpassed man in the field of playing chess. (in some time, say a hundred years, given the current engines and the then-modern computers this challenge will be over using brute-force. but thats not really interesting, is it?)
why is that?
a point that is often stressed is the ability of humans to recognize patterns, in the game of chess that is, and accordingly plan 10-20 moves ahead. the computer can only branch down the tree and calculate more and more position, meaning the effort for to increase the depth only move in advance costs about 10 to 20 times more calculation time. not efficient.
but informatics face the exact same problem on many battlefields: speech recognition, handwriting recognition, understanding language (even the simplest sentences are years in the future for computers) etc. What do these problems have in common? they all circle around pattern recognition. humans excell at that, computers do not.
and because this fact is well-known there is a technologie (or a family of technologies) that is being used to solve these tasks: neural networks.
now, i have researched a bit, i had a basic lesson about neural networks, so i see some of the problems with it. the main challenge would be the mathematical nature of the chessgame itself: move a piece one field and the whole situation changes. its the other players move? whole situation changes. the input to these neural networks are not perceived as hard and binary as they are meant.
there are neural networks solving endgames (KR vs K) and similar tasks, networks that evaluate one specific position (without looking into the future directly, just perceiving a board with the pieces on it), but i did not find a single neural network playing the game as a whole.
now, whats to come? i personally strongly believe that the future will boost NN as we know them today, that the hardware will give us nearly limitless power. the question remains: how would a system like that work and would it function at all? would the network be able to produce valid moves at all?