RE: [computer-go] Testing Process

2009-09-29 Thread David Fotland
You have inspired me to put Many Faces back on cgos, both 9x9 and 19x19,
using just one core on each, so it doesn't take much of my computing
resources.  Testing against gnugo says going from 1 core to 4 cores is about
150 ELO for Many Faces.  I should be able to keep Many Faces on CGOS
indefinitely, but I won't watch it much, so please let me know if a restart
or crash drops it off so I can restart it.

I'd suggest you put Pebbles on 19x19 also.  My 19x19 engine is much stronger
than it was a year ago, while my 9x9 is about the same, so there is a lot of
progress to be made in playing go that can't be discovered on 9x9.

I test against gnugo for a fast opponent to give quick regressions after
every change, since I like to play 1000 games or more.  I use kgs to give a
variety of stronger opponents to find tactical flaws.

David

 -Original Message-
 From: computer-go-boun...@computer-go.org [mailto:computer-go-
 boun...@computer-go.org] On Behalf Of Brian Sheppard
 Sent: Monday, September 28, 2009 3:10 PM
 To: computer-go@computer-go.org
 Subject: [computer-go] Testing Process
 
 By now, I should probably find better reference opponent than
 gnugo... I wonder if to pick fuego or mogo... ;-) Strength is probably
 not _as_ important as the variety of techniques used in order to avoid
 selective blindness (that's why I don't like tuning by self-play),
 does anyone have a tip? Or do higher gnugo levels make much strength
 difference?
 
 Pebbles doesn't follow the norms, but I am very happy with my solution:
 just
 play constantly on CGOS.
 
 CGOS provides a range of opponents of different styles, including non-MCTS
 opponents that use neural networks or alpha-beta. You can play 140 games
 per
 day, which is plenty.
 
 You are right about selective blindness. Some programs, like GnuGo,
 regularly donate rating points to Pebbles. Others, like Valkyria, take
 those
 away. You need a range of opponents. Overall, CGOS gives a realistic
 measure
 of where you stand.
 
 I have some suggestions for effective use of CGOS for testing purposes.
 
 First, I don't aim to have the highest-rated program, because I am not
 caught up in the hardware race. Instead, I use a modest CPU and try to
 write
 good software. Some programs run on an 8-core processor, play exactly 100
 games (to get a non-provisional rating), lose only 10, and then disappear.
 The programmers must have good reasons for this, but running on elite
 hardware obscures flaws in the software, so it isn't for me. Even when
 Pebbles has better hardware, I will continue to run a version on CGOS
 using
 low hardware. I learn more from losses!
 
 Second, I run two identical copies of Pebbles. The other is called
 PebblesToo. Both copies run on the same dual-core machine, so they have
 the
 same performance over the long run. PebblesToo serves three purposes. One,
 it doubles the pace of data collection. This is far better use of the
 second
 core than playing twice as fast, IMO. Two, when Pebbles is matched up
 against Valkyria, PebblesToo is necessarily playing a weaker opponent,
 which
 provides a more balanced view. Three, Pebbles will get some self-play
 games,
 which are a necessary part of an overall testing strategy.
 
 Third, I run a version of Fuego that is a little below Pebbles. It is
 called
 fuego-0.4-slow. This program serves two purposes. One, it sucks up games
 against very low rated players (because CGOS favors pairings of equal
 opponents). Two, it provides a nearby program that is always available,
 so
 if Aya and Lingo are offline there is still an opponent of about the right
 level.
 
 Fourth, Pebbles plays a lot of 9x9 games. Such games give your program an
 intense tactical workout at 10 minutes per game. I assure you that no
 current program has adequate tactics. Most strong programs have opening
 libraries and run on much more powerful computers. When Pebbles defeats
 such
 an opponent, it is invariably because they overlook a tactical shot. IMO,
 programmers that disdain 9x9 are learning about flaws more slowly than
 necessary.
 
 Fifth, Pebbles saves two positions from every loss: the last position in
 which it thought it was winning (eval of the selected move = 50%), and
 the
 position in which it thought it had the greatest advantage.
 
 Pebbles regularly (~1 or 2 games per day) loses games where it thinks it
 will win 90% of the time. I always learn something by analyzing those
 games.
 
 Sixth and finally, CGOS is a community resource that is more valuable when
 it used more by more people. So use it! Run your program as often as
 possible. Pebbles has played ~16000 games. I rarely have new software, but
 Pebbles plays anyway.
 
 Following this process raised Pebbles by ~1200 rating points over a 6-
 month
 period, all on the same hardware. Pebbles now beats GnuGo by ~94% with no
 specific tuning towards that goal. If I targeted GnuGo, the percentage
 would
 run well over 100%. :-)
 
 But there are larger and higher goals. 

