Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Petr Baudis
  Hi!

On Tue, Nov 17, 2015 at 07:05:34AM -0500, Álvaro Begué wrote:
> If anyone knows of a program that can actually use something like expected
> score in the UCT move selection formula, that's probably what I need. I
> might end up modifying Pachi to do this, but it sounds daunting.

  That's already implemented - see the options described in uct/uct.c
under the heading "Node value result scaling".

  This even is one of the things that happens when you enable
maximize_score, but the score takes just (at most) 0.01 of the value,
where 0.99 is depending on win/loss.  You might try to see what happens
if, in addition to maximize_score, you also pass

val_scale=0.1

(instead of the default 0.01) or even larger value.  Not sure what
effect on strength it might have.

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

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Chun Sun
Is the last requirement equivalent to dynamic komi?

On Tue, Nov 17, 2015 at 9:49 AM, Darren Cook  wrote:

> > I am trying to create a database of games to do some machine-learning
> > experiments. My requirements are:
> >  * that all games be played by the same strong engine on both sides,
> >  * that all games be played to the bitter end (so everything on the board
> > is alive at the end), and
> >  * that both sides play trying to maximize score, not winning
> probability.
>
> GnuGo might fit the bill, for some definition of strong. Or Many Faces,
> on the level that does not use MCTS.
>
> Sticking with MCTS, you'd have to use komi adjustments: first find two
> extreme values that give each side a win, then use a binary-search-like
> algorithm to narrow it down until you find the correct value for komi
> for that position. This will take approx 10 times longer than normal
> MCTS, for the same strength level.
>
> (I'm not sure if this is what Pachi is doing?)
>
> Darren
>
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Darren Cook
> I am trying to create a database of games to do some machine-learning
> experiments. My requirements are:
>  * that all games be played by the same strong engine on both sides,
>  * that all games be played to the bitter end (so everything on the board
> is alive at the end), and
>  * that both sides play trying to maximize score, not winning probability.

GnuGo might fit the bill, for some definition of strong. Or Many Faces,
on the level that does not use MCTS.

Sticking with MCTS, you'd have to use komi adjustments: first find two
extreme values that give each side a win, then use a binary-search-like
algorithm to narrow it down until you find the correct value for komi
for that position. This will take approx 10 times longer than normal
MCTS, for the same strength level.

(I'm not sure if this is what Pachi is doing?)

Darren

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

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Álvaro Begué
Thanks for your answer.

Unfortunately Pachi doesn't seem to really try to maximize score, even with
these settings: Once one side has won by a large enough margin, it will
stop trying to kill small groups and I am precisely trying to generate a
database to learn about life and death. Perhaps I can play around with the
settings in uct/dynkomi.c to see if I can make it behave closer to what I
need.

If anyone knows of a program that can actually use something like expected
score in the UCT move selection formula, that's probably what I need. I
might end up modifying Pachi to do this, but it sounds daunting.


Álvaro.


On Tue, Nov 17, 2015 at 5:26 AM, Josef Moudrik  wrote:

> I am trying to create a database of games to do some machine-learning
>> experiments. My requirements are:
>>  * that all games be played by the same strong engine on both sides,
>>  * that all games be played to the bitter end (so everything on the board
>> is alive at the end), and
>>  * that both sides play trying to maximize score, not winning probability.
>>
>> This last requirement is a bit unusual. Ideally I would like to do this
>> on 9x9 first (to be able to try many things quickly) and then 19x19 (the
>> real thing).
>>
>> Is there a strong engine that would allow me to do this? Linux or Mac
>> strongly preferred. I'll be happy to pay for it if it's commercial.
>>
>
> Hello,
>
> pachi ( pachi.or.cz ) is reasonably strong and you can achieve what you
> want by using following comandline options:
>
> pass_all_alive,maximize_score,resign_threshold=0.0
>
> but as the README for maximize_score says:
> Note that Pachi in this mode may be slightly weaker, and result margin
> should not be taken into account when judging either player's strength.
> During the game, the winning/losing margin can be approximated from
> Pachi's "extra komi" or "xkomi" reporting in the progress messages.
>
>
> Regards,
> Josef
>
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread David Fotland
The non-mcts levels of Many Faces try to maximize score, with some bias toward 
safety when ahead.  The non-MCTS version uses dynamic komi to avoid giving up 
points in the endgame, but this is not in the version 12 released engine.

 

David

 

From: Computer-go [mailto:computer-go-boun...@computer-go.org] On Behalf Of 
Chun Sun
Sent: Tuesday, November 17, 2015 7:15 AM
To: computer-go@computer-go.org
Subject: Re: [Computer-go] Strong engine that maximizes score

 

taking my question back. the answer is no in the context of mcts.

 

On Tue, Nov 17, 2015 at 10:10 AM, Chun Sun <sunchu...@gmail.com> wrote:

Is the last requirement equivalent to dynamic komi?

 

On Tue, Nov 17, 2015 at 9:49 AM, Darren Cook <dar...@dcook.org> wrote:

> I am trying to create a database of games to do some machine-learning
> experiments. My requirements are:
>  * that all games be played by the same strong engine on both sides,
>  * that all games be played to the bitter end (so everything on the board
> is alive at the end), and
>  * that both sides play trying to maximize score, not winning probability.

GnuGo might fit the bill, for some definition of strong. Or Many Faces,
on the level that does not use MCTS.

Sticking with MCTS, you'd have to use komi adjustments: first find two
extreme values that give each side a win, then use a binary-search-like
algorithm to narrow it down until you find the correct value for komi
for that position. This will take approx 10 times longer than normal
MCTS, for the same strength level.

(I'm not sure if this is what Pachi is doing?)

Darren


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

 

 

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

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Álvaro Begué
After reading the relevant code, I realized that val_scale=1.0 should do
precisely what I wanted. I have tested it a bit, and so far so good.

Thanks!
Álvaro.



On Tue, Nov 17, 2015 at 7:12 AM, Petr Baudis  wrote:

>   Hi!
>
> On Tue, Nov 17, 2015 at 07:05:34AM -0500, Álvaro Begué wrote:
> > If anyone knows of a program that can actually use something like
> expected
> > score in the UCT move selection formula, that's probably what I need. I
> > might end up modifying Pachi to do this, but it sounds daunting.
>
>   That's already implemented - see the options described in uct/uct.c
> under the heading "Node value result scaling".
>
>   This even is one of the things that happens when you enable
> maximize_score, but the score takes just (at most) 0.01 of the value,
> where 0.99 is depending on win/loss.  You might try to see what happens
> if, in addition to maximize_score, you also pass
>
> val_scale=0.1
>
> (instead of the default 0.01) or even larger value.  Not sure what
> effect on strength it might have.
>
> Petr Baudis
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Josef Moudrik
>
> I am trying to create a database of games to do some machine-learning
> experiments. My requirements are:
>  * that all games be played by the same strong engine on both sides,
>  * that all games be played to the bitter end (so everything on the board
> is alive at the end), and
>  * that both sides play trying to maximize score, not winning probability.
>
> This last requirement is a bit unusual. Ideally I would like to do this on
> 9x9 first (to be able to try many things quickly) and then 19x19 (the real
> thing).
>
> Is there a strong engine that would allow me to do this? Linux or Mac
> strongly preferred. I'll be happy to pay for it if it's commercial.
>

Hello,

pachi ( pachi.or.cz ) is reasonably strong and you can achieve what you
want by using following comandline options:

pass_all_alive,maximize_score,resign_threshold=0.0

but as the README for maximize_score says:
Note that Pachi in this mode may be slightly weaker, and result margin
should not be taken into account when judging either player's strength.
During the game, the winning/losing margin can be approximated from
Pachi's "extra komi" or "xkomi" reporting in the progress messages.


Regards,
Josef
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread David Fotland
Attempting to maximize the score is not compatible with being a strong engine.  
If you want a dan level engine it is maximizing win-probability.

David

> -Original Message-
> From: Computer-go [mailto:computer-go-boun...@computer-go.org] On Behalf Of
> Darren Cook
> Sent: Tuesday, November 17, 2015 6:49 AM
> To: computer-go@computer-go.org
> Subject: Re: [Computer-go] Strong engine that maximizes score
> 
> > I am trying to create a database of games to do some machine-learning
> > experiments. My requirements are:
> >  * that all games be played by the same strong engine on both sides,
> >  * that all games be played to the bitter end (so everything on the
> > board is alive at the end), and
> >  * that both sides play trying to maximize score, not winning probability.
> 
> GnuGo might fit the bill, for some definition of strong. Or Many Faces, on
> the level that does not use MCTS.
> 
> Sticking with MCTS, you'd have to use komi adjustments: first find two
> extreme values that give each side a win, then use a binary-search-like
> algorithm to narrow it down until you find the correct value for komi for
> that position. This will take approx 10 times longer than normal MCTS, for
> the same strength level.
> 
> (I'm not sure if this is what Pachi is doing?)
> 
> Darren
> 
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go

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

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Erik van der Werf
Unless you can solve the position, maximizing the score involves risk.
Strong players tend to avoid unnecessary risk.

Erik
Op 17 nov. 2015 21:06 schreef "Álvaro Begué" <alvaro.be...@gmail.com>:

> I wouldn't say they are "not compatible", since the move that maximizes
> score is always in the top class (win>draw>loss) for any setting of komi.
> You probably mean it in a practical sense, in that MCTS engines are
> stronger when maximizing win probability.
>
> I am more interested in attempting to maximize score, even if the engine
> is significantly weaker. Of course this is not what most people want, so I
> understand I am looking for something unusual.
>
>
> Álvaro.
>
>
> On Tue, Nov 17, 2015 at 2:58 PM, David Fotland <fotl...@smart-games.com>
> wrote:
>
>> Attempting to maximize the score is not compatible with being a strong
>> engine.  If you want a dan level engine it is maximizing win-probability.
>>
>> David
>>
>> > -Original Message-
>> > From: Computer-go [mailto:computer-go-boun...@computer-go.org] On
>> Behalf Of
>> > Darren Cook
>> > Sent: Tuesday, November 17, 2015 6:49 AM
>> > To: computer-go@computer-go.org
>> > Subject: Re: [Computer-go] Strong engine that maximizes score
>> >
>> > > I am trying to create a database of games to do some machine-learning
>> > > experiments. My requirements are:
>> > >  * that all games be played by the same strong engine on both sides,
>> > >  * that all games be played to the bitter end (so everything on the
>> > > board is alive at the end), and
>> > >  * that both sides play trying to maximize score, not winning
>> probability.
>> >
>> > GnuGo might fit the bill, for some definition of strong. Or Many Faces,
>> on
>> > the level that does not use MCTS.
>> >
>> > Sticking with MCTS, you'd have to use komi adjustments: first find two
>> > extreme values that give each side a win, then use a binary-search-like
>> > algorithm to narrow it down until you find the correct value for komi
>> for
>> > that position. This will take approx 10 times longer than normal MCTS,
>> for
>> > the same strength level.
>> >
>> > (I'm not sure if this is what Pachi is doing?)
>> >
>> > Darren
>> >
>> > ___
>> > Computer-go mailing list
>> > Computer-go@computer-go.org
>> > http://computer-go.org/mailman/listinfo/computer-go
>>
>> ___
>> Computer-go mailing list
>> Computer-go@computer-go.org
>> http://computer-go.org/mailman/listinfo/computer-go
>>
>
>
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Álvaro Begué
I wouldn't say they are "not compatible", since the move that maximizes
score is always in the top class (win>draw>loss) for any setting of komi.
You probably mean it in a practical sense, in that MCTS engines are
stronger when maximizing win probability.

I am more interested in attempting to maximize score, even if the engine is
significantly weaker. Of course this is not what most people want, so I
understand I am looking for something unusual.


Álvaro.


On Tue, Nov 17, 2015 at 2:58 PM, David Fotland <fotl...@smart-games.com>
wrote:

> Attempting to maximize the score is not compatible with being a strong
> engine.  If you want a dan level engine it is maximizing win-probability.
>
> David
>
> > -Original Message-
> > From: Computer-go [mailto:computer-go-boun...@computer-go.org] On
> Behalf Of
> > Darren Cook
> > Sent: Tuesday, November 17, 2015 6:49 AM
> > To: computer-go@computer-go.org
> > Subject: Re: [Computer-go] Strong engine that maximizes score
> >
> > > I am trying to create a database of games to do some machine-learning
> > > experiments. My requirements are:
> > >  * that all games be played by the same strong engine on both sides,
> > >  * that all games be played to the bitter end (so everything on the
> > > board is alive at the end), and
> > >  * that both sides play trying to maximize score, not winning
> probability.
> >
> > GnuGo might fit the bill, for some definition of strong. Or Many Faces,
> on
> > the level that does not use MCTS.
> >
> > Sticking with MCTS, you'd have to use komi adjustments: first find two
> > extreme values that give each side a win, then use a binary-search-like
> > algorithm to narrow it down until you find the correct value for komi for
> > that position. This will take approx 10 times longer than normal MCTS,
> for
> > the same strength level.
> >
> > (I'm not sure if this is what Pachi is doing?)
> >
> > Darren
> >
> > ___
> > Computer-go mailing list
> > Computer-go@computer-go.org
> > http://computer-go.org/mailman/listinfo/computer-go
>
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Strong engine that maximizes score

2015-11-17 Thread Darren Cook
> Attempting to maximize the score is not compatible with being a
> strong engine.  If you want a dan level engine it is maximizing
> win-probability.

If you narrow it down such that komi 25.5, 27.5, and 29.5 give a black
win with 63% to 67% probability, but komi 31.5 jumps to black only
winning 46%, and komi 33.5 gives black only 43%, then I think we can
score the position as black is ahead by 31pts.

If, on this number of playouts, the MCTS program is 3d, then I think it
is reasonable to say this is a 3-dan estimate of the score.  (Of course,
we used perhaps 10 times the number of playouts to turn a 3-dan player
into a 3-dan score-estimator.)

Darren

>> Sticking with MCTS, you'd have to use komi adjustments: first find
>> two extreme values that give each side a win, then use a
>> binary-search-like algorithm to narrow it down until you find the
>> correct value for komi for that position. This will take approx 10
>> times longer than normal MCTS, for the same strength level.
>> 
>> (I'm not sure if this is what Pachi is doing?)
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go