[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: computer-go: Neural Nets: suggesting and evaluating



On Tuesday, July 29, 2003, at 02:47  AM, Erik van der Werf wrote:

Peter Drake wrote:
It appears that there are two obvious ways to use a neural network in a very simple Go program:
1) Take the board as input and output a value for each potential move. The move with the highest rating is the move considered best by the network.
2) Take the board as input and output either (a) the value of the board or (b) the value of each point on the board. To choose a move, do global search (usually 1-ply, conceivably deeper).
2(b) isn't this the same as 1, or do you predict something else?
In 2(b), I meant predicting who would end up controlling each point on the board; under Chinese scoring, we just have to add these up to get the score. In 1, the idea was to estimate the score that would result from moving at each point.

Our current evaluator network has one input unit and one output unit for each point on the board, and a number of hidden units. Rather than do deep thinking about how the hidden units should be divided into layers, we let each hidden unit take input from all of the input units and all previous hidden units, so that the hidden units form a sort of column with weights coming from all previous layers.
We had been looking at small windows on the board, but this has two problems:
1) Vital connectivity and eye information may not be available within the window.
Even if the full board is available your network will most likely not succeed in learning the long distance connectivity relations, at least if you use a raw representation. (Remember that Minsky & Papert showed connectedness to be of unbound order.)
It's not quite raw (we tell it about things like chain size, Benson life, and number of liberties), but more information could certainly be added.

2) A lot of time is wasted recomputing the same information over and over again.
If it's really the same information why can't you just store it in a cache?
Well, it's not EXACTLY the same information, but I imagine the hidden units for a network looking at a window around d3 are computing a lot of the same information as those in a network looking at a window around d4.

Peter Drake
Assistant Professor of Computer Science
Lewis & Clark College
http://www.lclark.edu/~drake/