First, my code is in no shape for sharing.

Some time back, I experimented with training a neural net to predict ownership 
maps from 9x9 board positions. I wasn't looking for a static evaluator; I 
wanted something to speed up my MCTS bot. I used my own engine to generate 
ownership maps for training and testing sets from various board positions. I 
won't list all the things I tried. I will say that I am disenchanted with the 
idea of using a net to estimate ownership maps. 

Perhaps the biggest problem came from an unexpected quarter. MC playouts are 
very fast and neural nets are a bit slow. (I am talking about the forward pass, 
not the off-line training.) In the short time it took to feed a board position 
to my net and get the results, I could have run enough MC playouts to obtain a 
better estimate of the ownership map. :/

===
(Ha! While I was writing this, Darren beat me to it.)
===

If I were to pick this up again, this is the next thing I would try. Instead of 
using the net to estimate the ownership map, I would try to use it to predict 
the bias in the map generated by the MC playouts. MC playouts rather 
consistantly underestimate the safety of lightweight shapes, screw up ladders, 
etc.. 

To train it, I would take the ownership map from treeless MC playouts, and as 
my oracle, I would use my best-so-far MCTS to produce the desired map. The net 
would try to learn the difference between the two. Optimistically, I would 
incorporate the network into the best-so-far MCTS and bootstrap the system.

Of course, I've swept some stuff under the rug here, but maybe it will trigger 
an idea.

- Dave Hillis


-----Original Message-----
From: George Dahl <george.d...@gmail.com>
To: computer-go <computer-go@computer-go.org>
Sent: Tue, 17 Feb 2009 12:27 pm
Subject: [computer-go] static evaluators for tree search



At the moment I (and another member of my group) are doing research on
applying machine learning to constructing a static evaluator for Go
positions (generally by predicting the final ownership of each point
on the board and then using this to estimate a probability of
winning).  We are looking for someone who might be willing to help us
build a decent tree search bot that can have its static evaluator
easily swapped out so we can create systems that actually play over
GTP.  As much as we try to find quantitative measures for how well our
static evaluators work, the only real test is to build them into a
bot.

Also, if anyone knows of an open source simple tree search bot
(perhaps alpha-beta or something almost chess like) for Go, we might
be able to modify it ourselves.

The expertise of my colleague and I is in machine learning, not in
tree search (although if worst comes to worst I will write my own
simple alpha-beta searcher).  We would be eager to work together with
someone on this list to try and create a competitive bot.  We might at
some point create a randomized evaluator that returns win or loss
nondeterministically for a position instead of a deterministic score,
so an ideal collaborator would also have some experience with
implementing monte carlo tree search (we could replace playouts with
our evaluator to some extent perhaps).  But more important is
traditional, chess-like searching algorithms.

If anyone is interested in working with us on this, please let me
know!  We have a prototype static evaluator complete that is producing
sane board ownership maps, but we will hopefully have many even better
ones soon.

- George
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to