Tech Blog
フューチャーアーキテクト開発者ブログ

古典的ゲームAIを用いたAlphaGo解説


はじめに

こんにちは。データ分析チームの李(碩)です。
この記事はAlphaGo解説の紹介です。本文を直接読みたい方は下記AlphaGo解説にてスライドをご覧になってください。

AlphaGo調査のきっかけ

私がAlphaGoについて初めて聞いたのは2016年3月、囲碁の伝説的な棋士、イ・セドルとの対局の時でした。AlphaGoの勝利が確定した時に「人間はもはや機械に勝てない!」とか、「AIが支配する世界」など海外のメディアも非常に炎上してたことを今でも覚えています。囲碁のプレイ経験もないし、ゲームAIなんて興味もなかったのですが、さすがにこれだけ大騒ぎになると調べたくなるものですね(笑)。

AlphaGoは背景知識がない人には難しい

AlphaGoの中身はどうなってるのかを調べるためにいろいろとブログや記事などを読んでいたのですが、当時は難しいアルゴリズム説明がドンとくる不親切な情報しか見あたらなかったです。何を説明しているのか全く分からなかったので、結局AlphaGoの論文を直接読むことになりました。そこで分かったのが、これはゲームAIの背景知識がないと理解しにくいことでした。AlphaGoがモンテカルロ木検索とDLを使って強くなったとは理解しましたが、これって何がすごいのかが全く伝わらないのです。

AlphaGo中身と、そのすごさを理解するには、古典的ゲームAIも触れる必要がある

突然AlphaGoのアルゴリズムをドンと説明されても困ってしまいます。そもそもなぜAlphaGoが今の形になったのか、従来のアルゴリズムと何が違うのか、性能はどれくらい上がったのかが全く見えなかったです。
結局私はゲームAIの歴史を含め、他の木探索系のアルゴリズムを調査しその違いを比較することになりました。
その背景知識を得た後に、なぜAlphaGoが今の形になったのか、どこがすごいのかがやっと理解できたのです。

本資料の狙い

この資料は私のように、ゲームAIに関する背景知識はないがAlphaGoの中身が知りたい人のための資料です。単純にアルゴリズムを説明するのではなく、古典的なゲームAIに比べAlphaGoはどう発展してきたのか、何がすごいのかを説明していきます。
この資料に書いている古典的ゲームAIは全てのゲームAIではないですが、AlphaGoの発展の方向性を理解するには十分だと思っています。本資料ではディープラーニングや強化学習の詳細については触れませんが、その詳細が知りたい人はAlphaGoの論文を直接読んだ方が絶対に分かりやすいと思いますので、論文をおすすめします。

本資料の目次

  1. AlphaGo簡略紹介
  2. ゲームAIの基層知識紹介
    • ゲーム木
    • 完全ゲーム木
    • 部分ゲーム木
  3. 効果的にゲーム木を計算するためのポイント
  4. ミニマックス法 (1949年)
  5. アルファ・ベータ法 (1958年)
  6. 古典的アルゴリズムの成功と失敗
    • チェスでの成功:Deep Blue、1997年
    • 囲碁での失敗
  7. モンテカルロ木検索 (1993年)
    • 囲碁での進歩
    • AlphaGoのベースになるアルゴリズム
  8. Deep Learningの登場 (2012年)
  9. AlphaGoの登場 (2016年)
    • モンテカルロ木検索の改良
    • Policy Network
    • Value Network
    • Rollout Policy
    • 強化学習
    • AlphaGoのアーキテクチャ
    • 性能比較

まとめ

本資料は2016年の論文をベースにしていますが、現在のAlphaGoは仕組みがかなり変わったらしいですね。2017年末新しい論文が出るとのことですが、非常に楽しみです。その論文が出る前に、この資料がたくさんの人の役に立てればと思っています。

ちなみに、技術職ではない私のかわいい妻に見せたら、何の問題もなく理解してくれたので、背景知識が無くても読めると思います。

では、また新しい論文がでるまで、みなさんお元気で!