Re: [computer-go] Generalizing RAVE

2009-09-29 Thread Stefan Kaitschick

Here's a suggestion to extend RAVE to better handle it:
There are 20 points within keima distance of any point not close to the
edge.(5*5 without the corners)
When RAVE values are backed up, they are put into the category defined by
the previous opponents move.
(21 categories, 20 + other. All added up yield the normal RAVE value)


One more thought. I think the proximity heuristic should actually make this 
more effective, not less.
Because many moves are close to the last one, the uninformative other 
category gets less hits.
And an ordering of the close points in order of previous effectiveness 
should help guide the search more effectively.


Stefan

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] October KGS bot tournament: 19x19 boards, slow

2009-09-29 Thread Nick Wedd
The October 2009 KGS computer Go tournament will be this Sunday,
October 4th, in the Asian evening, European morning and afternoon,
and American night, starting at 08:00 UTC/GMT (09:00 BST) and
ending at 16:00 UTC/GMT (17:00 BST).

I have now accepted unofficial entries from
  Fuego   using the name 'FuegoAl', operated by Aloril
  GNU Go  using the name 'GnuGoAl', operated by Aloril
and hope to receive one from
  MoGousing the name 'CzechBot', operated by Petr Baudiš.

I welcome these, as I want to see these strong players take part, and
so, I believe, do the other entrants.  However they are all willing to
step down to make way for official entries from these same players,
particularly if the official entries are able to use more processor
power - Aloril's Fuego will be running on two cores and his GNU Go on
one.  I would even welcome unofficial entries for GNU Go and Fuego if
these would be able to use more processor power than Aloril can, and so
would he.

Nick

There will only be one division.  It will be an 8-round Swiss with
19x19 boards and 29 minutes each of main time.  It will use Chinese
rules with 7.5 points komi, and a fast Canadian Overtime, of 25
moves in 30 seconds. There are details at http://www.gokgs.com/tour
nInfo.jsp?id=481.

Registration is now open.  To enter, please read and follow the
instructions at http://www.weddslist.com/kgs/how/index.html. The
rules are given at http://www.weddslist.com/kgs/rules.html. Your
bot need not be strong to enter, indeed weak and new bots are
particularly welcome.

Please send your registration email (with the words KGS Tournament
Registration in the title) to me at maproom at gmail dot com
(converted to a valid address in the obvious way).

Nick

-- 
Nick Weddn...@maproom.co.uk
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


[computer-go] public test suite

2009-09-29 Thread Stefan Kaitschick
Every now and then somebody submits an interesting 9*9 problem, usually 
rendered in X and O.
Wouldn't it be great to have a public suite, lets say a directory with 
black to play and win sgf problems.

For quick testing there should be only one correct first move.
There could also be subdirectories for problem types.
Maybe CGOS could be expanded to send bots through the test batch.

Stefan

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] public test suite

2009-09-29 Thread Petr Baudis
On Tue, Sep 29, 2009 at 12:12:07PM +0200, Stefan Kaitschick wrote:
 Every now and then somebody submits an interesting 9*9 problem,
 usually rendered in X and O.
 Wouldn't it be great to have a public suite, lets say a directory
 with black to play and win sgf problems.
 For quick testing there should be only one correct first move.
 There could also be subdirectories for problem types.
 Maybe CGOS could be expanded to send bots through the test batch.

Fuego has a regression suite, which you can use together with
gogui-regress tool. I have been meaning to run my bot through it
for some time... :-)

Petr Pasky Baudis
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Testing Process

2009-09-29 Thread Petr Baudis
  Hi!

