[computer-go] A problem with selectivity and AMAF bias
Michael Williams
michaelwilliams75 at gmail.com
Thu Apr 10 16:01:42 PDT 2008
Magnus Persson wrote:
> Yesterday I noticed an odd phenomena in Valkyria wich was caused by high
> selectivity and AMAF.
>
> In this position
>
> (;GM[1]FF[4]SZ[9]AP[SmartGo:1.4]
> KM[7.5]
> ;B[ee];W[de];B[ed];W[df];B[ef];W[dd];B[dg];W[ge];B[dc];W[cc];B[cd];W[bd]
> ;B[cb];W[ce];B[bc];W[bb];B[cd];W[cg];B[cc];W[bf];B[gd];W[hd];B[hf];W[gc]
> ;B[gf];W[fd];B[fb];W[gb];B[fc];W[he];B[fe];W[ib];B[dh];W[ch];B[ad];W[be]
> ;B[di];W[ci];B[ha];W[ga];B[ie];W[id];B[if];W[fa];B[gd];W[hb];B[eg];W[eb]
> ;B[ec];W[da];B[ca];W[ae];B[ic])
> there are only two possible moves 1) capturing the last black stone
> played or 2) capture the ko. Only capturing the ko wins.
>
> In this position valkyria will first search 1) because capturing the
> last stone is urgent. But the search locks into to that move only
> because there are a strong bias against move 2) in the AMAF evaluation
> for Valkyria. I guess what happens with AMAF is that alternative local
> moves (local relative to the first move in a repeated sequence) will
> always be biased downwards. This is so because playing the alternative
> local moves after the first one is played is often inefficient because
> of a duplication of effort.
>
> Then since there is nothing in the AMAF scores that indicate that move 2
> is any good it is never searched, since the search is so selective that
> the bounds will not grow large to compensate for the bias in a
> reasonable time.
>
> I do not expect your programs to have the same problem in this
> particular position. But the problem could be general and I am curious
> if you have solutions for it if you do.
>
> I did implement a crude solution that works in this position and did not
> make Valkyria lose rating overnight.
>
> I added
> IF (#TotVisits > 500) AND (#Visits > 0.9*#TotVisits) THEN
> uctQ := 0.5*uctQ;
>
> before computing
> Q := beta*virQ + (1-beta)*uctQ;
> the effect of this is simply that as soon as a move has been played more
> than 90% of the time after at least 500 moves has been played in the
> position then other moves has to be played. This has to the drawback
> that the search gets slightly inefficient when it finds forced moves.
> One reason I have this problem may be that I bias the Q value towards
> local shapes after it has been computed. I should perhaps put weight on
> high priority patterns by adjusting the prior value of the AMAF instead.
> I realized this when I read the latest easy-to-read paper from the MOGO
> team and I will test that as well.
>
> -Magnus
Isn't this fixed by never straying from a move in the tree until it loses and then trying an untried move?
Or something like that. It wasn't my idea and I don't remember the details, but it seems like it fixes what you describe.
More information about the computer-go
mailing list