[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Computer-Human Comparisons
From: "Churchill, Julian" <Julian.Churchill@xxxxxxxxxxxxxxxxx>
Date: Mon, 9 Dec 2002 15:47:34 -0000
Content-Type: text/plain;
charset="iso-8859-1"
Sender: owner-computer-go@xxxxxxxxxxxxxxxxx
Precedence: bulk
Reply-To: computer-go@xxxxxxxxxxxxxxxxx
Hi all,
I have spent sometime recently thinking about how I play Go. Of course I
know this will change as I improve (hopefully :)) I have generated a rough
framework of points that I usually go through in order without really
knowing I'm doing just that. Also the fact I'm in the process of writing a
Go playing program has brought me to a couple of posers:
1) How much do computer programs play like human Go players?
Just like in chess, there is very little similarity in how computers approach
the game and how humans approach it.
1a) And how far are they designed to play like human players rather
than computer players?
I think there is too much effort to make computers simulate the human
brain and play "like" humans. This is misguided (in my opinion)
because it ignores what few advantages the computer possesses. I have
seen this happen in tennis, where a player is taught to copy some
other persons style just because they are better, instead of
identifying and enhancing their own unique strengths and building on
that.
That doesn't mean we shouldn't explore human based techniques such as
pattern recognition, neural network based ideas and others, much has
been learned in many fields (including computer science) by imitating
nature. But we should just be careful not to get too hung up on this.
Even if we knew how to perfectly imitate the human brain, we know that
we don't have enough computing power to even imitated a housefly,
therefore we don't push the analogy too far. The real opportunity is
not to imitate a human, but to do some specialized task much better.
Kind of like the way computers can add and multiply numbers, faster
and better. But no one claims computers are smarter because of this.
It would be a step backwards to try to make computers add numbers like
humans and just plain stupid.
2) Is it desirable to have computer Go programs playing like human players?
i.e. Will we be able to create a Go program that excels at Go using
methods that computers are made for (look at Chess) or are the more
abstract human techniques essential?
I believe t's desirable to figure out how to make comoputer programs
play as well as possible without comparing to humans or anything else.
The human comparison is taken too far and is only useful in some vague
philisophical sense (or as a kind of "goal") to achieve. It's fun as
a goal, but it should stop there.
By the way, people keep using chess programs as some kind of measure
or example of success. I am a computer chess expert with many years
of experience and author of several world class chess programs and I
can tell you this: Chess programs over the years have not
fundamentally changed. Nothing really significant has been learned
and chess programs don't think like humans. I also don't subscribe to
the idea that computer chess programing techniques and algorithms have
been a "success." It's well known that brute force searching in chess
is misguided and that computers chess programs are incredibly stupid,
do not know how to plan and they approach the game from a severely
crippled and short sighted point of view. The problem is that we
don't know any other way, and this works the best (not good, just the
best we know right now.)
How is this any different in Go? Everyone compares them to humans and
admit that they stink, and then declare computer go techniques
unsuccessful, despite the fact that Go programs keep getting better
and better over time.
And that is the only difference. When you compare the current level
of play to human beings, you artificially measure success and failure
and that is bad. Depending on what you choose to pick on, both games
have been a total failure in AI, or they have both been a fine success
because we have seen good progress in both games.
Don
however current programs do appear to display a varying experience range
rather than a clear skill level. For example I think they can appear to play
to an average standard in the opening but at other times may make beginner
level mistakes that you would not expect from a human who played as the
program did in the opening.
I suppose only Go programmers will be able to answer 1a) but I would be
very interested in the answer. Looking back at my own attempts I have
discovered that the process of constructing appropriate algorithms to turn
into a program may have been distorted by the fact I was writing them to
become a computer program. Of course this was unintentional (and I'm unsure
whether it's a bad thing anyway), whilst I was simply trying to write a good
method for finding the best move given the algorithm, whether run on a
computer or by a human brain.
For question 2) I have been thinking that maybe it's a good idea to have a
computer program play like a human, since I expect my own 'algorithm' for
playing will change over time and so this simulation method could provide a
reasonable basis for a learning go playing program architecture. Of course
the implementation might be a stumper ;)
Any opinions or thoughts would be very welcome,
Julian Churchill