Why Go Still Foils the Computers
wsj.com
wsj.com
1. That computers have a hard time with Go.
2. That many people think Go is deeper than other board games.
3. That some people are working on making computers better at Go with neural networks, which more closely resemble the human brains that do so well at Go.
On Kgs where I play, the highest rated computers are at 5 dan. That is basically better than 99% of the players on the server which I think is the largest server in the English speaking world. Computer go has made considerable strides since 2009 [1]. The main impetus for this has been Monte Carlo Tree search[2]. Computers have not yet reached the level of professional Go player unlike Chess but progress from existing methods seems quite possible.
[1] https://en.wikipedia.org/wiki/Computer_Go [2] https://en.wikipedia.org/wiki/Monte_Carlo_tree_search
http://recode.net/2015/11/20/go-is-the-game-machines-cant-be...
Brute force has this particular definition of trying every possible outcome.
Humans pattern match pretty quickly and more or less guess based off prior experience and "intuition" -- it's not a brute force approach.
If you're not already a go player, and want to get started, come sign up on online-go.com and ping me, I'm pathogenix.
The whole point of a heuristic is that it's a simple rule that works reasonably well, one might even say admissibly as they do in undergrad AI classes, for dealing with an unsolvably complex problem.
Saying "humans use complex heuristics" amounts to just saying, "Humans use some algorithm I don't know."
>the feeling that a particular group of stones just isn't quite safe yet, the feeling that there is weakness in a structure on the other side of the board that can be exploited, the feeling that this corner is too hot right now, so you should definitely extend instead of the hane.
This mostly just sounds like probabilistic, bounded-rational prediction and evaluation of positions, which is what we currently think human cognition is anyway, but hey.
Which maybe takes some fun out of it, but this does seem to be an area where humans consistently out-perform AI: when local optimizations have to be balanced across many medium to medium-large optimization criteria as well. Similar things happen in language, at least metaphorically.
The idea being people with better heuristics end up as better players adding. So, more people effectivly adds more training time backing up the best models.
PS: This also means each player is using a different algorithm while playing.
1. Good Go players can often reconstruct an entire game just by looking at the board, if they have some idea how it started. Given that good go players can substantially alter the board in the course of play (called "playing under the stones" in many books), this suggests more than simple visual recognition.
2. Some go players can even play "one color go" which is pretty amazing to watch. Its basically a game of who can keep every move in their head. This isn't a silly stunt, some people really practice this.
Personally, I think that actually Go is more like a contextual NL problem than a vision definition problem. The existence of things like "joseki" and the fact that small board games play out in such a radically different way than big board games suggests that a variety of human cognitive shortcuts are at play.
It is absolutely the case that with just a few months of modest practice almost anyone can beat the pants off the best go playing computers.
It sure isn't. The strongest computers are a few stones worse than professionals. You can count on your hands and toes the number of people in the United States that can beat the pants off the best go-playing computers.
"In 2009, the first such programs appeared which could reach and hold low dan-level ranks on the KGS Go Server also on the 19x19 board."
I know virtually nothing about what it takes to become a low-level dan ranked player, but I would think it would take more than "just a few months" to "beat the pants off" them.
Back to the subject at hand: I think we will solve mathematical go before we solve chess (where 'solve' is used in the mathematical sense, so that, for example, we can prove "chess is a win for white, in 53 moves", and mathematical go is as described in https://math.berkeley.edu/~berlek/cgt/gobook.html; its difference with regular go variants is the way half stones are counted).
Reason is that both games, even with extensive pruning, are too complex for an full search of their game tree, and go has a simpler structure, making it easier to reason about it without doing that exhaustive search.
[I also doubt I'll live to see either happen]
This means that an analytical solution would either need to be an optimization of brute force, or exploit some additional structure that results from starting with an empty go board.
As an added wrinkle, such a solution may involve assuming that White [0] plays optimally. Ironically, this means that it may still be possible to beat someone who has fully analyzed and "solved" go, by making incorrect moves that puts the board in a position where their analysis only says that a winning move exists.
[0] I am assuming that Black has the winning strategy.
A full analysis of go will have to include some "if N is less than X" clause for an X at least equal to 20, making it less beautiful, but I don't see that as a big hindrance (and X need not be optimal in a proof for a 19x19 board)
In particular, the proof I know of (http://www.cs.bu.edu/faculty/gacs/courses/cs535/papers/Licht...) uses building blocks so large that you can, maybe, fit 2 on a 19x19 board.
Also, I think it is clear white doesn't have a winning strategy, as black can pass at the start of the game.
I'm more familiar with Chess than Go, but in Chess people will often talk about things like "too crowded" or how pieces are exposed.
These visible to humans quite easily, but hard to engineer sufficiently well to be useful to computers. In chess, brute force is easier.
In Go, I suspect that some deep-learning style bots will develop similar features themselves in the hidden layers. It's worth noting that the Google Deep Mind team is looking at tackling NP-hard problems (like traveling salesman) with their Neural Turing Machines[1].
[1] See for eg: https://medium.com/@alevitale/notes-from-deep-learning-summi...
I think Go is particularly difficult for AI because you need fuzzy pattern matching and precise reading out of positions (life and death problems). as well as the judgement to know when to use which.