今回は、前回の続編を掲載する予定でしたが、執筆中に世界中を驚かせた出来事が起こったため、急遽、内容を変更してお伝えしたいと思います。
多くのメディアで取り上げられていたので皆様もご存知かもしれませんが、2016年3月、人工知能を利用したgoogle社の囲碁ソフトウェアAlphaGoと世界屈指の囲碁棋士イ・セドル(プロ9段)の対戦が行われました。
なんと、AlphaGoはハンディキャップがない公平な勝負で4勝1敗と勝ち越したのです!
先に述べておきますが、筆者は囲碁の経験はありません。
今回の件で、囲碁のルールをWikipediaで調べたレベルの素人ですので、試合の解説などは一切できません。
あしからず。
実は、AlphaGoに関する論文[1]は1月下旬に発表されおり、既に人工知能やコンピュータ科学の分野では大きな衝撃として伝えられていました。
その論文では、2015年10月にヨーロッパチャンピオンのファン・フイ(プロ2段)と対戦し、AlphaGoが5戦全勝したと述べられています。
確かに、コンピュータが世界屈指の囲碁棋士に勝利したことは衝撃的なことなのですが、なぜ、こんなにも世界中で騒がれているのでしょう?
それは、ハンディキャップなしでプロの囲碁棋士に勝利するには、あと10年掛かると専門家の間で言われていたからです。
それが、彼らの予想を大きく上回る早さで実現したからです。
もっとも、それだけではなく、AlphaGoはもっと凄い能力を持っています。
これについては後半で述べさせていただきます。
囲碁で打てる手は10170手もあり、チェスや将棋などとは比較にならないほど多く、宇宙に存在する原子の数(約1080個)さえも超えます[2]。
そのため、試合の持ち時間以内に全ての手をチェックして、どこに石を打つべきかを判断することは現代のコンピュータでは不可能です。
また、ある局面における優劣の評価も非常に難しい問題でした[3]。
この問題も囲碁で人間に勝つことが難しいと言われていた原因でもあります。
石を打つ場所の決定と局面の評価の2つ問題を解決するために、AlphaGoではディープランニングとモンテカルロ木探索という技術が利用されています。
ディープラーニングは2012年に写真に写った物体の認識率を劇的に向上させてから世界中で注目され始めた技術です。
また、モンテカルロ木探索は2006年に提唱された技術で、チェックする手を大幅に削減できる技術です。
プロ棋士2人に勝利したAlphaGoの成果はディープラーニングが大きく貢献しており、先に述べたAlphaGoの凄い能力にも非常に関係します。
ディープラーニングとは人間の脳を構成する神経回路網をコンピュータ上に再現して、多くのサンプルデータを与えることで人間のように学習していく技術です。
AlphaGoで(1)次に打つべき場所の候補の選定、(2)囲碁の強化、(3)盤面の優劣評価のためにディープラーニングが利用されています。
なお、この記事で紹介する方法はAlphaGoの論文[1](2015年10月時点)のものであるため、イ・セドル(プロ9段)との対戦時にはさら強化されていたと思われます。
(1)次の打つべき場所の候補を選定するために、囲碁のオンラインゲームで行われたアマチュア6〜9段の約3000万盤面をAlphaGoに入力し、ある盤面において人間はどこに打つのかを50個のGPUで3週間かけて学習させています[3]。
これは1秒間に約16.5局を学習したことになります。
人間の打ち手を参考にしているため、AlphaGoが選定した打つ場所の候補は人間らしいものとなります。
(2)囲碁の強化では、AlphaGo自身が自己対決を行い、勝敗とその試合で打った手を元に強くなるように学習していきます。
人間と同じように、AlphaGoは何回も試合することで自身を鍛えていったのです。
人間と異なる部分は、強くなっていくスピードがとんでもなく早いことと、鍛え始めた時点で素人レベルではなくアマチュア6〜9段のレベルであることです。
(3)盤面の優劣評価では、強化されたAlphaGoの自己対決によって3000万局(先程の3000万盤面ではない)を自動生成し、その勝敗と盤面を元に現在の盤面における優劣の判断を学習させています。
自動生成された試合のレベルは、囲碁の強化によりアマチュア6〜9段以上です。
これまで、この優劣評価を人間は定義できなかったのですが、コンピュータは自動で非常に有効な定義してしまったのです。
ディープラーニングによる3つの学習で得た知恵(実際にはパラメータ)とモンテカルロ木探索の技術で、ファン・フイ(プロ2段)と対戦した結果、AlphaGoは圧勝したのです。
ただし、この試合ではCPUを1202個、GPUを176個とかなりのハードウェア資源を利用しているため、真似することはなかなかできません。
さて、AlphaGoはどうやって囲碁のルールや戦術を覚えたのでしょう?
プログラムとしてAlphaGoに組み込まれていたのでしょうか?
お気づきの方もいるかもしれませんが、AlphaGoのプログラムには囲碁のルールと戦略は組み込まれていません。
囲碁のオンラインゲームの大量の盤面から自分で学習しただけなのです。
正確に言えば、AlphaGoはルールと戦術は習得していないが、大量の盤面からルール違反にならない打ち方と優位になる打ち方を習得し、結果的にルールに沿った打ち方ができるようになったのです。
これが、先に述べたAlphaGoの凄い能力なのです!しかも、AlphaGo内の技術は汎用性をもち、様々な分野で応用できるそうです[2]。
大量のサンプルデータさえ与えてしまえば、やりたいことのルールは勝手に学習してくれるわけです。
ただし、事柄によっては人間が正解と不正解と教える必要がある場合もあります。
例えば、ヒビが入っているコンクリートの写真を大量に用意し、ディープラーニングでコンピュータに学習させれば、google社のストリートビューから日本中のヒビが入っているコンクリートを自動で引っ張り出してくることも可能かもしれません。
コンクリートとは○○○、ヒビとは☓☓☓などとコンピュータに教えづらい部分は、コンピュータがコンクリートとヒビの定義を学習して、自動で認識してくれるからです。
過去に発生した災害の地形データを入力してディープラーニングで学習させれば、似た地形を自動でピックアップして、今まで分からなかった危険箇所が発見され、より正確なハザードマップができるかもしれません。
現在、ディープラーニングは株価騰落予測、音声認識や被写体認識など実社会のバックエンドで利用されています。
また、研究段階ではありますが自動運転にも応用されています。
2045年に人工知能が人類を超えると予想されていますが、もっと早く到来するかもしれません。その時は、本当の意味で「人間とコンピュータの共存」というテーマについて人間とコンピュータが議論している可能性もあります。
今から約20年前のポケベルが主流だった時代に、高性能な携帯電話やスマートフォンが老若男女問わず世界中で普及し、そこから発信される情報に価値を見出して、ビッグデータとしてビジネスに利用されている社会を想像できなかったことを考えると、約20年後の2045年に社会がどうなっているのか想像できません。しかし、土木建築の分野だけでなく多くの分野で、今後も発展するコンピュータとディープラーニングが今より利便性を高め、効率化を促進させることは間違いなさそうです。
[1] S. David, et al., “Mastering the game of Go with deep neural networks and tree search”, Nature 529, 484–489, Jan. 2016
[2] Google Official Blog, “AlphaGo: using machine learning to master the ancient game of Go”, https://googleblog.blogspot.jp/2016/01/alphago-machine-learning-game-go.html
[3] 伊藤毅志、村松正和、“ディープラーニングを用いたコンピュータ囲碁〜 Alpha Go の技術と展望〜”、情報処理、Vol.57、No.4、pp.335-337、2016年03月