gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] Revise TODO?


From: Gunnar Farnebäck
Subject: Re: [gnugo-devel] Revise TODO?
Date: Fri, 09 Nov 2007 21:00:27 +0100
User-agent: Mozilla-Thunderbird 2.0.0.6 (X11/20071008)

Ben Lambrechts wrote:
  * Fuseki tuning by hand is difficult. People who are interested
    in doing machine learning experiments with GNU Go could try
    working with fuseki. This may be one of the areas with most
    potential for substantial and reasonably quick improvements.

Very interesting and I think it's doable in the near future.

Can this be done by analysing fuseki from sgf-files?

I am thinking about pro games (like Go4Go Database) and strong-amateur games
(like http://u-go.net/gamerecords/)?

Yes, it can.

Actually we already have fuseki databases created from games by strong
players but these use full-board patterns. That's useful too, especially
for providing variability in the play, but limited to only a few moves
into the fuseki.

What we need now is a generalization to smaller patterns (than
full-board). We do have a number of fuseki patterns in
patterns/fuseki.db but evaluation of the moves generated from those
patterns is rather crude and terribly difficult to tune.

In my opinion all the hints we need to get further with this can be
found in Rémi Coulom's paper "Computing Elo Ratings of Move Patterns in
the Game of Go", which can be found at
http://remi.coulom.free.fr/Amsterdam2007/

A reasonably simple approach would be to use just the patterns we
already have in patterns/fuseki.db. Play through a collection of games
to collect statistics of matched fuseki patterns and use Rémi's
algorithm to compute pattern values. Then when move generation
(unmodified so far) finds a move matched by a fuseki pattern, use the
new pattern values to make a new choice from all matched fuseki patterns
in the position. More ambitious would be to also learn new patterns from
the games.

This can be split into a number of subtasks:

1. Add support to collect pattern statistics. Cleanest would be to have
an external program which detects interesting matched patterns from the
appropriate debug output and writes them to file in a convenient format
for further analysis. If this is too slow it may be necessary to patch
directly into the pattern matching code.

2. Perform the collection of pattern statistics.

3. Write a program which takes pattern statistics and computes Elo
pattern ratings as described in the paper.

4. Add the new values to the fuseki patterns.

5. Revise the move generation code as outlined above.

/Gunnar




reply via email to

[Prev in Thread] Current Thread [Next in Thread]