On Mon, Sep 28, 2009 at 04:09:31PM -0600, Brian Sheppard wrote:
 By now, I should probably find better reference opponent than
 gnugo... I wonder if to pick fuego or mogo... ;-) Strength is probably
 not _as_ important as the variety of techniques used in order to avoid
 selective blindness (that's why I don't like tuning by self-play),
 does anyone have a tip? Or do higher gnugo levels make much strength
 difference?
 
 Pebbles doesn't follow the norms, but I am very happy with my solution: just
 play constantly on CGOS.
 
 CGOS provides a range of opponents of different styles, including non-MCTS
 opponents that use neural networks or alpha-beta. You can play 140 games per
 day, which is plenty.

  I agree CGOS is great, and you prompted me to run my bot there again
;-) - I wonder how much ELO it will get.

  But CGOS is for a different purpose I think - finding out where your
bot stands in the long term; what I'm using my gnugo testing for is
quickly assessing value of various minor changes and many variants.
Getting pretty reliable estimate (400 games) takes just about 3-5 hours;
getting that on CGOS would take few days, which is a lot less
convenient. I don't even almost ever look at the test games with gnugo,
just the overall percentage is all I care about.

 Fifth, Pebbles saves two positions from every loss: the last position in
 which it thought it was winning (eval of the selected move = 50%), and the
 position in which it thought it had the greatest advantage.
 
 Pebbles regularly (~1 or 2 games per day) loses games where it thinks it
 will win 90% of the time. I always learn something by analyzing those
 games.

  This is pretty interesting idea!

-- 
Petr Pasky Baudis
A lot of people have my books on their bookshelves.
That's the problem, they need to read them. -- Don Knuth
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] cgosview?

2009-09-29 Thread Lars Schäfers
Hi ,

I remeber a version where the call was just

./cgosview-linux-x86_32  cgos.boardspace.net  6819



   Hi!
 
   How do I use cgosview-linux-x86_32? By default it connects to the
 19x19 server and that works (displays empty game list window), but
 I can't find out how to tell it to connect to 9x9; the moment I try
 to pass it any parameter, I get:
 
 pa...@pixie:~/src ./cgosview-linux-x86_32 -server cgos.boardspace.net -port 
 6819
 could not execute
 pa...@pixie:~/src ./cgosview-linux-x86_32 -port 6819
 could not execute
 
 
 -- 
   Petr Pasky Baudis
 A lot of people have my books on their bookshelves.
 That's the problem, they need to read them. -- Don Knuth
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/
 


__
GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://movieflat.web.de

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] cgosview?

2009-09-29 Thread Petr Baudis
  Hi!

On Tue, Sep 29, 2009 at 01:45:40PM +0200, Lars Schäfers wrote:
 I remeber a version where the call was just
 
 ./cgosview-linux-x86_32  cgos.boardspace.net  6819

  Ahh, thanks, that works. I think the website should be fixed then. :-)

Petr Pasky Baudis
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] cgosview?

2009-09-29 Thread Jason House

*sigh*

I made a wiki for CGOS as part of the sourceforge project. I should  
just take it down since it never became the official home page. I  
don't even think it has a link to it from the official home page! Even  
things like download links are duplicated...


Sent from my iPhone

On Sep 29, 2009, at 8:09 AM, Petr Baudis pa...@ucw.cz wrote:


 Hi!

On Tue, Sep 29, 2009 at 01:45:40PM +0200, Lars Schäfers wrote:

I remeber a version where the call was just

./cgosview-linux-x86_32  cgos.boardspace.net  6819


 Ahh, thanks, that works. I think the website should be fixed  
then. :-)


   Petr Pasky Baudis
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


RE: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread David Fotland
I start with one move, and slowly add moves to the pool of moves to be
considered, peaking at considering 30 moves.

My current schedule looks like:

visits  0   2   5   9   15  24  38  59
90  100  ...  2142
moves   1   2   3   4   5   6   7   8
9   10   ...20


I didn't find that strength is very sensitive to the schedule.  Many Faces
is a pretty good heuristic for selecting good moves, so if you are just
using RAVE to do move ordering you might need to widen faster.

