Using a bot to estimate rank/rating
- HermanHiddema
- Gosei
- Posts: 2011
- Joined: Tue Apr 20, 2010 10:08 am
- Rank: Dutch 4D
- GD Posts: 645
- Universal go server handle: herminator
- Location: Groningen, NL
- Has thanked: 202 times
- Been thanked: 1086 times
Using a bot to estimate rank/rating
Just an idea I had: Would it be doable to use a go playing program to estimate a player's playing strength?
As I see it, you would set up a monte carlo go program so that it would not be trying to win, but would be trying to keep the game close. (i.e. keep the estimated winning percentage close to 50%). The program would then keep track, on each of its moves, of how "suboptimal" (how much worse than the program's best move) that move was.
The higher the average "suboptimality" of the program, the weaker the opponent. Of course, you would need to find a way to translate suboptimality to an actual, real life, rank. This could perhaps be done by having the bot play against many players of know rank to find a distribution of suboptimality vs. playing strength.
This wouldn't work, of course for players stronger than the bot, but with the current strenght of MC programs, it would still be useful for a large percentage of the playing population. Also, for players stronger than the bot, you could perhaps do something with how quickly the estimated winning percentage dropped (e.g if it dropped to 10% after 100 moves, that player is stronger than if it dropped to 10% after 150 moves).
This could, if it works, also be an interesting way of ranking new players on a go server. It would, theoretically, only require one game to get at least a rough estimate, and additional games would refine that estimate.
As I see it, you would set up a monte carlo go program so that it would not be trying to win, but would be trying to keep the game close. (i.e. keep the estimated winning percentage close to 50%). The program would then keep track, on each of its moves, of how "suboptimal" (how much worse than the program's best move) that move was.
The higher the average "suboptimality" of the program, the weaker the opponent. Of course, you would need to find a way to translate suboptimality to an actual, real life, rank. This could perhaps be done by having the bot play against many players of know rank to find a distribution of suboptimality vs. playing strength.
This wouldn't work, of course for players stronger than the bot, but with the current strenght of MC programs, it would still be useful for a large percentage of the playing population. Also, for players stronger than the bot, you could perhaps do something with how quickly the estimated winning percentage dropped (e.g if it dropped to 10% after 100 moves, that player is stronger than if it dropped to 10% after 150 moves).
This could, if it works, also be an interesting way of ranking new players on a go server. It would, theoretically, only require one game to get at least a rough estimate, and additional games would refine that estimate.
-
hyperpape
- Tengen
- Posts: 4382
- Joined: Thu May 06, 2010 3:24 pm
- Rank: AGA 3k
- GD Posts: 65
- OGS: Hyperpape 4k
- Location: Caldas da Rainha, Portugal
- Has thanked: 499 times
- Been thanked: 727 times
Re: Using a bot to estimate rank/rating
This seems to be a bit of a stretch--players of equal strength may be quite different in their strength in the opening or middlegame.HermanHiddema wrote:This wouldn't work, of course for players stronger than the bot, but with the current strenght of MC programs, it would still be useful for a large percentage of the playing population. Also, for players stronger than the bot, you could perhaps do something with how quickly the estimated winning percentage dropped (e.g if it dropped to 10% after 100 moves, that player is stronger than if it dropped to 10% after 150 moves).
The overall idea seems nice.
-
entropi
- Lives in gote
- Posts: 493
- Joined: Wed Apr 21, 2010 6:20 am
- Rank: sdk
- GD Posts: 175
- Has thanked: 80 times
- Been thanked: 71 times
Re: Using a bot to estimate rank/rating
I remember having seen on KGS remarks like "rank bot, get a rank here". Especially useful for players with a "?".
A big problem with chess bots is that they are too strong and for simulating lower level players they have to make artificial mistakes, which sometimes makes their play very strange. But for Go, we are lucky to have the handicap system.
A big problem with chess bots is that they are too strong and for simulating lower level players they have to make artificial mistakes, which sometimes makes their play very strange. But for Go, we are lucky to have the handicap system.
If you say no, Elwood and I will come here for breakfast, lunch, and dinner every day of the week.
-
Mike Novack
- Lives in sente
- Posts: 1045
- Joined: Mon Aug 09, 2010 9:36 am
- GD Posts: 0
- Been thanked: 182 times
Re: Using a bot to estimate rank/rating
Not yet but soon?
A better way would be to have a continuously variable bot. But for this I think we need to wait for the bots to get just a bit stronger (why will soon become obvious) and also a bit weaker but still MC. As soon as you have a bot that can play at two different (well defined) levels both MC it should be possible to have it play anywhere in between by a "slider" controlling the probability that the stronger evaluator will be used or the weaker on each move.
That's rather like a human player who is weaker than the top level, Sometimes makes the best move but sometimes makes a move not as strong.
Doing this not going to be worth while till there is a bot offering two levels of MC play around 3-5 ranks apart (on the same machine, under the same time controls)
A better way would be to have a continuously variable bot. But for this I think we need to wait for the bots to get just a bit stronger (why will soon become obvious) and also a bit weaker but still MC. As soon as you have a bot that can play at two different (well defined) levels both MC it should be possible to have it play anywhere in between by a "slider" controlling the probability that the stronger evaluator will be used or the weaker on each move.
That's rather like a human player who is weaker than the top level, Sometimes makes the best move but sometimes makes a move not as strong.
Doing this not going to be worth while till there is a bot offering two levels of MC play around 3-5 ranks apart (on the same machine, under the same time controls)
- daniel_the_smith
- Gosei
- Posts: 2116
- Joined: Wed Apr 21, 2010 8:51 am
- Rank: 2d AGA
- GD Posts: 1193
- KGS: lavalamp
- Tygem: imapenguin
- IGS: lavalamp
- OGS: daniel_the_smith
- Location: Silicon Valley
- Has thanked: 152 times
- Been thanked: 330 times
- Contact:
Re: Using a bot to estimate rank/rating
Searching for the move that wins half the time isn't a concept that can be applied recursively (just about every move wins 50% with random play!).
I think, instead, you'd have to modify the MCTS algorithm. Every iteration, for the root level only, explore the "best" option and the "most average" option (unless the two are the same move, in which case only explore it once). It might require some careful tuning to actually work that into a real algorithm, but it seems doable. You need to have comparable numbers of playouts on the "average" move and the "best" move, so that you can meaningfully compare them.
After a game, you should end up with a curve which would tell you not only how bad the player's average move is, but how likely the player is to make an especially good or terrible move. You'd have to get a lot of sample games vs. opponents of known strength to calibrate this.
Also, I expect games against such a bot would teach you horrible habits...
I think, instead, you'd have to modify the MCTS algorithm. Every iteration, for the root level only, explore the "best" option and the "most average" option (unless the two are the same move, in which case only explore it once). It might require some careful tuning to actually work that into a real algorithm, but it seems doable. You need to have comparable numbers of playouts on the "average" move and the "best" move, so that you can meaningfully compare them.
After a game, you should end up with a curve which would tell you not only how bad the player's average move is, but how likely the player is to make an especially good or terrible move. You'd have to get a lot of sample games vs. opponents of known strength to calibrate this.
Also, I expect games against such a bot would teach you horrible habits...
That which can be destroyed by the truth should be.
--
My (sadly neglected, but not forgotten) project: http://dailyjoseki.com
--
My (sadly neglected, but not forgotten) project: http://dailyjoseki.com
-
xed_over
- Oza
- Posts: 2264
- Joined: Mon Apr 19, 2010 11:51 am
- Has thanked: 1179 times
- Been thanked: 553 times
Re: Using a bot to estimate rank/rating
daniel_the_smith wrote:Also, I expect games against such a bot would teach you horrible habits...
no it won't
- Magicwand
- Tengen
- Posts: 4844
- Joined: Wed Apr 21, 2010 5:26 am
- Rank: Wbaduk 7D
- GD Posts: 0
- KGS: magicwand
- Tygem: magicwand
- Wbaduk: rlatkfkd
- DGS: magicwand
- OGS: magicwand
- Location: Mechanicsburg, PA
- Has thanked: 62 times
- Been thanked: 504 times
Re: Using a bot to estimate rank/rating
we currently have a bot that are strong as professionals in 9x9 game.
so using bot to estimate rank is very fisable idea.
so using bot to estimate rank is very fisable idea.
"The more we think we know about
The greater the unknown"
Words by neil peart, music by geddy lee and alex lifeson
The greater the unknown"
Words by neil peart, music by geddy lee and alex lifeson
- jts
- Oza
- Posts: 2664
- Joined: Sat Sep 18, 2010 4:17 pm
- Rank: kgs 6k
- GD Posts: 0
- Has thanked: 310 times
- Been thanked: 634 times
Re: Using a bot to estimate rank/rating
xed_over wrote:daniel_the_smith wrote:Also, I expect games against such a bot would teach you horrible habits...
no it won't
Thanks for weighing in. I'm glad I know what to think now.
-
xed_over
- Oza
- Posts: 2264
- Joined: Mon Apr 19, 2010 11:51 am
- Has thanked: 1179 times
- Been thanked: 553 times
Re: Using a bot to estimate rank/rating
jts wrote:Thanks for weighing in. I'm glad I know what to think now.
glad to be of service
- gaius
- Lives in gote
- Posts: 476
- Joined: Tue Apr 27, 2010 2:55 am
- Rank: Dutch 2 dan
- GD Posts: 56
- KGS: hopjesvla
- Has thanked: 193 times
- Been thanked: 83 times
Re: Using a bot to estimate rank/rating
Having a bot that tries to keep the game 50/50 seems like a strange idea to me. Imagine that the user misses a tricky tsumego where the bot could kill a 100-point group with one tesuji. The bot will then not actually kill it, of course, because it is trying to keep the game close. So the position could stay on the board until the endgame, and at every move the "suboptimality" will be huge. In the end, the player might be rated 30k just for misreading this one tricky tsumego!
Also, what you would probably end up with is a bot that refuses to destroy the other player's thin shapes and that consistently plays timid, submissive moves. I might be wrong, but this seems like an odd idea to me...
Also, what you would probably end up with is a bot that refuses to destroy the other player's thin shapes and that consistently plays timid, submissive moves. I might be wrong, but this seems like an odd idea to me...
My name is Gijs, from Utrecht, NL.
When in doubt, play the most aggressive move
When in doubt, play the most aggressive move
- daniel_the_smith
- Gosei
- Posts: 2116
- Joined: Wed Apr 21, 2010 8:51 am
- Rank: 2d AGA
- GD Posts: 1193
- KGS: lavalamp
- Tygem: imapenguin
- IGS: lavalamp
- OGS: daniel_the_smith
- Location: Silicon Valley
- Has thanked: 152 times
- Been thanked: 330 times
- Contact:
Re: Using a bot to estimate rank/rating
What gaius just said is what I was thinking when I said it would be a horrible bot to learn from...
That which can be destroyed by the truth should be.
--
My (sadly neglected, but not forgotten) project: http://dailyjoseki.com
--
My (sadly neglected, but not forgotten) project: http://dailyjoseki.com
- HermanHiddema
- Gosei
- Posts: 2011
- Joined: Tue Apr 20, 2010 10:08 am
- Rank: Dutch 4D
- GD Posts: 645
- Universal go server handle: herminator
- Location: Groningen, NL
- Has thanked: 202 times
- Been thanked: 1086 times
Re: Using a bot to estimate rank/rating
gaius wrote:Having a bot that tries to keep the game 50/50 seems like a strange idea to me. Imagine that the user misses a tricky tsumego where the bot could kill a 100-point group with one tesuji. The bot will then not actually kill it, of course, because it is trying to keep the game close. So the position could stay on the board until the endgame, and at every move the "suboptimality" will be huge. In the end, the player might be rated 30k just for misreading this one tricky tsumego!
Also, what you would probably end up with is a bot that refuses to destroy the other player's thin shapes and that consistently plays timid, submissive moves. I might be wrong, but this seems like an odd idea to me...
If the tsumego is hard enough, the bot might miss it 9 moves out of 10 as well, so it would only penalize you for it on 10% of moves. As the tsumego gets easier, it'll find it more often, and you'll be penalized more severely, which is reasonable.
Of course the system would work better with more games, where one bad performance gets evened out.
- HermanHiddema
- Gosei
- Posts: 2011
- Joined: Tue Apr 20, 2010 10:08 am
- Rank: Dutch 4D
- GD Posts: 645
- Universal go server handle: herminator
- Location: Groningen, NL
- Has thanked: 202 times
- Been thanked: 1086 times
Re: Using a bot to estimate rank/rating
daniel_the_smith wrote:What gaius just said is what I was thinking when I said it would be a horrible bot to learn from...
The purpose of said bot would definitely not be to learn from it.