Re: [Computer-go] Strong engine that maximizes score
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
> 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
Re: [Computer-go] Strong engine that maximizes score
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é" : > 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 > 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
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 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
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
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 wrote: 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
taking my question back. the answer is no in the context of mcts. On Tue, Nov 17, 2015 at 10:10 AM, Chun Sun wrote: > 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
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
> 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
Thanks for that, but it doesn't seem to help, or at least not much. The behavior is qualitatively the same. Maybe I shouldn't have included "strong" in my list of requirements. All I really need is something that is much stronger at determining life and death than what you can do by just looking at a group, with no search. But it is very important that groups that are clearly dead end up dying and groups that are clearly alive end up living. 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
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
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
> > 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] Strong engine that maximizes score
Hi, 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. Regards, Álvaro. ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go