[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [computer-go] Computer Olympiad photo



>  My poor nameless go program searched 6 - 7 ply in 19x19 at 100-200Mhz
>  hardware a few years ago.
>
>  Yet that's pretty useless when a pattern takes 150 plies to show its use...

It sounds like you have a solution.   What is it?


Let's get some historical perspective using chess.


1. The earliest chess programs were  (or tried hard to be) positional.
   That is  because everyone "KNEW" that  chess had little  to do with
   tactics,  a lot  to do  with human  mastery and  understanding.  Of
   course they were lousy in all areas of the game (by our standards.)

2. The  programs made hillarious  tactical blunders  because computers
   could only do 1 or 2 ply searches.

   As  a consequence,  everyone "KNEW"  you  had to  have a  selective
   search.  A selective search, in  theory, would allow you to see far
   enough ahead to  avoid silly tactical errors, thus  allowing you to
   focus on the "real" game, not the distracting tactics.

3. The  experts kept  making fun  of the  programs, mostly  because of
   their ridiculous  positional errors although  their tactical errros
   were laughable  too.  We laughed  too, because we "knew"  there was
   nothing that  could be done.   A simple calculation showed  that it
   would take ENORMOUS  computing power to get even  1 more move ahead
   and it was obvious to even the stupidest of us that 2 moves was not
   even close to what we needed.   CHESS is a deep game for humans and
   not something  computers would ever  be good at.  (Does  this sound
   familiar?)

   At  the same  time,  we were  convinced  that to  even think  about
   progress we should be spending even more effort on highly selective
   programs.  These programs needed to  be incredibly smart to make up
   for  the lack  of computing  power (the  idea that  the  slower the
   computer, the  smarter it needs to  be is a stupid  idea which I'll
   explain later.)

4. A university  team decided  to write a  brute force  program.  They
   were frustrated  with attempts  to write smart  selective programs.
   SUPRISE!   The  program  was  amazingly  strong for  the  time  and
   dominated computer chess for a few years.

   Suddenly there was  a major shift in thinking.  For  a while it was
   all about  brute force and  selective search was  mostly discarded,
   even though everyone  knew brute force was not  the right approach.
   How could it be right?   That's now how humans play chess therefore
   it must be wrong.

   Still, at this point in time computers were weak.  5-6 ply searches
   was about  the depth the  fastest machines were achieving.   On the
   one hand  it was "very clear" that  brute force was not  the way to
   achieve  mastery  and  it  was  foolishly predicted  by  some  that
   computers had  reached a "conceptual barrier" where  they would not
   get any  stronger no  matter how fast  they got.  This  fallacy was
   based on the notion that  extra speed would not make them "smarter"
   in the  chess uderstanding sense of  the word and  that the tactics
   were pretty much irrelevant once they were "reasonably competent."

   People sometimes put  facts together in emotional ways  and come to
   wrong conclusions.  It was actually chess masters who were the most
   negative about  progress, perhaps because they  felt they possessed
   something no computer could match.

   The truth of the matter, in my opinion, is that humans are not very
   good at knowing  what it really takes to be  good at something.  We
   can become good  at things, but we cannot always  explain why or we
   get confused  about which skills  actually had the  most relevance.
   Chess programs  today are VERY GOOD  at chess, but  not for reasons
   that fit our ego-centric notions of how things should be.

   I remember one strong player pointing out a bad move a computer had
   made and  proclaiming that  no (USCF) 1600  player would  make that
   kind of error, and therefore the computer must be weaker than 1600.
   He did this  based on a single move observation.   It turns out the
   computer he  was talking  about had actually  achieved a  2000 USCF
   rating in the US.  People argued whether it was really that strong,
   but it  could certainly  take 1600 players  apart without a  lot of
   trouble.

   And yes, it  made some moves not worthy of a  1600 player, but then
   even  grandmasters  have  made   the  most  foolish  of  errors  on
   occasions.
   
5. After  the brute  force  era, selective  search  programs based  on
   estimating  a conservative bounds  on the  score began  to surface.
   Usually this was  in the form of NULL move  pruning, which was easy
   to implement and relatively safe.  These programs seemed to have at
   least a  50 rating point  edge and to  this day the  very strongest
   programs use this.
 

The term "selective" is like  the term "AI", when something labeled AI
loses it's magic, it gets redefined  so it's not called AI any longer.
Computer chess used to be called AI.  Computer GO is AI now because it
is "hard."   If computers ever  get really good  at GO it will  not be
called AI because it can't be intelligent if a computer can do it.

What lessons  have we  learned from  chess?  Do they  apply to  Go?  I
think they  do.  The lesson  I take away  is that we shouldn't  be too
quick to make assumptions about what will or will not work.

In the  old days of  computer chess, when  we were running with  2 MHZ
Z80's  we could  only achieve  2 or  3 ply  searches.  We  enjoyed our
programs anyway and laughed at  them, realizing no computer would ever
play even close to master chess.

Instead we  concentrated on what  worked the best.  Most  people stood
back  and criticized and  pointed out  why we  would not  succeed, but
others kept trying, just because it was fun.

We are doing that in computer Go.  

What I imagine happening in computer GO is a constant refinement
and perhaps a few major shifts in thinking over several decades.
Some of those shifts may simply be a response to what hardware is
avaiable and therefore what we can do with it.


Now, 

>   the idea that  the slower the computer, the smarter  it needs to be
>   is a stupid idea which I'll explain later.

Well then,  why don't we start using old fashioned slower hardware so
that can we write really smart programs?

Computer chess programs have  gradually gotten smarter, not dumber and
it seems like a natural course.  Yes, the searching is faster but most
of the software progress is based on more intelligent programs.

-Don

  










   The computer chess guys making 9x9 go programs will have the problem that
   the first few moves of the game can be decisive and they lack go knowledge
   there...

   At 17:26 3-12-2003 +0100, Erik van der Werf wrote:
   >Hiroshi Yamashita wrote:
   >> Dear all,
   >> 
   >> I put some photos of Computer Olympiad in Graz, 23-27 November.
   >> http://207.218.206.38/~admin82/photo/graz2003/graz2003.html
   >
   >Thanks!
   >
   >> Aya search 4-5 plies in 19x19, and 6-7 plies in 9x9.
   >> Nodes per second is 200-300 nps in 19x19 and 500-600 nps in 9x9
   >
   >Just to be sure, is this speed in nps and not knps?
   >
   >At 500 nodes per second it's still nowhere near what the chess guys are 
   >doing :-)
   >
   >Best,
   >Erik
   >
   >_______________________________________________
   >computer-go mailing list
   >computer-go@xxxxxxxxxxxxxxxxx
   >http://computer-go.org/mailman/listinfo/computer-go
   >
   >
   _______________________________________________
   computer-go mailing list
   computer-go@xxxxxxxxxxxxxxxxx
   http://computer-go.org/mailman/listinfo/computer-go

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