user24615: I'm currently building a chess engine in my free time while entering my second year of my master's studies in computer science. For a class we need to perform a litterature survey of a topic and identify a research gap. I thought I'd kill two birds with one stone and research something relevant for the heuristic evaluation function of my chess engine.
What I want to do is to test the idea of using a convolutional neural network autoencoder to extract a feature vector (10-20 features maybe?) from chess boards. My idea is to encode positions in 8x8 arrays with each layer containing zeros or ones for each colour and piece, i.e. one layer for white pawns, one for black knights etc. Possibly it would also be good to have a layer indicating whose turn it is to move, and maybe 12 additional layers for possible squares of attack for the different pieces.
I can find tons of articles using convolutional neural networks for chess state evaluation (when searching scopus and google scholar), but nothing about using autoencoders. My idea is to append custom features (features that might be difficult for a CNN to find) in addition to the autoencoded features, and then feed all features to a new model. Has this been done before? If so, can someone point me in the direction of some attempts at this?
People who are versed in chess and in CNNs, what features for a chess board are difficult for CNNs to automatically detect, that would benefit from some custom feature engineering alongside an autoencoder?
Also, can someone see some obvious weakness with this approach, or does it seem like a sound idea?

user26181: I'm very late but I am working on something similar. Here are are a couple of resources that involve using autoencoders.

https://chessvschessproject.wordpress.com/

https://arxiv.org/abs/1711.09667

https://github.com/oripress/DeepChess
Hope they help! Let me know how it goes.

24615: <p>I'm currently building a chess engine in my free time while entering my second year of my master's studies in computer science. For a class we need to perform a litterature survey of a topic and identify a research gap. I thought I'd kill two birds with one stone and research something relevant for the heuristic evaluation function of my chess engine.</p>
<p>What I want to do is to test the idea of using a convolutional neural network autoencoder to extract a feature vector (10-20 features maybe?) from chess boards. My idea is to encode positions in 8x8 arrays with each layer containing zeros or ones for each colour and piece, i.e. one layer for white pawns, one for black knights etc. Possibly it would also be good to have a layer indicating whose turn it is to move, and maybe 12 additional layers for possible squares of attack for the different pieces.</p>
<p>I can find tons of articles using convolutional neural networks for chess state evaluation (when searching scopus and google scholar), but nothing about using autoencoders. My idea is to append custom features (features that might be difficult for a CNN to find) in addition to the autoencoded features, and then feed all features to a new model. Has this been done before? If so, can someone point me in the direction of some attempts at this?</p>
<p>People who are versed in chess and in CNNs, what features for a chess board are difficult for CNNs to automatically detect, that would benefit from some custom feature engineering alongside an autoencoder?</p>
<p>Also, can someone see some obvious weakness with this approach, or does it seem like a sound idea?</p>
 26181: <p>I'm very late but I am working on something similar. Here are are a couple of resources that involve using autoencoders.
<br>
<a href="https://chessvschessproject.wordpress.com/" rel="nofollow noreferrer">https://chessvschessproject.wordpress.com/</a>
<br>
<a href="https://arxiv.org/abs/1711.09667" rel="nofollow noreferrer">https://arxiv.org/abs/1711.09667</a>
<br>
<a href="https://github.com/oripress/DeepChess" rel="nofollow noreferrer">https://github.com/oripress/DeepChess</a></p>
<p>Hope they help! Let me know how it goes.</p>
