Advertisement

ANN for Chess Evaluation?

Started by November 07, 2004 08:33 PM
3 comments, last by Sagar_Indurkhya 20 years ago
I was thinking you could use ANN for Chess board evaluation? Basically, you would have 12 64bit integer inputs, for bitboard representation of the board. Make the net about 10-15 layers deep. Once you get the training part done, you don't have to do error correction, meaning it will be fast.
Googling around I found:
http://www.avlerchess.com/chess-misc/Chess_Neural_Network_ANOTHER_VICTORY_FOR_OCTAVIUS_172428.html
Maybe that helps.
Advertisement
Clickmister

I don't think ann's are suited to it, there good at generalization, and that is NOT what you want your evaluation function to be doing!
(generalisation of positions, like a pawn at a2, a3, a4, are the same to it...)

The bits will not be very good. i recommend turning them into 12*64 binary inputs.

From,
Nice coder
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
An evaluation function is a function that computes an estimate for the expected result of the game. If you have a database of positions, with an associated result for each position (what really ended up happening), you can test how good an evaluation function is, by measuring the average quadratic error. If you use a parametric model for your evaluation function, you can fit the parameters to minimize the error. One common problem is that models with too many parameters will overfit your database. ANNs are just parametric models, often with way too many parameters.

Something that has more chances of success is defining several evaluation concepts (material, center control, king safety, pawn structure...), computing a linear combination of their values and finally passing the result through a sigmoid function. This is essentially what a single neuron (like the ones used in BPNs) would do, with the appropriate inputs. It is also called logistic regression.
Oh, cuz i was thinking that ANN's are good when there is no way you can effectivly generate a function for doing something, unless you are chess champion programmers, and basically, you are designing a function with a whole bunch of if statements.

This topic is closed to new replies.

Advertisement