5月25日、グーグル傘下のDeepMindが開発したAI「AlphaGo」(アルファゴ)が中国烏鎮で開催された「The Future of Go Summit」で、世界最強囲碁棋士・柯潔(カケツ)氏と対局しました。結果は、3対0でAlphaGoが圧勝。
私は囲碁の知識はほぼゼロですが、その昔、プロのゲーム制作者を目指していたこともあり、「AlphaGoが一体、どういうプログラムで作られているのか」にとても興味を持ちました。
AlphaGoがプロ棋士に勝てた理由について、できるだけ数学的な説明は避けて、直感的に「ゆるーくわかる」を目指して解説したいと思います。(『ウォーレン・バフェットに学ぶ!1分でわかる株式投資~雪ダルマ式に資産が増える52の教え~』東条雅彦)
囲碁も投資も人間以上!? 人工知能の最前線をざっくり理解しよう
最後の砦「囲碁」でも人間はコンピュータに負けてしまった
5月25日、グーグル傘下のDeepMindが開発したAI「AlphaGo(アルファゴ)」が中国烏鎮で開催された「The Future of Go Summit」で、世界最強囲碁棋士・柯潔(カケツ)氏と対局しました。
結果は、3対0でAlphaGoが圧勝。去年、李世ドル(イ・セドル)氏がAlphaGoに負けるのを見て、柯潔氏は「AlphaGoは李世ドルに勝っても、俺には勝てない」と強気の発言をしていました。しかし、結果は完敗でした。
AlphaGoは1日に100万局ぐらいを対局して自己学習をしており、去年よりも圧倒的に強くなっていました。李世ドル氏に9勝している柯潔氏でも、まったく歯が立たなかったのです。
<参考>『コンピューター vs. 人間』の歴史
オセロ:(1997年)Logistelloが世界チャンピオン村上健に勝利
チェス:(1997年)IBMのDeep Blueが世界チャンピオン ガルリ・カスパロフに勝利
将棋 :(2013年4月)第2回将棋電王戦にて、GPS将棋がA級棋士 三浦弘行八段に勝利
囲碁 :(2016年3月)AlphaGoがイ・セドル九段に勝利
:(2017年5月)AlphaGoがカ・ケツ九段に勝利
コンピューターが苦戦する要因「探索空間の大きさ」
なぜ、これまで囲碁はコンピュータよりも人間の方が有利だったのでしょうか? 最も大きな要因は、「探索空間の大きさ」です。
<探索空間の大きさ>
オセロ:10の60乗
チェス:10の120乗
将棋 :10の220乗
囲碁 :10の360乗
例としてチェスと囲碁を比べてみると、コンピューターから見た場合の処理負荷の違いは一目瞭然です。
<チェス>
最初の一手は、先手の白は20通り、後手の黒も20通りである。両者が最初の一手を打ち終わった時に現れる盤面の形は20×20で400通りになる。
<囲碁>
盤面に描かれた縦横19本ずつの直線の交差点361個の1つに先手の黒を打つ。後手の白の打ち方は360通りである。両者が最初の一手を打ち終わった時に現れる盤面の形は361×360で129,960通りになる。
仮に6手先を読むことにすると、次のような計算式になります。
<チェスの枝別れ総数>
20×20×20×20×20×20=64,000,000通り
<囲碁の枝別れ総数>
361×360×359×358×357×356=2,122,781,978,399,040通り
囲碁の6手先の枝別れ総数は、2千兆を超えます。枝別れ総数が多ければ多い程、コンピューターの処理に負荷がかかります。
元々、囲碁でコンピューターが人間に勝てるまでに、あと10年かかると言われていました。枝分かれ総数がほぼ無限大に広がるため、コンピューターの処理能力では間に合わなかったのです。人間が一手を打つ度に、コンピューターの方が「うーん」と唸って、1週間後に次の一手を打ち返すようだと対局になりません。
チェスでは1997年にIBMのDeep Blueが世界チャンピオンのガルリ・カスパロフに勝利していますが、チェスと囲碁ではまったく前提条件が異なります。Deep Blueはコンピューターの処理能力を極限まで高める力技で押し切りましたが、囲碁では力技だけでは人間には勝てません。
AI革命の到来を予感させるAphaGoの完全勝利
囲碁のトップ棋士達も、全ての手を読み切って打っているわけではありません。囲碁は全ての手を読み切れないため、他のゲームよりも「思考」の比重が圧倒的に大きいという特徴を持っています。
プロの棋士ですら、相手の手筋を読み切れないので、(論理的には説明不可能な)閃きに似た力も活用しながら、打っていると言われています。
コンピューターが囲碁で勝とうとした場合、「計算」だけではなく、人間と同じように「思考」という領域に踏み込まなければいけません。
<人間とコンピューターの得意不得意>
単純計算…コンピューターの方が得意
思考…人間の方が得意
今回、AlphaGoを勝利に導いたのが、「モンテカルロ木探索」の発明だと言われています。
従来の探索アルゴリズムは、開発者側が予め作った評価関数(最善手を探すための処理)に基づいて最善手を導き出すという方法でした。ところが、モンテカルロ木探索は、コンピューターの内部でランダムシミュレーションを行った結果を元に最善手を導き出します。「ランダム」に探すという所がポイントです。
<モンテカルロ木探索のイメージ>
出典:『モンテカルロ木探索の理論と実践』美添一樹氏
評価関数なしでも探索できるモンテカルロ木探索の発明によって、コンピューターは擬似的に人間の思考に近づくことができたのです。
Next: AIが動かすスーパーマリオで「モンテカルロ木探索」を理解する
モンテカルロ木探索をざっくりと理解する
モンテカルロ木探索をおおまかに理解するために、「スーパーマリオ」を例にしてざっくりと説明していきます(あくまでもざっくりとしたイメージを掴むことを目的に記しています)。
<手順1. マリオを20体、生成する>
まず、20体のマリオにランダムに動く遺伝子を与えます。
例)
マリオ1は次のような動作をします。
最初の1秒間:「←A」(左にジャンプする)
次の1秒間:「→B」(Bダッシュで右に進む)
次の1秒間:「←B](Bダッシュで左に進む)
次の1秒間:「→A」(右にジャンプする)
次の1秒間:「A」(止まったままジャンプする)
<手順2. 優秀なマリオを評価する>
これら20体のマリオを実際にプレイさせて、より距離が進んだマリオが優秀なマリオだという評価を下します。スーパーマリオは右スクロールのアクションゲームなので、より右に進んだ方が優秀だと判定できます。
<手順3. 20体のマリオから優秀なマリオ2体を選出する>
20体のマリオから優秀なマリオ2体を親として選びます。この2体の親マリオが持つ遺伝子データを交叉させて、子マリオを2体、生成します。
- 親マリオ1×親マリオ2=子マリオ1(遺伝子1+遺伝子2)
- 親マリオ2×親マリオ1=子マリオ2(遺伝子2+遺伝子1)
そして、手順1から手順3を10回、繰り返して、子マリオを20体、生成します。
<手順4 20体の子マリオができたら世代を交代させる>
20体の子マリオができたら、世代を交代させます。
ポイントは子マリオは優秀なマリオの遺伝子(ゲームをプレイする操作手順)を引き継いでいるため、世代が進めば進む程、どんどんマリオが優秀になっていくという点です。
ゴールできるまで永久にこの世代交代を繰り返します。
<番外編>
基本的には手順1から手順4の流れとなるのですが、時々、ランダムで遺伝子データを変異させることもします。この突然変異は、局所的な最適解からの脱出を図ることを狙っています。
例えば、1匹目のクリボーはうまく踏みつけてやっつけられるけど、その直後にキラー(弾丸のような形をしたキャラクター)に当たってしまうような場合、この突然変異が有効に機能します。
近視眼的にはクリボーをやっつけた方が良いように見えても、長期的にはそのクリボーは無視して、キラーに当たらないようにした方が良いということがよくあります。
実際にスーパーマリオのプレイを動画で見てみよう
YouTubeで実際に「モンテカルロ木探索」で学習したプレイと、「評価関数」を使って学習したプレイ(従来の手法)がアップされています。
それぞれ2分程度の動画なので、実際に再生して見比べてみましょう。難しい理論を理解するよりも「百聞は一見にしかず」で、見た方が絶対に早いと思います(両方ともバックミュージックがかかるため、音量にはご注意願います)。
<動画1:モンテカルロ木探索で学習したプレイ>
上記のモンテカルロ木探索で学習した方は、敵がいると途中で立ち止まったりしながら、慎重に進んで行くという感じです。ゲーム開始18秒前後で、大勢の敵に囲まれて、突進するとまずいと思ったのか、一旦、止まって後ろを振り返っています。
(動画1の0:18)
中には危険なプレーもあるのですが、一瞬でもいいから「立ち止まる」という動作をしており、より人間に近いプレイをしているという印象を受けます。
次に、モンテカルロ木探索を使わない、従来の評価関数を使って学習したプレイを視聴してみてください。
<動画2:評価関数を使って学習したプレイ(従来の手法)>
こちらの動画では素人が見ても、人間らしくない操作が目立ちます。
特に特徴的なのが、敵がいようがいまいが、ひたすらBダッシュで突進していく所です。そのマリオの姿は一瞬、無敵のスターマリオなのかな?と錯覚するぐらい最初から最後まで終始、全力疾走で駆け抜けています。ぎりぎりのジャンプで敵を避けたり、敵に激突する寸前でファイヤーを出してやっつけたりと、驚きのファインプレーを連発しています。
私が一番、ビックリしたのはゲーム開始45秒前後で自ら地下に落ちに行って、命からがら這い上がるプレーです。しかも後ろ向きになって這い上がりながら、直前に放っていたファイヤーで画面の右側にいるノコノコをやっつけています(もはや神業です!)。
(動画2の0:45)
人間が操作していたら、こんな変な動作にはならないでしょう。他にも挙げるとキリがないのですが、パックンフラワーに当たりそうになっているプレイが多くて、見ていてヒヤヒヤします。
(動画2の0:08)
(動画2の0:10)
本来、ファイヤーマリオになっている場合、Bボタンでファイヤーボールを出して、敵をやっつけられます。それなのに、ノコノコをファイヤーボールで倒さず、神業とも呼べるギリギリのジャンプで当たらないように避けています。
(動画2の0:28)
モンテカルロ木探索を使っていない評価関数方式では、どうしても人間離れしているという印象を受けてしまいます。
モンテカルロ木探索は「人間らしい動作をする」のがポイント
人間の脳は、短い時間で試行錯誤を繰り返して、最適解を導くのに長けています。
現状では、人間の脳がどういう風に思考しているかを完全に解明しきれていません。私たちの脳は、モンテカルロ木探索そのもので考えているわけではないのです。
しかし、モンテカルロ木探索を使うと、結果的に人間の脳が下すのとよく似た判断をすることがわかりました。先程のスーパーマリオのプレイにも、そのことがよく表れていると思います。
モンテカルロ木探索の発明によって、コンピューターは人間により近い思考ができるようになりました。人間らしい思考ができるようになったから、今回、GoogleのAlphaGoが世界最強棋士・柯潔氏に勝てたのです。
人工知能が人間の脳により近づいたことを意味しています。
Next: 今後、Googleは人工知能をどのように使うのか?
今後、Googleはこの技術をどのように使うのか?
AlphaGoは2017年に入ってから、正体を隠しながらオンライン対局に参加していました。AlphaGoは正体を隠して、19歳の最強棋士である・柯潔氏に2度勝利していたことが対局後に報じられました。つまり、柯潔氏は元々、勝つ見込みが低かった対局に挑んでいたのです。囲碁の対局で、人間がAlphaGoに勝つことは不可能になったのも同然です。
そして、AlphaGoを開発したDeepMindのCEOデミス・ハサビスは、次のように語っています。
囲碁発祥の地とされる中国で、世界トップレベルの棋士と連戦することは、AlphaGoにとっても進化のための最高の機会となりました。このような最高の機会を経験し、AlphaGoは引退させることといたしました。
今後、AlphaGoの開発チームは「次のレベル」のための開発に注力することとなります。アルゴリズムをより汎用的なものに改造し、この世の中に存在する複雑な問題を解決するためのお手伝いができるようになればと考えています。
想定しているのは、病気の治療方法の発見や、消費エネルギーの劇的削減、革新的な新素材の開発などです。
出典:トップ棋士に3連勝したAlphaGo、引退を表明 – TechCrunch Japan(2017年5月28日配信)
DeepMindはイギリスの人工知能企業です。Googleが2014年に4億ドルで買収して、社名を「Google DeepMind」としました。
Googleはハサビスという天才技術者を引き入れて、広告の会社からAIの会社に進化を遂げようとしています。次、DeepMindが打ち出すサービスは、実利を伴ったサービスになる可能性が高いと思います。
AlphaGoの引退表明は今後、GoogleがAIを使ったサービスをリリースすることを予感させます。
『ウォーレン・バフェットに学ぶ!1分でわかる株式投資~雪ダルマ式に資産が増える52の教え~』(2017年5月28日号)より一部抜粋、再構成
※太字はMONEY VOICE編集部による
無料メルマガ好評配信中
ウォーレン・バフェットに学ぶ!1分でわかる株式投資~雪ダルマ式に資産が増える52の教え~
[無料 週刊]
■電子書籍『バフェット流投資入門(全292頁)』をメルマガ読者全員に無料プレゼント中♪世界一の投資家ウォーレン・バフェットの投資哲学、人生論、さらに経済や会計の知識が、このメルマガ一本で「あっ」と驚くほど簡単に習得できます!!著者はバフェット投資法を実践して、6000万円の資産を築き、さらにヒッソリと殖やし続けています。(ブログよりも濃い内容でお届け☆彡)●バフェットの投資法を小学生でもわかる例え話で学べます。●複利マジックで経済的自由の達成を目指します。●日本経済の現状から取るべき投資戦略がわかります。