[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