Wednesday, March 9, 2016

AlphaGo vs. Lee Sedol Matchup


Yesterday in Seoul, South Korea, Lee Sedol 9p lost to Alpha Go by resignation.  I have to say I'm still floored.  I'm sure the Google engineers are all popping champagne corks tonight.  When I first started playing Go around 2003, computers had already beaten chess, but Go was still far too complicated for a computer to master.  There were several attempts to create Go playing programs in the past, but usually the computer was easy enough for a weak amateur, such as myself at the time, to play it and confuse it with strange moves to win.  Many top amateurs and professionals were sometimes slightly derisive of a computer's chance at winning the game, because for many, playing Go required the use of what we consider to be uniquely human qualities such as intuition and "feeling."

For those of you who know very little about Go and are having a hard time visualizing why this game is so complicated and why it presented such a challenge to programmers, let me explain a bit.  Go is played on a 19x19 board.  You are allowed to play wherever you want.  There is no element of chance, so there are no dice, no spinners, no cards, nothing random.  A friend of mine said that Go is a game of "pure, unadulterated strategy" and she was right.  The first few moves in Go are played in the corner, and then from there, players will play in the corners to decide what shape they want.


Think about this.  It is Black's turn.  He gets to put down a stone pretty much anywhere on the board he likes.  I marked down possible moves for Black that are common and make sense.  Already there are 8 choices of what are considered "reasonable" moves.  You might ask "Well what about the other spaces on the board?"  Many of those spaces might be good to play later in the game, but for the moment, they're small potatoes.  After Black plays...

  
Now White has plenty of moves that he can choose from, all of which make sense in different ways, or reflect different strategies.  Some players are aggressive, some are quiet, some are patient and calculating.  Your moves reflect your strategy and your style, but there are so many moves that make sense, the opening of the game is filled with possibilities.  To sort through the moves that "make sense" and separate them from the moves that don't make sense or are not worth a lot, a human player uses a set of principles, like heuristics, to sort through the moves and then pick one he or she thinks is best.  You'll hear Go players call it "intuition" or "sense."  The thing that separates the more skilled players from the rest of the pack is the ability to properly apply these principles.  The other part of the game is to understand and visualize shapes before they're played out on the board, and then evaluate their value.  The principles help guide you towards moves that make logical sense.



For example, at this point in the game, Black attacks White with 2.  Now a human player would identify the nearby White stone as being "in danger" and "surrounded."  This is a judgement based on experience, but also on the principle that stones need to surround points in order to "live," or not be captured.  There are a lot of empty spaces there, but if you follow certain guidelines, a human player would be able to find which moves to start off with, and then use reason and logic to figure out the resulting sequence.  After looking at several different possible sequences, the human player would then decide which one was the best.  To find the initial move that sets everything in motion requires human intuition and experience as to what works and what doesn't.  Computers had never been very good at this kind of abstract decision making, but it looks like Alpha Go has made great strides.  

I do of course want to give my total support to our future silicon overlords as they take over humanity :)  I think that this is really a momentous occasion because in programming Alpha Go, the Google team has probably learned so much that could be used to solve problems in other contexts.  A program that can learn and change from experience and analyze problems by starting from a logical starting point has far reaching applications.  Future is looking bright indeed!

comments