stMind

You'll never blog alone

How AlphaGo WorksとAlphaGoの裏側

www.slideshare.net

DeepMindがNatureに投稿した論文を、CMUのPhDの方が解説しているプレゼン資料がslideshareにありました。
AlphaGoの仕組みがとても分かりやすくまとめてあり、英語ですが一読の価値ありです。
スライドのアウトラインを部分的に日本語で書き出してみました。

まずはコンピュータ囲碁AIの定義

  • 碁盤を行列で表現
  • 1(黒)/ -1(白)/ 0(碁石なし)
  • d手目の碁盤の状態sが与えられた時に、最適なアクションaを選ぶ

実現方法

  • あらゆる碁盤の状態をどうやってシミュレートする?
  • d手目の全aについて、ゲームが終了となるまでシミュレーションして勝ちor負けを観測
  • 全シミュレーションで最も勝ち数が多いaを選択
  • これは不可能
  • 可能な碁盤の状態は、宇宙の原子数よりも多いと言われている

探索空間を絞り込むことがポイント

  • アクションaの候補を絞り込む = 幅削減
    • Policy Network
  • アクションaの良さを評価(位置の評価) = 深さ削減
    • Value Network
    • 最後までシミュレートしない
    • v(s): 碁盤の状態sの時の評価

アクションaの候補の絞り込み

  • P(a|s)を学習
  • プロ棋士の打ち方を学習(教師あり学習)
    • 5段から9段のプロ棋士
    • 対局数160K、30Mの棋譜データ
  • 13層のCNNで実現
    • 碁盤の状態sが与えられた時のaの確率P(a|s)
  • 自己対戦で強化学習

碁盤の状態の評価

  • CNNにレグレッション層を追加
  • 1に近いほど良い、0に近いほど悪い

Monte Carlo Search Tree

  • Selection
    • アクションaの候補絞り込み(Policy Network)
    • Shallow Networkを使ってP(a|s)の高速化(Rollout)
  • Expansion
  • Evaluation
    • 碁盤の状態評価(Value Network)
  • Backup

Results

  • Rollout + Policy Network + Value Networkでプロ5段くらいと予想される

スライドには図面があって、それを見て英語の解説を読むとまた理解は深まると思います。