[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Programs learning to play Go
Dave Dyer wrote:
> My observation on NN based learning is that the few cases where
> they have worked well involve situations where choosing one of a
> few alternatives based on a few inputs is the mode. The prototype
> success story is Backgammon.
Yes. Choosing the inputs carefully is very important. It's just about
as difficult to decide what the inputs to a neural net should be, as it
is to write a program that doesn't use NN anyway.
> Go doesn't really fit this model. Throwing 361 inputs and outputs
> at a naive network, and expecting it to learn anything, is like
> throwing a pail of sand into an oven and expecting silicon chips
> to emerge. Not fucking likely.
I agree, but please say "bloody". This is a family mailing list.
> #1: if you must try a pure learning technique, start with a reduced
> domain; 3x3 or 4x4 is a good place to start. Achieve percect play
> on 4x4, then work your way up.
You can also reduce the domain by observing only expert play, instead
of observing random play.
> #2: after you conclude that you'll never get perfect play on a 5x5
> board because the domain is too complicated (my prediction), adopt
> a more pragmatic approach. Explicitly determine the fundamantals
> of the board (like group size and liberties) and concentrate your
> learning on things that actually need to be learned.
Yes. As I am fond of repeating over and over, "it's difficult to
decide what to measure." And if you _can_ decide what to measure,
then you probably don't need neural nets anyway. (But they would be
harmless, and perhaps interesting.)
> The reason Go is so intractable to simple learning paragigms
> is that many levels of abstraction are necessary to understand
> a position; and there are strong interactions both within and among
> abstraction layers. Whether group A in the nothwest corner of
> the board is safe depends on whether isolated stone B on the opposite
> corner is 2 or 3 spaces away from stone C on the third line. And
> so on.
I have to agree with this too. Behavior in go is a context-sensitive
grammar, for the most part. Of course, one can make use of a catalog
of tesuji, or ladder-readers, or tsume-go solvers, and so on, to clarify
these local issues, but then, how to fit the solutions to local problems
together into a comprehensive global strategy is a bit more challenging.
All that said, it may yet be that there is some set of suitable metrics
-- as yet undetermined, I reckon -- that would be appropriate for a NN
to learn the answer to a question like "Where would Go Seigen play in a
situation like this?"
So, I'm not ready to throw the baby out with the bathwater: I think
that NNs may have their uses, provided one chooses the inputs carefully.
Dave's "strong interactions both within and among abstraction layers"
hits the mark. It's likely necessary to define, and to measure, just
what those interactions are, before a neural net will be of much use.
Rich