将棋ソフトと機械学習

コンピューターの上で動作する将棋ソフト「ボンクラーズ」が、元名人・米長邦雄永世棋聖勝利を収めたことは記憶に新しい。

コンピュータがトップレベルの人間に勝てるほどに強くなったことを示した画期的なできごとだ。

このことは、多くのニュースで取りあげられたし、NHK クローズアップ現代でも特集された。この様子は下のリンク先で16分ほどの動画で見ることができる。


■人間 VS コンピューター 人工知能はどこまで進化したか(クローズアップ現代
http://cgi4.nhk.or.jp/gendai/kiroku/detail.cgi?content_id=3155


コンピュータソフトが勝利した要因として「ソフトウェアが自分で学習して強くなった」と言われることが多い。
そして、クローズアップ現代のWebページの説明でも「自ら学習する」という表現が使われている。


これは本当だろうか?


実は、このことについて、ボンクラーズの開発者である伊藤氏が、自身のブログで
「学習も人工知能も使ってません」というタイトルのエントリを公開し、「学習や人工知能」を否定している。

専門家でない一般の人向けの記事で「ソフトが学習して強くなった」みたいに書かれると、読者の思い描くものは実態とは全く異なる、非常に過大評価したものになってしまうケースが多い。これは問題かな、と思うわけです。

http://aleag.cocolog-nifty.com/blog/2012/01/post-32f8.html


これはどういったことだろう?


私なりの理解で、一般にイメージされる「学習」と、ボンクラーズが採用している「機械学習」について、説明をしてみる。


一般にイメージされる「学習」
・勝負に負けると、その敗因を学んで、次からは同じ過ちを犯さなくなる(ボンクラーズには当てはまらない)。
・相手がいい手を指すと、それを次の戦いで使うようになる(ボンクラーズには当てはまらない)。
・つまり、たくさん人間と対戦することで、どんどん強くなる(ボンクラーズには当てはまらない)。


このような理由から、やはり一般にイメージされる学習とは大きく異なると言えそうだ。


では、ボンクラーズの開発に使われた機械学習とはどのようなものだろうか。


先にまとめてしまうと

ボンクラーズが学習するのではない。ボンクラーズが使っている方程式の改良に、過去のデータを活用している」

ということになる。


本質的に難しいところは省いて、簡単にまとめてみる。


・ソフトウェアは、次の1手に点数を付けて、もっとも点数のよい手を打つ。
・つまり、良い手=高い点数。という対応づけを正しく行うことが一番大事であり、またこれが一番難しい(何が良い手なのか、実際のところは誰もわからないから)
・点数付けは、ソフトウェア独自の方程式を使う。
・独自の方程式が適切かどうかを知るために、独自の方程式が導き出した結果と一流棋士が打った手を比較する。
・一流棋士が打った手と、方程式の結果がなるべく一致するように、方程式を調整する。
・方程式の調整はプログラマが行うのではなくて、過去の対局数万件のデータベースを活用して自動で行う(これが機械学習!)
・以上の過程を経て、プロが打つ手を「高い点数」と評価する方程式が完成する。これをソフトウェアに組み込む。
・こうして、プロと同じような手を打つ「強い」ソフトウェアができる。


改めてもう一度まとめると、
ボンクラーズ自身は学習しないし、ボンクラーズがたくさん対戦しても、ボンクラーズは強くならない。
ボンクラーズが使用している方程式の調整に機械学習と呼ばれる手法を使っている。



コンピュータVSプロ棋士―名人に勝つ日はいつか (PHP新書)ボナンザVS勝負脳―最強将棋ソフトは人間を超えるか (角川oneテーマ21)永世竜王への軌跡
頭脳勝負―将棋の世界 (ちくま新書)はじめての機械学習パターン認識と機械学習 上 - ベイズ理論による統計的予測