Establishing a player's identity

General conversations about Go belong here.
User avatar
pnprog
Lives with ko
Posts: 286
Joined: Thu Oct 20, 2016 7:21 am
Rank: OGS 7 kyu
GD Posts: 0
Has thanked: 94 times
Been thanked: 153 times

Re: Establishing a player's identity

Post by pnprog »

Fede wrote:If you want to obtain many games without downloading them from an active Go server (they may limit access if there are too many requests), there are a few databases that should be freely available: see section "Other Game Collections" of https://senseis.xmp.net/?GoDatabases. The NNGS and Online-Go collections could be good for this, since they have a huge number of games for many different ranks.
In fact, CGOS provides links to archives games, so no problem :)

So I downloaded the game from May 2018 (11201 games).

Then, I listed the bots that played the most games, here is the top 20 (together with the number of played games):

Code: Select all

Aya793d_524_ro_2k	1805
Aya798c_F32cn15_5k	1747
Gnugo-3.7.10-a1	1672
Stop-0.9-005-19x19	1313
LZ_62b541_ELF_1600	1232
Maru-3.3.0p-0g	1198
LZ_b6337c69_p1600	1135
DCNN_AyaF128a523x1	1094
LZ_158603eb_1600	672
Maru-3.3.1-0g	611
myCtest-10k	512
Maru-3.2.1-0g	509
Rn.4.32-4c	469
Maru-3.3.2raw-0g	430
GnuGo_3.8_lv10	395
Emily_180511	324
RLO.0.2-4c1g	316
MGX-V14	290
RLO.0.2-16c1g	277
LZ-W5748	273
From there, I guess I will pick Maru-3.3.0p-0g and Gnugo-3.7.10-a1. I will remove the 119 games they have played together from the training set (see the ranking list).

Next step is to prepare the training data:
  • I guess I will "encode" a game position using 1 for black stones, -1 for white stones, and 0 for empty intersections? In that case, the neural network will essentially be asked to tell if player A or player B was actually playing in the game, regardless of the color he was playing.
  • Or I could choose 1 for player A or B stones, -1 for opponent stones, and 0 for empty intersections?
  • Any better suggestion? maybe 1 for black stones but 2 if players A or B is black, then -1 for white stones but -2 if players A or B is white?
Fede wrote:Also, if you need processing power, I have an extra (ordinary) Windows machine that is often off.
Let's see. I made some neural network learning code in python in the past. I will start with that because I am comfortable with it. I want to make a proof of concept first, to see if it could work. If the training is really too slow, then yes, I might have to use another computer :)

For information, how many games from player A and player B do you have? (excluding games between player A and B). I might try with those numbers.
I am the author of GoReviewPartner, a small software aimed at assisting reviewing a game of Go. Give it a try!
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

pnprog wrote:For information, how many games from player A and player B do you have? (excluding games between player A and B). I might try with those numbers.
It depends on which subset of games you'd like to use. I would assume 19x19 only, no handicap? Or also ranked and no bots?

Let's say approx. 1,000 and 100.
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

Re: Establishing a player's identity

Post by Bill Spight »

A couple of points that may not need saying.

First, you need to save a fair number of games for testing purposes and not use them for training. That way you can get error estimates.

Second, it is generally desirable to use the same number of game for each player for training. Otherwise the network may be biased towards guessing the player whose games were used more. I don't know how much of a consideration that may be in this case, however.
The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
Bojanic
Lives with ko
Posts: 142
Joined: Fri May 06, 2011 1:35 pm
Rank: 5 dan
GD Posts: 0
Has thanked: 27 times
Been thanked: 89 times

Re: Establishing a player's identity

Post by Bojanic »

You are wasting time with such analysis.
In League A topic, if direct similarities between Leela and suspicious games were not good enough for some - and they were measured by program itself, and program plays very consistent - how do you think that you can compare two human games against each other? With human play varying wildly. And probably lot of contaminated sources.

And even more surprising, some of the forum members who are not convinced about League A case, are optimistic about this one.
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

Bojanic wrote:You are wasting time with such analysis.
In League A topic, if direct similarities between Leela and suspicious games were not good enough for some - and they were measured by program itself, and program plays very consistent - how do you think that you can compare two human games against each other? With human play varying wildly. And probably lot of contaminated sources.

And even more surprising, some of the forum members who are not convinced about League A case, are optimistic about this one.
Please, give us a chance.
I know, I haven't shared much about the case, so it's perfectly understandable to be pessimistic.

This is only one of the avenues that are being investigated. I think the two cases are very different. Give me until the EGC, then I will show my hand.
Javaness2
Gosei
Posts: 1545
Joined: Tue Jul 19, 2011 10:48 am
GD Posts: 0
Has thanked: 111 times
Been thanked: 322 times
Contact:

Re: Establishing a player's identity

Post by Javaness2 »

