Thursday, March 10, 2016

Google AlphaGo Software Defeats World Class Go Player

The Wall Street Journal article "Google Beats Go Champion" by Alastair Gale and Jonathan Chen, March 10, 2016, page B5, describes how the Go program owned by Google, AlphaGo, defeated former world champion Lee Se-dol in the first game of their 5 game match.  Previously, this computer program had defeated the European Go champion Fan Hui 5-0.

The importance of AlphaGo is enormous. The same techniques could be applied not only to robotics and scientific research, but so many other tasks .... “You can apply it to any adversarial problem—anything that you can conceive of as a game, where strategy matters,” says Chris Nicholson, founder of the deep learning startup Skymind. “That includes war or business or [financial] trading.”
The quote above is from this article:
http://www.wired.com/2016/01/in-a-huge-breakthrough-googles-ai-beats-a-top-player-at-the-game-of-go/

Both the business aspects of this development and the software developments are interesting.  From the business perspective, it is interesting to notice that Google did not develop this program.  Google acquired AlphaGo when it purchased the U.K. company called DeepMind. 

From the software perspective, the types of algorithms used by AlphaGo are of interest.  At its core, the program uses a machine-learning method known as deep learning.  The AlphaGo team says in a technical article that they introduced a new search algorithm that combines Monte Carlo simulation with value and policy networks.  The program uses two neural networks.  One is a policy network that suggests a limited number of moves.  The second is a value network that reduces the depth of a search, maybe looking only 20 moves deep.  The technical article also makes reference to convolutional filters, so there is some serious math used in the program.

AlphaGo is not just software.  The hardware for the program used about 170 GPU (Graphical Processing Unit) cards and 1,200 standard processors, or CPUs.

The following article has a good description of the development of the program: 
https://www.technologyreview.com/s/546066/googles-ai-masters-the-game-of-go-a-decade-earlier-than-expected/
There is a brief YouTube video embedded in the article that is very nice.

The game of Go is very different from the game of chess. In chess you start with all the pieces on the board in fixed locations.  As a chess game progresses, the pieces move and when captured are removed from the board.  In Go the board is empty at the start and pieces are added with every move, never moving after they are placed.  There is only one type of piece in Go, a stone.  In chess there are six types of pieces.  The goal of chess is to capture the opposing king.  In Go the goal is to control more space on the board than your opponent.  The game of Go is more abstract than chess.

Having a Go program that defeats world caliber players is a monumental achievement. There is great anticipation in the business world for exploiting the type of algorithms used by AlphaGo.

Programmers always want to know which programming language was used in a program like AlphaGo.  The programming language is not mentioned anywhere.  The artificial intelligence and mathematics techniques are the driving factors towards the success of this endeavor.

The important take-away for programmers is that programming is not necessarily the star of a successful software product.

Robert