Page 2 of 4

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 1:52 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 2:22 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 3:42 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 4:43 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 4:49 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 5:15 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 5:17 am
by bugsti
What is the rating difference between the two supposedly exchanged players?

Below a certain threshold your quest is almost impossible to complete.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 5:25 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 6:07 am
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?

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 9:31 am
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?

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 10:12 am
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...

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 10:39 am
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 12:05 pm
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 12:35 pm
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.

Re: Establishing a player's identity

Posted: Wed Jun 20, 2018 2:28 pm
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.