[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: computer-go: Pattern matching



I don't know what you mean by "true AI".  Certainly people
play by recognizing patterns, and strong players have learned
most of their patterns from books or suggestions from other players,
not by figuring them out from first principles. :)

David

By "true AI", I mean more than just pattern matching, and look-ahead (which
is what most games boil down to). The best GO game (IMHO) would be one that
had a basic pattern database (very small), which it could add to itself, and
also realize when a pattern suggested the wrong move and modify it
accordingly.

People learn by knowing the basic rules of the game, and when they first sit
down to play, they have some basic ideas as to what might win the game
(capture stones for example) and they know from the rules how to do it
(surround the group to continue the example) and they do have some basic
patterns they probably saw in the rule book.

Everything else is learning, though. And in my mind, a "true AI" Go program
would be able to edit its own pattern database.

Difficulties with this:

1. Most obviously - how is a pattern chosen? Typically, this is something
that happens when someone gets burned in a game.

2. How does the program determine which pattern is bad after losing? If a
person plays chess, they make a move, and 5 moves later they are losing, a
good player can know what move (1,2,5 or 10 moves previously) led them down
this path, and can try something different next time. Trying to have a
computer know that a move it made even 2 moves previously is bad is very
difficult.

3. (Related to 2) In chess, 2 is easier, because the game is very linear.
In Go however, a pattern could be very sound and good, but because of other
setups on the board, it is a wrong move. Hence (like people), the computer
must deem which areas of the board to look at (never the board as a whole) -
Example: Hmmm, we've been moving in the upper right corner for the past 10
moves, maybe I should focus on that area of the board? Wait, I'm not making
any progress, and neither is my opponent, ok, look elsewhere for a move that
will give me an advantage.

Of course, maybe many of these things have already been put into practice,
and if so, I'd love feedback. These are the general principles I've been
trying to program, but of course (like most neural networks that start from
scratch) they take a long time to grow.

Question: I know there is growing competition to make a good Go program, and
so people are sometimes unwilling to share ideas/code, but is there a
general pattern database out there that someone has put together of say
50-100 patterns?

Jeff Massung

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com