Wired has an article claiming that Go-programs will inevitably beat Pro players, just as Chess programs have. Thus the title, “Humans No Match for Go Bot Overlords”, even though at best the programs have won via a huge handicap (9-stones).
Here’s my perspective as an AGA-rated Amateur 4-dan:
Sure the programmers can effectively create an expert system that can ‘learn’[sic] to play go via brute-force algorithms, but I wonder how that will scale once they lower the handicap. Generalizing from 9-stone handicap games is horribly bad logic; handi-9 games are really difficult to lose if you have a solid grasp of basic go theory– you just link everything together, & no life-death problems appear. HOWEVAH– as soon as you get to handi-3 or below, a corner opens, life-death problems appear everywhere… & then the typical ‘strong high-handicap player’ gets their ass kicked. I used to be a solid 2 stones stronger as a handicap player, than i was playing even… And these go-programs are much, much worse.
First, a little background. Go was always the first game that programmers tried to ‘solve’; long before ppl had programs playing chess, there were tons of code written to play go. But with very little success; go is an inordinately difficult game to reduce to algorithms. In contrast, essentially, chess is a ‘closed system’; there’s a finite number of moves, & even more significantly– there are a huge number of well-researched books available diagramming all the major variants of play. Ie, the specific moves & all the variations are ‘known’.
Whereas go is a bit different– a common description of go is that it’s a fusion of “intuitive + analytical”; thus, programmers usually focus wholly on the ‘analytical’ side, & give-up on the ‘intuitive’ side… (or in this case, do Monte Carlo brute-force & cross their fingers). But I think they’re barking up the wrong tree– there really is an excellent entry-point to the ‘intuitive’ side: a series of “Go Proverbs” which give hints in which direction to look. Codifying these would shrink the search branches dramatically.
Correspondingly, on the ‘analytical’ side, there’s an assumption that searching the variations (ie, ‘reading ahead’) in go is similar to chess. And that couldn’t be more wrong– instead of reading 12-30 moves ahead for high-level chess, a good pro go player reads out 60+ moves in a life/death fight, no-problem. Kitanu once read 90+ moves ahead, at 70yrs old! Plus, this ‘reading ahead’ is *nothing* like chess; b/c at each point, the life/death of the whole group is effected, not just a single stone (ie a single chess piece). But these go programs really don’t get that at all; you’ll see a string of decent moves, maybe one great move, & then all of a sudden a horribly bad move… & the program *cannot tell the difference*. So how could it possibly ‘learn’ from that?? When the chances of it creating a similar situation later (let-alone the exact same moves) is effectively zero? I’ve played over 1,000 games of go, recorded more than 1/2 of them, & I’ve never played the same long sequence moves twice. Sure maybe a string of 10 moves in a joseki turn-out identical, but: (a) the surroundings are not, & (b) the joseki often wasn’t even played in the same order each time…
So basically the programmers are (claiming) it isn’t worth-it to try to hack how pro’s think, & instead just do Monte-Carlo & brute-force. But I’m betting that whole approach would work *much* better if they started w/ correct top-level pro thinking… but they never do. Why not? b/c there aren’t any strong pro’s invested in making these programs stronger. More importantly, very, very few top pro’s (bother) to teach beginners well– I’ve seen both Jujo 9p & Mingjiu 7p (2 of the only 6 top pro’s in USA) play the most awful crap to dust their low-kyu students; when I confronted Mingjiu, he just shrugged. Yilun Yang 7p is the only pro I’ve met who’ll teach you well… but none of these programmers talk to him. Heck, none of the programmers are dan (amateur) strength!
Professor Berlekamp (9kyu) at UCB tried some years back to make an ‘objective quantification’ of moves in go, by pitting two 9dan pro’s against each other, & allowing each at any time to substitute (skip) their move, & take points instead. Eg, first skipped move = 9pts, 2nd = 8, etc down to 1pt. The point-skipper (Jujo) won, & Berlekamp got all excited, & created a bunch of (useless) theory. What he missed was, Jujo was playing NaiWei, Jujo’s wife, & NaiWei would *never* beat her husband in public (even tho’ she’s significantly stronger than he is!!)
You can quite literally memorize the entire chess library & be grand-master strength; I know a guy who did it [this in-turn allows low-strength chess programmers to do well; they can leverage high-level algorithms already codified by top players]. However this is quite literally impossible in go; only some of the major openings (“joseki”) are decently cataloged, but even those branch infinitely by the 15th move max… And worse? Each corner’s moves directly affect the other 2 adjacent corners (in short, ‘high’ move = outward influence, & ‘low’ moves = emphasis on territory), & thus significantly changing the other 2 corners’ joseki outcomes. IOW, you can start the exact same joseki in 4 corners, & by the 10th move they’ll branch so much the josekis barely look similar… & *all* were optimal, ‘joseki’ moves!! [cf. "Whole-Board Thinking in Joseki", vol 1 & 2, Yilun Yang]. This has no correlate at all in chess… Chess games look similar all the time, & whoever memorizes the most, wins. Which is why Kasparov was so pissed (or “rattled”, per the article): he knew he couldn’t out-’remember’ the computer, & so kept trying to handicap its ability to search its mem-banks…
Basically, when ManyFaces et al can beat a 9dan pro at hand-3, you can write “Humans No Match for Go Bot Overlords”.
But until then, it’s all just infinite monkeys & Shakespeare (or Dogbert’s analysis of Dilbert’s autobiography: “5 monkeys, 20 minutes”
)