lichess.org
Donate

I am developping a neural-network based Chess engine

Hello everyone,

my goal is to develop an open source chess-engine based on deep learning.
I suppose you've all read about the results of Google's Alpha Zero.
Unfortunately, this one is not freely available.

In this topic, I would like to discuss with all of you (maybe also chess enthusiast developers) about the implementation of such an engine.

At this point, we need to define:
- the state of the game to effectively map to the input layer of the neural network (I suppose: at least piece positions ((1 + 6 *2) * 64 neurons, and maybe other information to be determined).
- the neural network architecture (probably a perceptron or a multi-layer perceptron)
- The learning strategy (back-propagation?)
- Also, the learning process: how to determine if a position is bad or not?. This should not rely on existing engines.

Please share your thoughts about this.
In general, a very interesting thing can turn out as follows.

let's take, for example, instead of psqt a combinatorial table of 2 3-cells.

such a table will be either 13x13 at 64x63 for 2 cells or
13x13x13 at 64x63x62 for 3 cells.

Suppose we have a statistical
a program that can derive the probability of a result as a database for any combination from 0.400 to 0.600 (for example, you can derive this from the ICCF database)

We fill the combinatorial table with the obtained values.

Given the "uniformity" of the chess game. We can get such a table for each [ply] from 0 to 200 (timelapse)
for the last [ply], all the values ​​of the tables can be reduced to 0.500

We get a curious set of tables, which in theory should allow to help play very strongly in the opening

by the principle score = score * probability * 2

I wrote about this in one of the forums, but so far no one has undertaken verification of this. Also it is interesting how much such tables can be useful without the engine and to what kind of plow

good luck with this, we will wait for the results
Hey,

this is interesting, but you still need to have that "statistical program". And if you base this on a database, then the resulting engine would play at best as good as that database.

Anyways, I am doing a small implementation of my idea. I still need to answer some theoretical questions, but we'll see how it goes. I'll let you know about the preliminary results.

Cheers.
Alpha zero did it completely differently and did not rely on external input or on an evaluation function.
It was just programmed with the set of rules of chess and then learned from a massive set of games against itself.
This way it re-invented opening theory for itself.
Hey @tpr,

that's what I am trying to achieve too.
I don't have the computing power nor the man power google has, but we're all here to share ideas.

Got any leads?
DeepMind was successful BECAUSE of it's sheer computing power combined with it's use of a Monte-Carlo tree search (MCTS) algorithm. How can you expect to achieve the same results without anything close to the resources of Google?

I will search for Googles post of the hardware used and post it. Here it is:

arxiv.org/pdf/1712.01815.pdf
If you want to implement deep learning, then you need the corresponding computer time.
I do not know how much man power you need to teach the rules of chess. This is probably the easier part, as you can take this from open source like Stockfish. I do not think you need that much man power. Houdini if I recall correctly was written by a single programmer.
Instead of an evaluation function Alpha Zero used self learning by playing a massive amount of games against itself. That you cannot do without.
The most interesting thing is that such a statistical program exists, but so far it is not fully tailored for similar statistical needs.

github.com/ebemunk/pgnstats
github.com/ebemunk/chess-dataviz

I'm not very good with the "go" programming language to fix it and neural networks, but maybe some complicated things are a bit simpler actually.

In any case, it would be interesting to see any results by any method
The entire point of the project was to exhibit that a computer can "self learn." No data bases, no evaluation function, no human programming except for the rules of the game. I think the OP is up against it thinking a "neural network" chess program (software) can replace traditional chess engines. What DeepMind accomplished (playing good moves in board games) is not transferable as a software tool, as no evaluation functions exist.
Ok, but it is necessary, some kind of working analog for pc, right !?

If to hammer all the tables in 0. and put them on the settings - we seem to get about the same thing without any evaluation function (I unfortunately do not know exactly what exactly alpha zero takes for 0 and 1, but according to the idea, it should do about the same most)

This topic has been archived and can no longer be replied to.