「囲碁」の世界チャンピオンLee Sedol選手に、GoogleのAI「AlphaGo」が4勝1敗で勝利したニュースは記憶に新しい。Googleは次にRTSの『StarCraft』に挑戦したいと伝えている。Google傘下DeepMindのDemis Hassabis氏が、海外メディアThe Vergeに語った。

Google「AlphtaGo」のニュースが多くのメディアで取り上げられているが、「AlphaGo」は実際にどれほどの計算を行っているのだろうか。コンピューターが人間にゲームで勝利するためには、全ての”手”を探索しなくてはならない。ゆえにコンピューターが強いとされているのは手順が少ないゲームだ。たとえば8×8マスの「オセロ」は、1997年の段階で「ロジステロ」と呼ばれるAIが村上七段に6連勝している。さらに6×6マスの「オセロ」は後手必勝であり、コンピューターに勝つには後手で、さらに32回来る手番のうち半分の16をミスすることなく打ち切らなくてはならない。ちなみに、8×8オセロの手順の種類は約10の60乗、すでに1那由他のという途方も無い数字になっている。

次に囲碁の手の数はいくつになっているのか。Googleは今年の一月に“1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000以上の可能性がある”と発表している。

観測可能な宇宙に存在する原子の総数が約10の80乗と言われているので、現代の技術では表現不可能な数になってしまう。そしてRTSである『StarCraft』には手番というものが存在していない。入力を受け付けるフレームとマップのピクセル数、ユニット数を考えると、ほぼ無限の可能性が出てくる。囲碁の段階で既に計算不可能な状態であるが、『StarCraft』ではさらに複雑になる。GoogleのAIはこの問題をどのようにして解決するのだろうか。

今回の囲碁においては、Googleでは深層学習（ディープラーニング）と呼ばれる手法を用いることでAIに学習をさせた。深層学習は人間の脳神経回路を模倣し、何層もの回路を重ねてデータを分類するというアイデアで実装されている。特徴として、機械が自分自身でデータの特徴を発見して認識することができる。例えば、あらかじめ様々なパターンの手書き数字をコンピューターに読み込ませておくことで特徴を認識し、手書き数字の判別率を向上させることができる。同様の原理で、顔写真や音声等でも学習させることができます。2015年には深層学習を用いた人工知能「DQN」が「Atari2600」のゲーム49本をプレイし、その半数以上で人間と同等以上のスコアを獲得している。以下の動画で「DQN」が『breakout』を学習する様子を見ることができる。

『StarCraft』のCPUのAIは、本来とは異なる方法で資源を獲得する、いわゆる資源チートを用いており、単純にAIに有利な状況を作っている。そのため『StarCraft』ではAIが賢いわけではなく、ゲーム的なアドバンテージを得てプレイヤーの腕に追いついているわけだ。

しかし、膨大な計算量である囲碁で人間を破ったGoogleAIが、『StarCraft』で人間を負かす日もそう遠くはないだろう。今後、GoogleはAIの開発を進めて、検索機能の強化や自動走行技術開発などにも応用する狙いだ。ゲーム中に登場するAIがどんどんと賢くなる一方で、「2045年問題」といわれる、人工知能が人間の知能を越す技術的特異点を迎えるという予測もある。とはいえ、人間とAIの戦いはまだしばらく続いていくだろう。

余談ではあるが『StarCraft:Brood War』のAIをプログラミングして、AI同士を対戦させる「Student StarCraft AI Tournament」というものも存在している。実際にC++、JAVAを用いてプログラミングを行うので敷居はかなり高いが、人工知能に興味がある方や勉強中の方は実際にAIをプログラミングし、ゲーム感覚で人工知能を身近に感じてみていただきたい。