/* Chess engine */
Project Spectre
Chess gameplay has been widely studied in computer science for many reasons, while on the face of things chess might seem like a simple two player game, getting computers to play the game at a skill level higher than humans has only recently been achieved. The large branching factor has been a challenge to control and many papers have attempted to find novel solutions.
These solutions generally require significant computational resources. A solution to this problem was found by combining a neural network and a minimax search algorithm in order to reduce the branching factor of chess. The result being a new algorithm capable of high level human-like chess gameplay without the performance cost.
/* PLACEHOLDER IMAGE */
Status: In development
Language: Python
Environment: Google Colaboratory
Libraries: Tensorflow, Keras, Numpy, Python-Chess
Goals
The project aims to utilise convolutional neural networks to mimic professional human chess play while focussing on keeping the implementation computationally efficient. A variety of network structures will be tested and the most promising structure will then be paired with a minimax search algorithm with the aim to provide an increase in gameplay performance and human-like gameplay.
Design
The goal is to represent the chess board as a 12 channel image, with each channel being mapped to the 12 unique piece types on a chess board. Convolutional neural networks excel with feature extraction from images, so it hoped that the policy models will extract key features from piece position matrices and classify ideal moves for them, like how a convolutional image classifier can identify objects from images.
Results
The project produced a neural network not only able to play chess completely on its own but a hybrid decision algorithm which uses a neural network in combination with a decision algorithm to increase its gameplay performance.