[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Neural Nets: suggesting and evaluating
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).
(1) I did something like that which is described in my CG2002 paper. One
could also do this in a Q-learning framework.
2(a) In contrast this could be used in the TD-learning framework.
Both approaches seem valid.
2(b) isn't this the same as 1, or do you predict something else?
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.)
My approach would be: Take a large window and extract a reduced number
of features that emphasize the local structure.
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?
Regards,
Erik