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

Re: computer-go: FPGA



It's certainly possible to make a program read more when given more
resources, but most likely in Go the gain in playing strength will increase
only so marginally, that it may be hard to measure.

Hoping that increase in computer-power will automatically give a good
go-program is a lazy thought. I also think it's not realistic, at least not
until someone finds a good way to make a good self-learning program. With
the power of computers today there's still so much possible, so much to do
to improve a programs play. The main problem is one of man-power. How to
find enough computer-programming resources to make a better go-program.

There is a good, fairly simple way to use the increase of computer power.
Almost fifteen years ago I realised that almost all go-programs at that time
were based on a little bit of tactical search and a large collection of
heuristic rules. So I decided to focus on whole-board evaluation and a
planner and let a sub-program generate moves with heuristic rules, much like
the other programs did. Even though its lookahead algorithm was initially
rather poor, the fact that it actually did lookahead in a way other programs
played gave it a significant advantage over programs without such lookahead.
Today, computers are fast enough that it would be feasible to make an even
more sophisticated evaluation function and an even more sophisticated
planner and use a Go program of about ten years ago to produce candidate
moves for lookahead. Just as the original program only looked at at most a
few hundred moves using hardware of ten year ago, the new program could use
the old one to do a selective lookahead of a few hundred moves using todays
computers. It doesn't come as easy as just increasing the amount of
lookahead, one still needs to make the new evaluation and planning programs,
but at least I believe that's a very feasible way to improve upon todays
programs without having to start from scratch. And when done properly, maybe
in ten years this process can repeat, building layer upon layer of ever more
sophisticated computer-go algorithms.

    Mark Boon


----- Original Message -----
From: Don Dailey <drd@xxxxxxxxxxxxxxxxx>
To: <computer-go@xxxxxxxxxxxxxxxxx>
Sent: Wednesday, August 30, 2000 7:21 PM
Subject: Re: computer-go: FPGA


>
> That's a good understandable answer.
>
> I have always believed that  any program should be  designed in such a
> way  that  it is   GUARANTEED  to  improve with   increasing computing
> resources.  I think you accomplish  this indirectly by simply changing
> your program over  time to adopt to the  latest and greatest hardware.
> If you are not  doing this, then your  program must be returing a move
> more quickly as computers get faster.
>
> But I do  think this is  a desirable characteristic  for a  program to
> have, if only we can figure  out how to do it.   But I concede that it
> may be very difficult to do this well.
>
> The most obvious way  is to add to the  search, but it's not clear how
> to  do this effectively in  go.   Still it might be  useful  to take a
> quick look at what happened in computer chess:
>
> In the early days  of computer chess,  no one believed that looking  a
> little deeper would  make any  difference,  it just seemed counter  to
> intuition.   The very  first computers were  happy to  do  2  or 3 ply
> searches and when they made bad moves  people laughed their heads off.
> It was "easy" to see that looking a ply  deeper just wouldn't make any
> difference because chess  was "just  way too  strategic."   But it was
> soon  proven  that this was actually  a   totally false assumption.  A
> computer doing 4 ply would totally crush a computer doing 3 ply!
>
> What was  being  overlooked was that  a   single extra  ply  presented
> numerous opportunities to avoid bad  moves, opportunities the previous
> versions were oblivious to.  But human observers still focused on what
> it couldn't do, and when  a bad move  invariably came along, it seemed
> like absolute proof  that nothing had  "really"  or fundamentally been
> improved.  And  yet that extra  ply really put the  machine in a whole
> new playing class which  was discovered when people actually attempted
> to measure the improvement!
>
> Does any of this apply  to go?  I suspect  that one extra ply of  full
> width depth would    improve the program, perhaps   significantly even
> though it  might  appear that nothing   happened because this wouldn't
> come close  to solving the  most laughable problems.   But  even if it
> did, this is very  expensive considering the enormous branching factor
> of go.
>
> But in the early days of computer chess, we  very often identified the
> wrong  problems to solve first and  actually chose  the ones that were
> the hardest to solve   and   returned the   least benefit.  The    big
> "breakhrough" was to simply do an efficient full width search and this
> turned  out to be  extremely effective  because it addressed important
> core problems, instead of worrying  about the romantic notions of deep
> positional insight which we were foolishly focused on back then.
>
> I know a full width search is not feasible in this domain  and I am by
> no means suggesting it.  I just wonder if there is something simple we
> are  overlooking (in the same  way we missed  the "obvious" full width
> search in computer chess and denounced it for years before discovering
> it's power.)  If there is something like this  in go, it's not obvious
> at all, just as it wasn't back then in chess.
>
>
> Don
>