[computer-go] ELO Ratings of move pattern
Rémi Coulom
Remi.Coulom at univ-lille3.fr
Wed Dec 5 02:52:08 PST 2007
Lars wrote:
> I have some questions concernig this paper of Remi:
> http://remi.coulom.free.fr/Amsterdam2007/MMGoPatterns.pdf
>
> 1. Which sense make the prior (Section 3.3 in the paper and where is the
> application?
> I understand it the way that you put 2 more competitions to each pattern
> in the minorization-maximization formula. But how does this produce a
> probability distribution with mean 0 and standard deviation 302??
>
This probability distribution is in the scale of Elo ratings. The
formula is Elo = 400*log10(gamma). The probability distribution of
getting one win and one loss against one player of rating zero has
standard deviation 302 (and mean zero).
> Is the prior only necessary to make sure that every pattern have at
> least one win?
>
It also has a regularization effect that avoids overfitting. That is to
say, even if a pattern has, say, one win and ten losses against a player
of rating zero, the prior will make it two wins and eleven losses, thus
moving the strength of the pattern a little bit towards zero. It avoids
high ratings for patterns that have been seen rarely.
> 2. I had run the algorithm on 400 games (including handicap-games) from
> the same game-records source Remi used (Section 3.2), but i used an
> other month. I concidered only 3x3 shape-patterns and simple non-shape
> pattern including dist-to-boarder, dist-to-prevMove, atari, capture,
> extension..
> After 1 iterations of the algorithm, I got strenght-parameter values
> completely different to the results of the paper (Table 1). Most of my
> parameters (including all the dist-to-boarder parameters!) have values
> less than 1.0. Does anyone have some explanations on this?
> After 5 iteration it is even worse. Most of the low values (less than
> 1.0) gets even lower, the high values even higher.
>
This sounds like a bug. The number of iterations depends on features. I
do not remember exactly how many iterations it took for mine. In general
2-3 iterations are enough to get very reasonable values, a dozen to have
good convergence.
Note that the values of some features are relative and not absolute. For
instance, distance to the previous move: if you multiply all of them by
a constant value, it will not change the likelihood. Nevertheless, if
you have no bug in your implementation, you should get values that look
like mine.
My suggestion would be to test your code with very small amounts of
artificial data. For instance, start by two players A and B, and, say A
beats B twice and B beats A once. Gammas should converge to gamma_A = 2
* gamma_B. You can make up similar tests with teams.
Rémi
More information about the computer-go
mailing list