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
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/