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

Re: computer-go: Insight of a human



> No, what he is talking about IS a plan. 
> ... 
> ...  etc.

> For this kind of thing it is important to work with a plan 
> ...
> ...  etc.

Of   course planning is  important  in any game.    But forgive me for
another diversion into computer chess ...

In  the early days  of  computer chess,  it was  extremely common  for
people, in a moment of deep inspiration,  to proclaim that the problem
was that computers didn't have the same ability to plan that human do!
It was repeated so much that it became  almost a mantra.  Back then it
was   also very  typical to  romanticize   the abilities of  the great
masters, making it seem as if they were in perfect control of each and
every move, almost as if they  knew from the  very opening what sqaure
they would mate their opponent on!

I am not  intending to trivialize the   importance of planning, but  I
think the  whole point was missed.  Some  projects were  launched with
the goal of creating chess programs that  made plans.  Typically, they
would examine the  board, apply some  rules defined by a meta-language
of  some sort and  the rules  would suggest  moves consistant with the
plan  or plans  determined by this  process.   In principal this seems
like a very good way to do things and  apparently mimicks the ways the
great masters do it!

What happened to these programs?  As  far as I can  tell, none of them
are  used today.  In  my   humble opinion,  chess  programs are   goal
oriented to  the extreme,  even more  so  than  humans are.   They are
totally focused on trying to the very  best of their ability, to REACH
the position   that   scores  the  very  highest   according  to their
evaluation function.  You might even say  they are "hell bent" to make
this  happen.  In fact, the term  "thinking  ahead" is synomonous with
"planning."

The problem  isn't   planning nor does  it  have  anything to  do with
planning.  What is  percieved  as  having  problems with  planning  is
really just a couple of things: weaknesses  in the evaluation function
(which DEFINE the plan) and limited horizon.

What ended up happening with these old planner type of programs, in my
opinion,  is  that really, they  were  just fancy and very complicated
ways of choosing an evaluation and doing selectivity.  It was bound to
fail because they were  doing it the hard way  so to speak.  What they
were doing was equivalent to what we do now, but  with a lot of layers
of distracting methodology getting in the way.

However, there IS a process that humans carry out that computers don't
do particularly well, and  there might be some  good research  here as
far as GO  is concerned (or even  computer chess.)  In fact there  has
been research  on this and  it's currently  done in  a kind of limited
way.  This process   is based on  visualizing your   goal, and working
backwards from  that.   This is exactly what  is done in chess endgame
databases,  but in this  application it's done  in  a very precise way
because the ending positions can be enumerated in an exact way.

But I think GO programs do this too in  a limited way.  Local tactical
searches  are a start   because  you are   visualizing a possible  end
result, which is capturing a string, and then tailoring a local search
to focus strongly on this goal.

But I'm not sure the general case is very  feasible in GO or in Chess.
It's just a guess, but I think  it's actually a  minor factor in chess
or go  play.   The very  best chess programs  seem to  do well without
having this special ability  that goes beyond their already  excellent
planning ability  and I believe that  human masters make little use of
it.   Yes, they know  what they want  to achieve and  they have a good
idea of  how to go about it,  but most of  this is  built in  to their
own personal evaluation function and pattern recognition facility.

Do you know what I think is far more important that all of this?  It's
the  ability to generalize effectively.  THAT  is  really what sets us
far apart from the stupid machines.  A  chess program will consult its
hash table  looking for an exact  match,  or it's book  looking for an
exact match,  and in this way  has better memory than  we  do.  But it
will never (todays  programs that is) look  into a  hash table, notice
that the current position is ALMOST the  same as another position that
is a  clean win, spend a little  time checking it  out and make use of
this new information!  Now if they could do that, we would really have
something awesome!!!

Of course,  someone will email saying  that wilcard pattern matches in
GO have  that characteristic!  Well, they do   and that is  probably a
very good thing!


Don