[computer-go] K-nearest patterns

Chrilly c.donninger at wavenet.at
Sun Jun 18 09:45:10 PDT 2006


Indigo uses for automatic learning the K-nearest approach. The method is 
used in pattern matching to adjust automatically the window/basis size for 
sampling. See. e.g. C.M. Bishop, Neural Networks for Pattern Recognition, 
p.55-57. Usually one assumes n>>K.
In the case of the Indigio pattern learning the best result is for K=15 and 
the patterns are only used in the first few moves. But for the first 15 
moves this setting means, that the whole board is the sampling window. Or 
with other words, one just builds a chess-like opening book. I think thats 
what the Indigio team has exactly done. Only in the most complicated way. 
The Bayesion rules boil down to the simple rule, that an opening line must 
have a given frequency before it is played. And if there are in a certain 
position n moves, only the most frequent are taken. E.g. even if 1) b2-b4 is 
over the frequency threshold, it is not considered, because the alternatives 
1)e2- e4 1) d2-d4... are much more frequent.
The results of the Indigo-team mean: It improves a weak-programm slightly if 
it uses a chess-like opening book.

In chess such a "Bayesian-pattern-matcher" can be build by every user of 
Fritz/ChessBase. Its a feature of the GUI and nobody has thaught so far that 
this is big science. Actually the CB-book feature is more sophisticated, 
because one can consider winning probabilities, Elo ratings of players. This 
was not done in the Indigo-papern.
In academic-Go it is obviously big science (or at least worth a paper), one 
has just "to carry the church around the cross" (Austrian expression for 
making something simple very complicated).

Beside this curiosity, I think mixing the fixed size approach with a 
K-nearest seems to be reasonable (once the programms reach a level, where 
they can use the information in a reasonable way. At the moment they are too 
stupid to learn from Top-Dan-Games). Maybe they could learn from low-Kyu 
players, because the knowledge gap is in this case not so large. At least 
humans learn best by playing against slightly better players. A very 
stronger player can only give instructions, but one learns nothing in a 
9-stone handicap or a chess simultan (besides that one has no idea of the 
game).

Another interesting approach is to consider the last K-moves. An anagram 
approach. An recent article about this approach is mentionend on the 
literature list of M.Enzersberger. But the article is in Japanese and I can 
(unfortunately) not read Japanese (as far as I know it is even for Japanese 
people difficult to learn the 2000 signs which are necessary to read 
Japanese text).

The knowledge-gap is with this approach of course not solved. E.g. on 
top-level sequences are often not played out, either because the players 
know the result (but a weak player like myself just wonders whats going on) 
or because the want to keep the tension (e.g. Ko threats) for a later stage 
of the game. The programm would learn such jumps to other areas, but would 
not have the slightest idea about the motif.

Chrilly 



More information about the computer-go mailing list