David

 -Original Message-
 From: computer-go-boun...@computer-go.org [mailto:computer-go-
 boun...@computer-go.org] On Behalf Of Petr Baudis
 Sent: Tuesday, September 29, 2009 7:07 AM
 To: computer-go@computer-go.org
 Subject: [computer-go] Progressive widening vs unpruning
 
   Hi!
 
   I'm a little unclear on this, so I'd like to make sure I'm not missing
 any important technique - is progressive widening and progressive
 unpruning synonymous?
 
   I have looked both into the pMCTS and the CrazyStone papers and it
 seems that widening differs from unpruning in that certain number of
 simulations is first made before limiting the number of searches. Which
 of the variants is commonly used? What speed of widening works for you
 best?
 
   Thanks,
 
 --
   Petr Pasky Baudis
 A lot of people have my books on their bookshelves.
 That's the problem, they need to read them. -- Don Knuth
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


[computer-go] Testing Process

2009-09-29 Thread Brian Sheppard
You have inspired me to put Many Faces back on cgos, both 9x9 and 19x19,
using just one core on each, so it doesn't take much of my computing
resources.

It will be wonderful to have an omnipresent omniscient opponent again. :-)


I'd suggest you put Pebbles on 19x19 also.

Pebbles and Many Faces are in different phases of life. Pebbles is immature,
but its behavior is appropriate for its age. :-) I have to upgrade many of
the underlying data structures. Playing on 19x19 seems pointless at present.

Considering that I spent more time reading this forum than I spend writing
code, it will probably take a while. :-(


My 19x19 engine is much stronger
than it was a year ago, while my 9x9 is about the same, so there is a lot
of
progress to be made in playing go that can't be discovered on 9x9.

The improvement in 19x19 Many Faces is quite noticeable. No doubt it is the
result of focusing on that aspect.


I test against gnugo for a fast opponent to give quick regressions after
every change, since I like to play 1000 games or more.

This is a common pattern. I should probably do that, at least occasionally.

I wonder: is the value dimished when you win 94% of your games? 500 games
against Fuego would take the same amount of time and perhaps yield better
insight.

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread dhillismail

I'm not sure whether they meant different things when they were first coined, 
but maybe that doesn't matter, and there are two different approaches that 
should be distinguished somehow.



When a node has been visited the required number of times:



1) Use patterns, heuristics, ownership maps from the earlier playouts through 
it, etc. to calculate a score for each move. Then rank them from prettier to 
uglier. At this node, only allow moves within the top N prettiest moves, where 
N grows slowly with the number of subsequent playouts through the node.



2) Calculate the score, as in 1). Initialize the win/loss record for each move 
*as if* many more prior playouts had already gone through this node. Prettier 
moves are initialized as if they had a higher proportion of prior?wins. 
Typically, it is the win/loss record for RAVE moves that gets this prior 
adjustment.



They can be combined too.



If the calculations involved?are expensive, then it is important to hold off 
until several playouts have gone through the node. Most nodes don't get visited 
more than once or twice.?If they use something like ownership maps, then, 
naturally, one has to wait until some data has been gathered.

- Dave Hillis


 -Original Message-
 From: computer-go-boun...@computer-go.org [mailto:computer-go-
 boun...@computer-go.org] On Behalf Of Petr Baudis
 Sent: Tuesday, September 29, 2009 7:07 AM
 To: computer-go@computer-go.org
 Subject: [computer-go] Progressive widening vs unpruning
 
   Hi!
 
   I'm a little unclear on this, so I'd like to make sure I'm not missing
 any important technique - is progressive widening and progressive
 unpruning synonymous?
 
   I have looked both into the pMCTS and the CrazyStone papers and it
 seems that widening differs from unpruning in that certain number of
 simulations is first made before limiting the number of searches. Which
 of the variants is commonly used? What speed of widening works for you
 best?
 
   Thanks,
 
 --
   Petr Pasky Baudis
 A lot of people have my books on their bookshelves.
 That's the problem, they need to read them. -- Don Knuth
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [SPAM] [computer-go] Progressive widening vs unpruning

2009-09-29 Thread Olivier Teytaud
hi;

I don't know to which extent my terminology is commonly used, but it seems
to be close to the distinction by Dave (but not exactly equal).

 For me I use progressive widening when we add moves, progressively,
to the pool of moves which are to be considered;

