AlphaGo—囲碁対戦人工知能の驚異
image:
ごく最近、人類最高の囲碁棋士の一人が、囲碁対戦ソフトウェアに5番勝負で 1勝4敗で破れる、という事件がありました。 衝撃的なニュースでした……。 その背景、そして私の思うところをまとめます。
人工知能の歴史
一般に、人間の思考に近いことを計算機(コンピューター)にさせる場合、それを人工知能(AI: Artificial Intelligence)と呼びます。人工知能の概念自体は、古くからありました。たとえば、鉄腕アトムは、人工知能そのものです。あるいは、アーサー・C・クラークの古典SF『2001年宇宙の旅』では、人工知能ハルが登場します。
面白いのは、『2001年宇宙の旅』の人工知能ハルは、人間と普通に会話している一方で、「チェスもかなり強い」(が、最強の人間相手だと負けるかも?)というのが売りでした。つまり、当時、巨匠クラークも、人工知能にとってはチェスよりも会話の方が簡単、と見なしていたんですね。仮に人間の赤子のように人工知能が成長するものであれば、確かにそうなりましょうか。幼子はまず会話能力を獲得し、チェスが指せるようになるのは、ずっと後になってからですから。
もちろん、現実は、全く異なります。たとえば、純粋な算数の計算能力であれば、コンピューターの能力は、最高の能力の人間(たとえばそろばん名人)をもってしても全く比べ物になりません。だから、人工知能の「成長」を人間の赤子と比較するのは筋違いになります。
今から考えると、特にプログラミングが何かを理解している人にとっては、ある決まったルールがあるもの、そしてそのルールが明快に記述できればできるほど、人工知能が得意とする、ということはほとんど自明です。つまり、いわゆる頭脳ゲームなどは、人工知能がもっとも得意とする分野です。パズルなどはその最たるもの。比較して、難しいのは、画像認識や自然言語の会話など、ルールを明快に記述することが困難なものです。なかでも一番難しい例として挙げられるのは、「笑いを取る」ことです。もし笑いのルールが厳密に言葉で明快に記述できるならば、誰でもコメディアンになれてしまいます。
頭脳ゲームは人工知能が「得意とする」といっても、それも程度問題です。結局は人間がプログラミングすることで人工知能の(少なくとも初期の)挙動を決定する以上、そこに自ずと限界があります。人工知能ハルが自慢(?)したような、チェスができる人工知能とは、人類にとって挑戦でした。
チェス対戦マシン人工知能から将棋へ
現実世界でおそらく最も有名な初期の人工知能は、IBMのチェス対戦マシンのディープ・ブルー(Deep Blue)です。1996年、当時の世界チャンピオンのガルリ・カスパロフと対戦し、勝ち越しました。チェスほど入り組んだゲームで、人工知能が最強の人間を凌駕したとして、話題になりました。
なお、ディープ・ブルーは、あくまでチェス対戦プログラムなので、そういう意味では、「人工知能」と呼ぶには語弊があるかも知れません。これは、今に至るまで同じで、何を持って「知能」と定義するかによります。ただし以下では、便宜上、「人工知能」で統一します。
日本の将棋は、ルールの原理的に、(西洋の)チェスよりはるかに複雑です。取った相手の駒を自分の駒として打込めるため、場合の数がはるかに大きくなるからです。実際、まともな将棋対戦人工知能の発展は、その後、時間がかかりました。たとえば、日本航空(または全日空?)の国際便の座席に将棋対戦ソフトがあって、2003年頃だったか試したところ、ちゃんちゃら弱くてお話にならなかったのを覚えています。
なお、1996年のディープ・ブルーは、巨人IBMが威信をかけてハード、ソフト共に開発に大金を費やしたプロジェクトでした。だから、それと貧弱な飛行機座席の環境とでは、もちろん公平な比較ではありません。もっとまともな商用将棋ソフトであっても、程度の差こそあれ、単純比較はできません。つまり、チェスに比較しての将棋の本質的な複雑さもさることながら、人工知能の開発陣の本気度(資金力)にも雲泥の差があったものでした。
しかし、それもやはり時間の問題ではありました。2007年、将棋の渡辺明竜王(当時)が、当時の最高峰の将棋対戦人工知能と対戦して辛勝しました。逆に言えば、その程度には、将棋対戦人工知能が進化していたことが証明されました。実際、日本将棋連盟は、早くも2005年にプロ棋士とソフトとの公開対局禁止通達を出しています。
当時から、巨大企業による本格的なプロジェクトこそ無けれど、多くの人々が将棋対戦ソフト(人工知能)の開発に凌ぎを削ってきました。将棋対戦ソフト同士による公開コンテストも毎年開かれるようになりました。そして2013〜2015年の間、毎年、その年の最高の将棋対戦人工知能とプロ棋士5人との5番勝負が催されました。結果、全体として将棋対戦人工知能の勝ち越しになりました。最初の一年を除いて、棋士側は、A級棋士まで登場しています。棋士側5人全員の平均を取れば超一流棋士とまでは言えないものの、プロ棋士の水準の中でも相当の人が対戦した結果としてそうなったものでした。
なお、付記すれば、それら5番勝負の際には、対戦人工知能側に厳しい制限が課されています。たとえば、(スーパーコンピューターを駆使したIBMのディープ・ブルーとは異なり)ハードは基本的にパソコン一台のみ、また棋士側に事前にソフトが貸し出されて棋士側は練習対局自由、そしてそれ以降はソフトの改変改善禁止、という条件です。そこまで手枷足枷はめられてなお、プロ棋士側が負け越した、というのが、重い真実です。端的には、将棋対戦人工知能は人間の棋士を凌駕した、と言ってよいでしょう。
この状況を受けて、2015年10月、情報処理学会は、「コンピュータ将棋プロジェクト」の終了を宣言しました。
解かれたゲーム
その数年前の2007年、(西洋)チェス版を使って行う頭脳ゲームである「チェッカー(draughts/checkers)」では、計算機(スーパーコンピューター)により(勝敗に関しては)完全に解かれた、と「Chinook」というチームが宣言しました。これは、計算機が、(勝ちにつながる)可能な全ての手を読み切ることに成功した、という意味です。つまり、仮に両者が最善手を尽す場合、勝負の始まる前から、すでにどちら(先手か後手)が勝つかあるいは引き分けるか分かった、というわけです(答は、ここでは伏せておきます)。
遡れば、その10年あまり前の1994年(もしくは解釈次第で1995年)、同「Chinook」のチェッカー対戦マシンが、当時のチェッカーの世界最高棋士を破っています。チェッカーは、チェスに比べれば単純であるため、スーパーコンピューターを動員することで、全ての可能な手を読み切ることができたという次第です。
原理的には、チェスであれ将棋であれ、あるいは囲碁であれ、同じことは不可能ではありません。ある将棋漫画のパロディーのシーンに、未来の将棋対戦マシン同士の対戦で、先手が初手1六歩を指すやいなや、後手が「負けました」と投了するシーンがあったのを覚えています。あながちあり得ない話とは言えないことになります(1六歩でそうなるとは考えにくいにせよ!)。
AlphaGo以前の囲碁対戦マシン人工知能
さて、チェスや将棋とは別の次元にあるのが囲碁、とずっと言われ続けていました。19×19路の囲碁では、数学的に言って、将棋やチェスに比べて複雑さが桁違いだからです。
たとえば、チェスの先手の最初の一手は20通り、続く後手の一手も20通り、つまり最初の二手の場合の数は 400通りに過ぎません。将棋でも900通りです。囲碁の場合は、129960通りあります。その後も、一局終了まで、チェスの場合は平均40手、(プロ)将棋で110手、囲碁の場合は220手くらいなので、囲碁がずっと複雑なのが分かります。
数学的には、場合の数の桁数を常用対数で表せば、チェッカーが 31、オセロが 58、連珠が 70、チェスが 123、将棋が 226なのに対し、囲碁は 360に及ぶそうです(文献1)。ここの指数は常用対数、つまり数字が1異なれば10倍異なります。囲碁は、将棋に比べても10の130乗(=)以上、チェッカーに比べれば 10の330乗(=)程度、数学的に複雑ということです。だから、たとえばチェッカーを1日で解ける超々高速マシンがあったとして、宇宙の終わりまでかかってもチェスを解くのは全く不可能で、まして囲碁ならば宇宙の終わりまでかかってその世界の一端に触れることもできかねる、という程度の計算量になります。
2012〜2014年、当時最高の囲碁対戦ソフト(人工知能)が、一流プロ相手の4目の置き碁(ハンデ)の勝負では、勝ったり負けたりでした。4目のハンデとは、あまりにも大きなハンデ、逆に言えば、当時の囲碁対戦ソフトは、依然、人間のトップとは比べ物にならない実力だったわけです。たとえば、平手(ハンデ無し)の対局であれば、最強アマチュアが一流プロと対戦するとプロ側が100戦100勝になるだろうところ、もし4目(おそらくは3目)の置き碁であれば完全に逆になりそうです。
だから、4目の置き碁でプロとよい勝負、ということは、囲碁ソフトがアマチュアのトップレベルに近づいて相当打てるようになった、ただしプロの水準にはまだまだ、という状況を意味します。当時、囲碁対戦人工知能が一流棋士に追いつくのは、まだ当分(あと10年?) かかる、というのがおよそ一致した見解だったようです。
AlphaGo対李世乭 5番勝負
そんな中、突如新星のごとく登場したのが、グーグル・ディープマインド(Google DeepMind)がグーグル社の全面的支援で大金を投じて開発した AlphaGo(アルファ碁)です。開発開始後、わずか一年あまりに過ぎないこの 2016年3月、世界最強棋士の一人である李世乭(イ・セドル)と5番勝負を行い、4勝1敗で圧勝しました。衝撃でした。
その対局中は、一番一番、一流棋士によって解説されました。第二局の高尾紳路(実力制6人目の名人本因坊)九段の解説が象徴的でした。高尾によれば、中盤頃までは、AlphaGoが全然だめで、李世乭の優勢疑い無し、という解説だったのですが……、その後では、実はAlphaGoが優勢であることが分かり、結局、そのまま押し切って完勝しました。高雄をして「自分は何を言っていたんだ」と頭を抱える状態でした。
顧みると、AlphaGoの打ち手は、一流プロの目から見ても意味が分からなかった手が少なくなく、さっぱり駄目だ、と当初は判断されたようです。しかし、局面が進んでみると、そのような駄目出しされた手が生きてきて、結果的にAlphaGoの勝利につながったのでした。つまり、AlphaGoの打ち方は、一流プロの(おそらくは共通する)感覚とは異質で、それでいて囲碁として有効な手だったようです。
ちなみに、これと似たような現象は、局所的には、将棋でも幾度も見られました。将棋に、「コンピューター定跡」と言われるものが幾つもあります。一流プロが誰も指したことが無い手、つまりおそらくは誰も考えつきもしなかった手、を将棋ソフトが初めて指し、それがその後、定跡、つまりその局面において有効な手筋として、人間のプロ棋士にも認められて採用されるようになったものです。
ただし、AlphaGoの場合は、将棋以上に、プロ棋士をもってしても理解不能な打ち方が少なくなかったようです。将棋の場合、(対プロ棋士の対局で)ソフトによる新手は、指された直後はともかく、数手進んだ後、あるいは遅くとも対局が終わる頃までには観戦プロ棋士にその意味も有効性も理解され、遠からず(プロによる詳細な検討を通れば)定跡として確立しているのが常でした。比較して、AlphaGoの打ち手の意味は、観戦プロ棋士にとって対局終了の時点でもよく分からず狐につままれたままのような印象を受けます。一流プロ棋士の高尾をして頭を抱えていた様子が象徴的です。囲碁の方が将棋よりもずっと手が広いため、理解が難しいことが影響しているのでしょうか。
AlphaGoがどう動くか?
AlphaGoが採用するアルゴリズムは、多層構造のニューラルネットワーク(Deep Neural Network: DNN)による深層学習(ディープラーニング, deep learnig)です。AlphaGoは、当初、過去のプロ棋士の大量の棋譜を学習することでプロ棋士のように打つことを目指し、ついで他の囲碁対戦ソフトと対戦して学びを深め(この時点ですでに全勝に近かったとか)、そしてその後、自分自身と何千万局も対戦することで、自ら成長したと聞きます。
これは、人間の一流棋士が(囲碁に)強くなるのとある意味では同じパターンでありましょう。過去の棋譜や対戦で成長するのはもちろんですが、結局のところ、世界一を目指すならば、他の人と全く同じように打っているのではだめで、最終的には自分自身で研究を深めることが不可避でしょうから。それを、人工知能がやり遂げた、そしてその成果を証明した、というのは、重要な一里塚だと感じます。
興味深いのは、(報道によれば)AlphaGoは、学習はしても、本質的に囲碁のルールさえ理解していないそうです。まして、手筋などは知りません。たとえば、第5局では、基本手筋の一つの石塔シボリの筋を知らないことから白の一群が全滅の憂き目にあいました(冒頭の写真がその局面。そんな大損をしても、最終的に李世乭に勝利したのですが……。人間としては口あんぐり、です)。過去の棋譜の学習から、たとえば禁じ手などは、目的達成、つまり勝利するためには、「確率的に」打たない方がよいことが学習されている、というのが、AlphaGoの打ち方ということになります。
人間の囲碁の初学者であれば、最初は当然ルールから学びます。そして、石の生き死に、詰め碁や定石を本や教師によって学んで行くものです。しかし、AlphaGoの場合、その道筋は全然異なる、というわけですね。AlphaGoがプロ棋士による膨大な過去の棋譜を学習した際、多くの定石は自然に浮かび上がってくるでしょう。だから、定石にそった、あるいはそれに近い、打ち方をすることは「確率的に」あるにせよ、AlphaGoはそれを定石として理解して従っているわけではありません。
同様に、AlphaGoの自己との対戦による学習とは、たとえばある同一局面において実質上一間飛びと二間飛びとコスミとの三択だったとしたら、その局面から候補手それぞれにつき1000局終局まで自己対局してみて、勝ちが多いものを最善手とする、という方法です。具体的には、たとえば、自己対局1000局中で一間飛びが700勝、二間飛びが400勝、コスミが300勝であれば、一間飛びが最善である確率が70%(単純な例なので、具体的な数字は異なるかも知れません)と判断します。一方、人間であれば、たとえばそこから熟慮しながら10手進めてみたいくつかの結果局面の「形勢判断」に基づいて、どちらの手が勝っているかを判断するものでしょう。AlphaGoの方法は、計算機の計算速度を活用した無骨な力技と言ってもいいでしょう。
言葉を替えれば、AlphaGoは、(少なくとも手が広い局面においては)念入りに論理的な読みを入れて打っている、というよりは、確率的に勝ちにつながりそうな手を選んで、もしくは言葉を代えれば「感覚的に何となく」、打っているようです。だから、AlphaGoの一手一手の打ち手の意味や(AlphaGoの)動機に関しては、開発者自身も説明不能と聞きます。それでも、結果的に、生まれて1年の今の段階ですでに世界最強レベルの棋士を打ち負かしているのですから、戦慄を感じます。
この「AlphaGoが理解はしていない」事実を指して、人工知能なにするものぞ(恐るるに足らず?)、というような批評をする人も見かけました。しかし思うに、別に「理解」していようがいまいが、結果的に正しい手を打っているならば、何の問題がありましょうや? そもそも、人間の言う「理解」とは何ぞや、という哲学的な問いも考えられそうです。人工知能の「理解」は人間とはベクトルが異なった、しかし同様あるいはそれ以上に有効な(可能性がある)ものである、とも言えるかも知れません。
AlphaGoの弱点?
このAlphaGoの「確率的」な手の選択挙動は、時には弱さとなって顕われる可能性はあります。たとえば、第四局の中盤、形勢不利を囁かれた李世乭は、奇手の割込み一発(白78)で逆転に成功し、勝利をたぐり寄せました。観戦中のプロ棋士を驚かせ、また感嘆させた、考えつきにくい妙手です。これは私見ですが、「考えつきにくい」ということは、AlphaGoが学んだ過去の棋譜にも類似例がごく少なく、したがってAlphaGoのアルゴリズムとして「確率的に」可能性が排除されて考慮されにくかったのかも知れません。無論、プロ棋士を驚かせたほどの妙手である以上、人間だから思いついたような手というわけではありません。その局面では AlphaGoも他の並のプロ棋士程度の見え方だった、というべきで、李世乭の慧眼を讃えるべきところでしょう。
なお、「人工知能」一般として、他の場面を考えた時、この側面が問題を起こす可能性は考えられます。たとえば、自動車の自動運転人工知能を考えてみます。もしそれが道路交通法を理解せずに「確率的に」もっとも安全かつ合法の運転を行っているならば、何らかの稀な条件が重なった時、(開発者も含めて)人間に理解できない挙動、たとえば交通法規違反やあるいは周りの他の道路利用者(人間)が予想できない挙動、を示す可能性があります。それが稀であっても、その結果が重大になることで、それが問題を引き起こすことは十分考えられます。
人工知能時代への示唆
最後、AlphaGoの躍進に触発されて、未来のことを少し考えてみます。
AlphaGoの心臓部の応用
AlphaGoを作ったディープマインド社による快挙の一つは、AlphaGoの心臓部でもある機械学習のアルゴリズムに汎用性を持たせることに成功したことです。
ディープマインド社が開発した人工知能の一つは、機械学習のアルゴリズムを使うことで、数多くの古典的コンピューター・ゲーム(たとえば、古のインベーダー)をほぼ完璧にプレイするようになった、と報告されています。 その人工知能は、プレイ前に、それぞれのゲームのルールさえ知らされません。 だから、最初は、最低最悪のプレーヤーとして、ゲームを始めます。 しかしプレイする中で、自らゲームの最適なプレー方法を「学び」、それほど時間をかけず成長して、完璧なプレーヤーとなっていきました。 ここで、「学ぶ」とは、試行錯誤を繰り返すことでよいスコアを出す方法を自ら見つけ出していったことを指します。 結果的に、ソフトウェアはゲームのルールを知る必要もなかったのです。 よいスコアを出すためには、必然的に、ゲームのルールに沿っていくことになったからです。 たとえば、インベーダー・ゲームであれば、インベーダーからの攻撃を回避し、また攻撃する、というような。
そして特筆すべきは、同人工知能は、ゲームごとに特化したアルゴリズムが実装されたのではなく、一つのアルゴリズムでもって、異なるゲームを学習し、適応していったことです。 本稿の最初に述べたように、チェス対戦マシンのディープブルーはもとより、従来、ソフトウェアとは、それぞれの目的(この場合はゲーム)に特化したものだったのは当たり前でした。 内部的に一定の共通のルーチンを使うことは普通であっても、それをどう組み合わせ、また必然的にそれだけでは対応できない部分を新たに制作することは、人間のプログラマーの仕事でした。 しかし、ディープマインド社のゲームをプレーする人工知能は、それよりも一歩進んだ汎用性を持っていて、従来のソフトウェアとは一線を画する、つまり、より「人工知能」と呼ぶにふさわしいものになっているようです。
AlphaGoの場合、同様の機械学習に、モンテカルロ法による探索および自己学習を加えて組み込んだ、という違いはあります。 しかし、AlphaGo自体はルールを学ぶことなく、自ら学習していった、という意味では共通点があります。
比較して、現在の最強将棋対戦ソフトでは、ある程度の序盤の定跡は事前にデータとして組み込まれていて、それを参考に使うようにプログラムされています。 つまり、将棋に特化した作りになっています。 実際、将棋においては(チェスも囲碁も同じです)、序盤は、手の幅が広過ぎてかつその意味が不明瞭のためコンピューターが苦手とすると容易に推測できます。 だから、将棋において手っ取り早く最強を目指すならば、序盤において、世紀を超えて培われた定跡を参照するのは、最善の方法だと思います。
しかし、AlphaGoはそういう目的に特化したアプローチではなく、他の課題にも通じるような汎用アプローチを取る、という野心的プロジェクトでした。 定石はおろか、ルールさえ知らないのですから。 にも関わらず、そして将棋に比べてもはるかに複雑であることが自明だったにも関わらず、最強の人間を凌駕した、というのが、まさに驚異であり、同時に、人工知能の将来性の証明でもありましょう。 ある意味で、末恐ろしい、と言えそうです。
現実味を帯びてきた技術的特異点
AlphaGoを開発したグーグル・ディープマインドの創始者は、人工知能の分野で天才と名高いと聞きます。天才の才能とグーグルの資金力とが合わさることで、今回の偉業が成し遂げられたのでしょう。逆に言えば、AlphaGoの開発には、天才が必要だったと言えます。
他の囲碁対戦ソフトも似たり寄ったりではあります。近年の囲碁対戦ソフト世界大会(UEC杯)では、ハードウェアの性能は無制限でした。しかし、2013年優勝マシンCrazy Stoneは、ハードウェア的には同大会参加の最速マシンに比べて1/30程度と貧弱だったそうです。つまり、設計者の腕が、30倍の機械的能力の差を超えるほど優れていた、ということになります。人工知能の開発には、職人芸のすぐれた開発者、技術者の腕が決定的に効いていることを意味します。他の全てのことと同じく、それは自然な傾向でしょうね。
これら囲碁対戦人工知能の開発は、局面局面においての最適解を探すことだ、と集約されます。大量の要素の中から最適解を探索するのに、計算機の能力がフルに使われます。そしてその最適解をできるだけ正確に、またできるだけ高速に探索するよう、アルゴリズムを最適化する際に、開発者の腕が問われたわけです。
ここで、結局は、開発者がしていることは、「最適化」させているだけ、と大胆に断じるならば、そして最適化は計算機が得意とすることである、とこれも大胆に仮定するならば、そのうちいずれ、(現在開発者の腕の見せ所である)アルゴリズムの最適化自体、計算機にやらせればいい、という時代が来るかと予想できます。つまり、人間の中の天才の開発能力さえ、計算機たる人工知能が凌駕する時代です。一旦その段階に達したら、あとは、人工知能が自己進化を遂げて、遠からず人間がはるかに及ばない領域に達する、ということになります。
その時期、つまり人工知能が人間の開発能力さえ上回って自己進化できるようになる時点を
「技術的特異点(シンギュラリティ)」(Technological Singularity)
と呼びます。それがいつ来るかは分かりませんし、ひょっとしたら永遠に来ない可能性も否定はできません。しかし、計算機に何が可能か、そして今回のAlphaGoの快挙に代表される今の進歩のペースを考えれば、21世紀中に、早ければ21世紀の半ばには、技術的特異点が訪れるだろうという予想が現実的に思えます。
人工知能が支配する世界は、手塚治虫や映画『マトリックス』の例を挙げるまでもなく、古くからSFや文学の世界で採り上げられてきています。今の人類は、それを本当に現実的な世界として考えなくてはいけない時代に差し掛かっているように感じるのでした。
参考
- Game complexity (各ゲームの複雑さの表) (Wikipedia)
- 三村智保九段 AlphaGo対李世乭 5番勝負のそれぞれの対局進行時のプロ棋士による(各打ち手の)解説およびコメント。碁の級位者にも分かりやすく、秀逸。
- 「<囲碁:人間vs人工知能>神秘の領域、中央の「厚み」・・・アルファ碁は計算した」 中央日報(韓国) 日本語版 (人間の碁打ちに比べてAlphaGoが特異な点の解説)
- ものぐさ将棋観戦ブログ 将棋対戦ソフトをウォッチしてきた筆者による、今回のAlphaGo対戦とその背景の分かりやすいブログ記事
- 「コンピュータ将棋のトッププロを凌ぐ強さが確認されるまで」 by LM-7 (将棋対戦ソフト進化の歴史のまとめ)
- 「Mastering the game of Go with deep neural networks and tree search」David Silver et al., Nature 529, 484–489 (28 January 2016) doi:10.1038/nature16961 (DeepMind社チームによるAlphaGoについて述べたNature誌掲載論文)
- 「Google AI algorithm masters ancient game of Go — Deep-learning software defeats human professional for first time.」Elizabeth Gibney, Nature 529, 445–446 (28 January 2016) doi:10.1038/529445a (Nature誌の解説記事)
- [2016-03-30追加] "AIの「人間超え」、その時トップ囲碁棋士は — 緊急寄稿:高尾紳路九段が見たシンギュラリティの風景" (日本のトッププロ囲碁棋士による日経BPへの寄稿)