Bojanic wrote: And even more surprising, some of the forum members who are not convinced about League A case, are optimistic about this one.
At least it is a fresh topic. :D Maybe it is actually easier to tell apart 2 human players. For example, if I know Dragos Bajneru is playing Catalin Taranu, I would be confident I could tell them apart from just the game record. Take 2 players with similar style, or of a totally different level, and maybe I have no chance. As for the chances of GoStyle - http://pasky.or.cz/go/ has a link to it - I guess it's going to be difficult to be confident of the results that spits out.
bugsti
Dies in gote
Posts: 32
Joined: Tue Jun 05, 2018 2:46 pm
Rank: 5 kyu
GD Posts: 0
Has thanked: 3 times
Been thanked: 7 times

Re: Establishing a player's identity

Post by bugsti »

What is the rating difference between the two supposedly exchanged players?

Below a certain threshold your quest is almost impossible to complete.
Fede
Dies in gote
Posts: 21
Joined: Mon Aug 29, 2011 11:55 pm
GD Posts: 0
IGS: Fede
Has thanked: 14 times
Been thanked: 3 times

Re: Establishing a player's identity

Post by Fede »

bugsti wrote:What is the rating difference between the two supposedly exchanged players?

Below a certain threshold your quest is almost impossible to complete.
Variable over time, but you can assume it's 300+ GoR. Though I would prefer the analysis tools didn't give weight to skill difference between the two players.
zermelo
Dies in gote
Posts: 46
Joined: Sun Apr 17, 2016 1:51 pm
Rank: Euro 1 dan
GD Posts: 7
Has thanked: 109 times
Been thanked: 34 times

Re: Establishing a player's identity

Post by zermelo »

I believe one could use similar methods as are used in face recognition.

E.g. a neural network is given as input 2 game records, and the information which one of the players is under focus in each game (black/white). The network outputs a similarity measure, which is trained over a large number of games and players. Then one can select some similarity threshold based on measured false positive rate.

If there are usually several records per player, I guess one can have the network output some style-embedding-vector from one game record, and then compare the embedding vector from the investigated game to the average embedding from the reference player's games.

It's an interesting question what is the best way to encode the game records in the input. Is it an sgf-type record, or board end position but with move numbers for each intersection or what?
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

Re: Establishing a player's identity

Post by Bill Spight »

Fede wrote:
Bojanic wrote:You are wasting time with such analysis.
In League A topic, if direct similarities between Leela and suspicious games were not good enough for some - and they were measured by program itself, and program plays very consistent - how do you think that you can compare two human games against each other? With human play varying wildly. And probably lot of contaminated sources.

And even more surprising, some of the forum members who are not convinced about League A case, are optimistic about this one.
Please, give us a chance.
I know, I haven't shared much about the case, so it's perfectly understandable to be pessimistic.

This is only one of the avenues that are being investigated. I think the two cases are very different. Give me until the EGC, then I will show my hand.
Isn't there a recent case where parents played instead of their kids?
The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
Bojanic
Lives with ko
Posts: 142
Joined: Fri May 06, 2011 1:35 pm
Rank: 5 dan
GD Posts: 0
Has thanked: 27 times
Been thanked: 89 times

Re: Establishing a player's identity

Post by Bojanic »

Bill Spight wrote:Isn't there a recent case where parents played instead of their kids?
Yes, last year in junior Pandenet league double-digit kyus all the sudden started playing like dan players.
For us it was very clear case, but here it would be still discussed...
User avatar
jlt
Gosei
Posts: 1786
Joined: Wed Dec 14, 2016 3:59 am
GD Posts: 0
Has thanked: 185 times
Been thanked: 495 times

Re: Establishing a player's identity

Post by jlt »

DDK vs dan players is completely different from 4d vs 6d. A DDK never wins against a dan player (unless the dan player self ataris a big group...), while a 4d sometimes wins against a 6d.

There might have been more discussion if the kid was 10k and the parent 5k.
Gobang
Dies in gote
Posts: 45
Joined: Tue Jun 05, 2018 5:23 pm
Rank: 2kyu
GD Posts: 0
Has thanked: 31 times
Been thanked: 18 times

Re: Establishing a player's identity

Post by Gobang »

Bojanic wrote: And even more surprising, some of the forum members who are not convinced about League A case, are optimistic about this one.
Not really surprising, since what people say is often more about the agendas that they have than logic and common sense.
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

Re: Establishing a player's identity

Post by Bill Spight »

Bojanic wrote: And even more surprising, some of the forum members who are not convinced about League A case, are optimistic about this one.
I am cautiously optimistic that a computer tool can be developed that would help to distinguish between two players.

And yes, it could be used to help distinguish between a human and a specific bot.

Part of that optimism relies upon the quantity of data, hundreds or thousands of games vs. a few.

Edit: Also, one difference from the League A case is that Leela 11 did not play every move in a complete game.
The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
User avatar
quantumf
Lives in sente
Posts: 844
Joined: Tue Apr 20, 2010 11:36 pm
Rank: 3d
GD Posts: 422
KGS: komi
Has thanked: 180 times
Been thanked: 151 times

Re: Establishing a player's identity

Post by quantumf »

Player verification is likely to be a much simpler problem than player recognition - i.e. confirming that player X is actually player X is a 1:1 problem compared to identifying who a player is, which is a 1:K problem (in a database of K players).

For anyone actually attempting to code this up, consider using Siamese networks - these are much more tolerant to small training sets. While usually used in facial recognition, I suspect they could work well for sgf recognition.
Post Reply