whereas I use progressive unpruning when a score is computed for all
moves, with a weight depending on the number of simulations; typically, I
consider the Rave formula in GellySilver as a progressive unpruning (with,
for prior value, the Rave value).

Progressive unpruning is better in MoGo, in spite of the fact that:
* with progressive widening, if you apply pure UCB values, you are
   definitely consistent and explore (asymptotically) all the tree;

* with progressive unpruning, if your prior is bad, you might have
situations
   in which the score of the only good move is 0, whereas all bad moves have

   values going to 0 but 0 and therefore the good move is never simulated
   (this can, however, easily be patched by a lower bound on the value given
   by the prior)

Progressive unpruning, if you use the same terminology as me, has the
advantage that the number of moves to be considered is adapted depending on
the score; if you have three reasonnable moves and 300 bad moves, with
progressive unpruning you'll visit all moves, whereas progressive unpruning
will stay on the three reasonnable moves as long as they provide a better
score than the prior score for the 300 bad moves.

(The difference with Dave's terminology is that I do not necessarily use a
sum of a prior number of simulations and a number of real simulations; I
use a weighted sum with weight depending on the number of simulations in a
complicated manner - I think this was not the case in the first paper by
Chaslot et al about progressive un pruning (well, I believe this is the
first paper about progressive unpruning))

Best regards,
Oliveir
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread Rémi Coulom

dhillism...@netscape.net wrote:

I'm not sure whether they meant different things when they were first coined, 
but maybe that doesn't matter, and there are two different approaches that 
should be distinguished somehow.



When a node has been visited the required number of times:



1) Use patterns, heuristics, ownership maps from the earlier playouts through 
it, etc. to calculate a score for each move. Then rank them from prettier to 
uglier. At this node, only allow moves within the top N prettiest moves, where 
N grows slowly with the number of subsequent playouts through the node.


This is called progressive unpruning or widening. Guillaume and I 
published the idea independently, and gave it two different names.






2) Calculate the score, as in 1). Initialize the win/loss record for each move *as if* 
many more prior playouts had already gone through this node. Prettier moves 
are initialized as if they had a higher proportion of prior?wins. Typically, it is the 
win/loss record for RAVE moves that gets this prior adjustment.


This was first proposed by Guillaume, and called progressive bias.

Rémi
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread Petr Baudis
I guess I'm not really appreciating the difference between node value
prior and progressive bias - adding a fixed small number of wins or
diminishing heuristic value seems very similar to me in practice. Is the
difference noticeable?

On Tue, Sep 29, 2009 at 08:25:56AM -0700, David Fotland wrote:
 I start with one move, and slowly add moves to the pool of moves to be
 considered, peaking at considering 30 moves.
 
 My current schedule looks like:
 
 visits0   2   5   9   15  24  38  
 59
 90100  ...  2142
 moves 1   2   3   4   5   6   7   8
 9 10   ...20
 

Thanks!

On Tue, Sep 29, 2009 at 08:49:22PM +0200, Olivier Teytaud wrote:
 I don't know to which extent my terminology is commonly used, but it seems
 to be close to the distinction by Dave (but not exactly equal).
 
  For me I use progressive widening when we add moves, progressively,
 to the pool of moves which are to be considered;
 
 whereas I use progressive unpruning when a score is computed for all
 moves, with a weight depending on the number of simulations; typically, I
 consider the Rave formula in GellySilver as a progressive unpruning (with,
 for prior value, the Rave value).

Ah, I see; so progressive widening is what David described, modifying
the process of choosing node with highest urgency, while what you describe
as progressive unpruning is actually just what RAVE and priors are,
adding extra terms to the urgency calculation, with diminishing value as
the simulation count raises.

 * with progressive unpruning, if your prior is bad, you might have
 situations
in which the score of the only good move is 0, whereas all bad moves have
 
values going to 0 but 0 and therefore the good move is never simulated
(this can, however, easily be patched by a lower bound on the value given
by the prior)

I found the even game prior (3/6) effective for this problem.

 Progressive unpruning, if you use the same terminology as me, has the
 advantage that the number of moves to be considered is adapted depending on
 the score; if you have three reasonnable moves and 300 bad moves, with
 progressive unpruning you'll visit all moves, whereas progressive unpruning
  * progressive widening you'll?
 will stay on the three reasonnable moves as long as they provide a better
 score than the prior score for the 300 bad moves.

