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

Re: [computer-go] Purpose of Neural-Nets?



> I  am working  on  the  principle  that the  better  your
> position evaluation,  the less  you need to  use search methods.  In a
> perfect world, if your position evaluation is good enough, your search
> need only be 1 ply deep.

I am a strong believer in scalability,  the ability to use arbitrarily
faster computers with more and more memory.

There are probably a million ways to  do this.  One way is to make the
evaluation  functions a  lot "better."   That's the  approach  you are
using.

The  question is,  How  much can  you scale  this  up?  If  you had  a
computer  a zillion  times faster  with a  zillion times  more memory,
could you build an evaluation function that utilizes this power?

I  think that  neural networks  scale pretty  well, so  it might  be a
feasible approach.   In principle,  given enough computing  power, you
could  build  the  killer  NN  that  would  solve  with  game  without
lookahead.   I'm  speaking  only  theoretically here.   A  big  enough
network would reduce to a lookup  table with the answers stored in the
network.


Here is a thought experiment:

  1. Most  good programmers  can write  a  perfect go  program, it  is
     trivial.   It would  always play  the best  possible move  on the
     board,  but  it would  take  billions  (actually  many orders  of
     magnitude more than this) of years to compute most moves.

  2. So for practical purposes, we should think of GO program strength
     as being  a function of how  much WORK and MEMORY  is required to
     play at an aribtrary strength.

  3. There  are an  infinite number  of possible  programs,  but let's
     consider  only those  programs that  run  on a  pentium and  play
     bug-free legal  GO given some  practical amount of memory,  say 1
     gigabyte.  Let's  also constrain these programs to  being able to
     produce a move  within a few seconds, let's say  10.  There are a
     finite number of these possible programs.

  4. How good  would the best of  these programs be?   Chances are the
     program would be  very hard to comprehend, but  what would be the
     main  operating  principle?   Would   some  kind  of  network  be
     implicitly coded into it?  What kind, if any, search would it do?

  5. Would the size  of such a program (code  + data) be significantly
     related to  it's strength?  In other  words, would be  best 1 meg
     program be a lot weaker than the best 1 gig program?

  6. Would the  speed of the computer  be a significant  factor in the
     strength?

In my  opinion, such a  program would be  quite strong, but  still far
from the best human players.   I also believe a significantly stronger
program exists (all possible  programs exist in the theoretical sense)
on faster computers and/or computers with more memory.

What do you think?

- Don

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