Computer Chess & Neural Networks

Sort:
Arkinator

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?

artfizz

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.

Arkinator

somebody asked me about this topic a while back, so I will give an update.

Several things have happened since I have started this topic that lead me to the conclusion that lead me to the conclusion that neural networks are not very handy for adjudicating chess positions:

- computer chess as it is played today is very powerful. the engines rely on purely tactical skills to outmaneuvre players on a strategical level. Since neural networks are awfull for solving tactical problems they can to no extent compete with that. so purely putting one position through a giant network will yield no impressive results in playing strength. ever.

- i found at least one person who modified an existing chess engine (stockfish, in that case), and exchanged the built-in position analysis with a neural network. the result could still play chess, at about 1500 elo or so. that is only a very crude approximation, of course, and more interesting would be the comparison of calculated depth. or the competition with another engine at a fixed depth.

- modern chess engines pretty much only improve in searching, not in position analysis. the search algorithms are highly dedicated, featuring numerous tricks that by themselves only bring an improvement of say 20 elo. exchanging one of the core components in a system like that might or will bring repercussions that might weaken the engine a lot. also the network has to be perfectly balanced to fit the used search algorithm. the result is... well, its too complicated for me. both chess engines and neural network are highly complicated, the marriage might wreck some bright brains.

 

so: more of a theoretical thing right now. but one thing looks promising: chess engines dont scale very well on multiple processors(http://chessprogramming.wikispaces.com/Parallel+Search). 8 cores bring a speed up of 4.1, 16 of 4.6 (1994 robert hyatt). so on a 16-core computer the node count is pretty much maxed out already. this might free calculation time, which in turn could be used by more complex, eg nn-based, position analyzers.