-- 
Petr Pasky Baudis
A lot of people have my books on their bookshelves.
That's the problem, they need to read them. -- Don Knuth
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [SPAM] Re: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread Olivier Teytaud
I guess I'm not really appreciating the difference between node value
 prior and progressive bias - adding a fixed small number of wins or
 diminishing heuristic value seems very similar to me in practice. Is the
 difference noticeable?


It just means that the weight of the prior does not necessarily decrease
linearly. For example, for Rave, you might prefer to have a weight which
depends on both the number of Rave simulations and on the number of real
simulations.

The formula designed by Sylvain for Rave, for example, can't be recovered
without this generalization. For the current mogo, as we have several terms
(one for the empirical success rate, one for Rave, one for patterns, one for
expert rules...), some of them with used at different places in the code
(there is a prior expressed in terms of rave simulations, and a prior
expressed as real simulations), it would be complicated to come back to
something much simpler ... but perhaps it's possible. Such a clarification
might be useful, I have no clear idea of the impact of Rave values now in
mogo, in particular for long time settings, and it's not so easy to clarify
this point - too many dependencies between the many terms we have.

I think someone pointed out a long time ago on this mailing list that
initializing the prior in terms of Rave simulations was far less efficient
than initializing the prior in terms of real simulations, at least if you
have classical rave formulas - at least, we had an improvement when adding
a prior in the real simulations, but we had also an improvement when
adding one more term, which is not linear. Sorry for forgetting who :-(
Olivier
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

[computer-go] Progressive widening vs unpruning

2009-09-29 Thread Brian Sheppard
I think someone pointed out a long time ago on this mailing list that
initializing the prior in terms of Rave simulations was far less efficient
than initializing the prior in terms of real simulations.

You might be recalling an exchange that I had with Sylvain. I asked how
initial bias was implemented in Mogo, and Sylvain replied that either one
will work.

And that is true, but biasing the UCT values is much more forceful. There
are three differences.

First, assigning a win (or loss) to a UCT term is more significant than
assigning to a RAVE term because RAVE observations are vastly more
plentiful.

Second, assigning to UCT causes the upper confidence bounds to start at a
less optimistic level, which wastes fewer trials on pointless exploration.

Third, engines (should) have a policy for flowing UCT scores up the tree
along transpositions. Assigning to RAVE does not exploit that capability.

That being said, there is a caveat: assignments to UCT should be unbiased
estimates of winning percentage. RAVE terms can express other priorities.

For example, Pebbles bias in favor of exploring atari can be as large as 24
wins in 24 trials. The bias varies, depending on the situation, but it is
never smaller than 9 wins in 9 trials. It is clear that the 24/24 bias
(which is given whether winning or not) is not a sensible estimate of
winning chances.

Nevertheless, the bias works because it favorably changes search behavior.
Obviously, you must search atari moves if you don't want to lose. Pebbles'
automated parameter tuning system has pushed that parameter up because
higher values helped it to win games.

I highly recommend reading the Fuego implementation. I believe that it is
largely because of well-judged UCT priors that Fuego plays so efficiently
with small trials. E.g. Fuego-400nodes rated at 1518 on 9x9 CGOS. That's
only 5 trials per empty point!

BTW, Pebbles does not do a good job on this issue. Pebbles uses only RAVE
biases, though I have known since my exchange with Sylvain that it was a
worse choice. Unfortunately, I started on the other implementation, and now
all of the priors are unrelated to winning chances. I need to create a new
system that evaluates move quality, and I haven't gotten around to it yet.


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


RE: [SPAM] Re: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread David Fotland
Are you sure you are not over-tuning to some opponent, or to self-play?  I
have a very simple formula, win rate plus rave (with the simpler beta
formula), plus the simple upper bound term.  I bias the rave simulations
only.  It seems to work pretty well.  Your description sounds pretty
complex.

 

David

 

From: computer-go-boun...@computer-go.org
[mailto:computer-go-boun...@computer-go.org] On Behalf Of Olivier Teytaud
Sent: Tuesday, September 29, 2009 1:26 PM
To: computer-go
Subject: Re: [SPAM] Re: [computer-go] Progressive widening vs unpruning

 

 

I guess I'm not really appreciating the difference between node value
prior and progressive bias - adding a fixed small number of wins or
diminishing heuristic value seems very similar to me in practice. Is the
difference noticeable?


It just means that the weight of the prior does not necessarily decrease
linearly. For example, for Rave, you might prefer to have a weight which
depends on both the number of Rave simulations and on the number of real
simulations. 

The formula designed by Sylvain for Rave, for example, can't be recovered
without this generalization. For the current mogo, as we have several terms
(one for the empirical success rate, one for Rave, one for patterns, one for
expert rules...), some of them with used at different places in the code
(there is a prior expressed in terms of rave simulations, and a prior
expressed as real simulations), it would be complicated to come back to
something much simpler ... but perhaps it's possible. Such a clarification
might be useful, I have no clear idea of the impact of Rave values now in
mogo, in particular for long time settings, and it's not so easy to clarify
this point - too many dependencies between the many terms we have.  

I think someone pointed out a long time ago on this mailing list that
initializing the prior in terms of Rave simulations was far less efficient
than initializing the prior in terms of real simulations, at least if you
have classical rave formulas - at least, we had an improvement when adding
a prior in the real simulations, but we had also an improvement when
adding one more term, which is not linear. Sorry for forgetting who :-(
Olivier



 

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

RE: [computer-go] Testing Process

2009-09-29 Thread David Fotland
I haven't tested this, but my feeling is that it's better to test against
gnugo because it doesn't use uct/mc, so it has a very different style.  But
mainly, I'm all set up with automated gnugo testing and it would take some
number of hours to convert to fuego.  There is always something to code and
try that I would rather work on.

My gnugo regression in on 19x19, so I'm only winning about 85% (with 10K
playouts per move).

David

 
 I test against gnugo for a fast opponent to give quick regressions after
 every change, since I like to play 1000 games or more.
 
 This is a common pattern. I should probably do that, at least
 occasionally.
 
 I wonder: is the value dimished when you win 94% of your games? 500 games
 against Fuego would take the same amount of time and perhaps yield better
 insight.


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


RE: [computer-go] Progressive widening vs unpruning

2009-09-29 Thread David Fotland
 This sounds like progressive widening, but it could still be progressive
 unpruning, depending on implementation choices.

I do both.  I have a small pool of moves that are active and I also bias the
initial rave values.

 
 
 My current schedule looks like:
 
 To be sure that I understand, MF orders the moves using static analysis,
 and
 then the ordering is further modified by RAVE observations?
 
 So when Many Faces accumulates Schedule(N) trials, it will restrict its
 attention to the N highest ranked moves according to the combined Static +
 UCT/RAVE? Or does MF restrict the choice to the highest N by Static eval,
 and then order the top N by UCT/RAVE?

No, neither.  Now I'm thinking that maybe I'm doing something different from
what I thought was described in the papers.  I didn't look at them
carefully.  I just took the name Progressive widening, and invented
something that seems to work well.

 
 
  if you are just using RAVE to do move ordering you might
  need to widen faster.
 
 I recall that you credited the use of Many Faces rules with a massive
 improvement against GnuGo, so the technique is certainly empirically
 justified.
 
 But I am wondering how it achieves its results. That is, what do you think
 the difference is, compared to standard unpruning?
 
 There is a rule that I live by, which is GG  SS. This rule (really a
 universal law, when you get right down to it) states that a Good Guess is
 much better than a Short Search.

Agreed.  That's why I always prefer to add knowledge rather than tinker with
search parameters.

 
 So is the benefit that MF avoids wasting trials on moves that were just
 lucky in early trials, but probably will not stand up?

I think it's more that Many Faces values moves that have good long-term
consequences that the search can't find, so among moves with similar win
rates, it will choose the ones Many Faces prefers.

Or sometimes I think that UCT/MC is filling in the holes where Many Faces'
knowledge is incorrect or brittle.

 
 I am also wondering whether you could achieve the same effect by using
 pure
 progressive unpruning, but with a heavier weight (e.g., 100 trials) for
 Many
 Faces opinion.
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/