[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] Pattern matching - example play
----- Original Message -----
From: "Heikki Levanto" <heikki@xxxxxxxxxxxxxxxxx>
Subject: Re: [computer-go] Pattern matching - example play
> A simple answer: trick moves. There are lots of tricky sequences that
> professionals never play, because they get a result that is a little bit
> less optimal than what they can get. yet such moves often offer many
> ways for a less experienced opponent to screw up. Such moves do not
> occur in pro games, but often amateurs use them, especially against
> weaker players, and with great success.
Yes, but this is not a real argument why automatic learning would not work.
I use 500,000 games but only 52,000 of them are pro.
The rest is at least one player 1d ama (and I use 300,000 games between
strong ama only) but still I have about 100,000 games where one of the
players is a Kyu-player, and I have a lot of 9-stone handicap games in my
training set and I see even 80-komi games..
> Same kind of thing happens when people try to memorize joseki - they can
> handle players who stick to josekis, but are totally lost when a player
> deviates from the book line, because they do not understand the meaning
> behind every move in those josekis.
Yes. This is why I made the pattern module, it knows all variations ever
played in half a million games of which 52,000 pro.
Should really perform better than a standard Joseki library put in by a
person.
> To explain the same thing in other words, in pro games you see only the
> results of the thought processes of the pros, but not all the
> alternatives they rejected.
Well I have never said that a learning system should use only pro games. In
fact I have staated here a few times that I consider that to be a bad idea.
> There are also cases where extracting the right information from a pro
> game must be quite hard. For a simple example, consider a joseki that
> depends on a ladder that goes across the whole board - there are many of
> those. If the ladder is favourable, the joseki is good, but if not, it
> leads into a serious catastrophe. You never see the ladder in pro games,
> both players know it long before it has happened, and choose variations
> accordingly. I would imagine it to be awfully hard to extract the
> knowledge that such a ladder was considered and found to work.
Yes in fact I have considered to hash in ladder info into the patterns and
decided not to do that.
My idea was to let teh pattern system generate "best shape" moves that are
"best case".
Then those moves need to be judged:
- Do I have enough territory/influence to play that move
- Ko status
- Ladder status
- L&D status
..etc.
Of course a good Go program is always a hybrid of all kinds of approaches.
People often said: "Your pattern-based Go program will never work" but of
course it goes without saying that any Go program, also one that implements
"learned" Go knowledge, is a hodgepodge of algorithms and heuristics.
I am just saying, you can do with literature research and Go teaching books,
why would you need to program "trick moves" yourself if those trick moves
are to be learned from game records? There are an infinite number of game
records played by lower ranking players or by dan-ranks against low kyu so I
see not real reason why this is an argument against automatic learning.
In fact I have experience with this kind of thing already. I said, a few
days ago, here, that my pattern system only starts to predict amateur moves
well after having learned from amateur games, not pro games only.
> be possible to recognize the situations where a certain variation is
> played, and note a correlation to the configuration in the opposite
> corner, but that would require a lot of statistical material - for this
> one joseki variation only.
My system works well when a pattern occurs at least once per hundred
thousand games.
I used to have a very weird method of judging which patetrn is more valuable
than the others by doing a kind of successive approximation, iteratively
setting values, starting with random and like a forming universe out of
condensating stellar matter those values are constantly updated against
eachother (literally like gravity acting on them, they adjust up or down
according to the pattern preferred) but that is too slow and a purely
statistical approach works better (I got the idea due to M. Reiss with the
explanation of his Go++5.0)
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/