alphago zero 解説

24
Copyright ©2017by Future Architect, Inc. AlphaGo Zero 解説 フューチャーアーキテクト株式会社 フューチャーアーキテクト株式会社 テータサイエンスチーム 李 碩根 2017 2017 10 10 27 27

Upload: suckgeun-lee

Post on 21-Jan-2018

2.048 views

Category:

Science


0 download

TRANSCRIPT

Page 1: AlphaGo Zero 解説

Copyright ©2017by Future Architect, Inc.

AlphaGo Zero 解説

フューチャーアーキテクト株式会社フューチャーアーキテクト株式会社テータサイエンスチーム

李 碩根

20172017 年年 1010 月月 2727 日日

Page 2: AlphaGo Zero 解説

作者紹介• 名前:李 碩根• 会社:フューチャーアーキテクト株式会社• 部署:データサイエンスチーム• 役割: AI / 機械学習エンジニア

Copyright ©2017 by Future Architect, Inc. - 2 -

Page 3: AlphaGo Zero 解説

目次1. AlphaGo Zero を構成する二つのパーツ

i. ニューラルネットワーク (DNN)ii. モンテカルロ木探索 (MCTS)

2. AlphaGo Zero の学習プロセスa. MCTS による自己対局b. DNN の学習c. 学習前後の性能比較

3. AlphaGo の各種バージョン4. AlphaGo Fan vs. AlphaGo Zero5. AlphaGo Zero の性能評価6. 教師あり学習 vs. 強化学習7. 人の動き予測8. まとめ9. 参照論文

- 3 -

Page 4: AlphaGo Zero 解説

1. AlphaGo Zero を構成する二つのパーツ

i. ニューラルネットワーク(DNN)

ii. モンテカルロ木探索(MCTS)

 石の配置履歴 (s) だけをインプットとして、次の手の確率分布 (P) と現盤面の勝つ確率 (v) を計算する。  i. のモンテカルロ木探索でノード拡張と評価に利用される

 現盤面から一番良い次の手を探索。ii. の DNN を活用し、ツリーの各ノードの

拡張 & 評価を行う。

AlphaGo ZeroAlphaGo Zero はニューラルネットワークはニューラルネットワーク (DNN)(DNN) とモンとモンテカルロ木探索テカルロ木探索 (MCTS)(MCTS) の二つのパーツで構成されるの二つのパーツで構成される

- 4 -

Page 5: AlphaGo Zero 解説

1-i. ニューラルネットワーク (DNN)

インプット (s)1. 現盤面から 7 手前までの石の配置履歴

(s) アウトプット ( P, v )

1. 次の手の確率分布(P)2. インプットの現盤面での勝つ確率

(v) Residual Network(※1, 2 ) を利用

1. Conv layer の residual blocks2. Batch normalization3. Rectifier nonlinearities

※ 1: He, K., Zhang, X., Ren, S. & Sun, J. Deep residual learning for image recognition   (2016)※ 2: DNN のアーキテクチャ詳細は省略

石の配置履歴だけをインプットし、「次の手の確率分石の配置履歴だけをインプットし、「次の手の確率分布」と「インプットの現盤面で勝つ確率」両方をアウ布」と「インプットの現盤面で勝つ確率」両方をアウトプットする。トプットする。

- 5 -

Page 6: AlphaGo Zero 解説

1-ii. モンテカルロ木探索 (MCTS)

AlphaGo Zero の MCTS は三つのプロセスにて構成される1.Select (選択)

• ルートノード (R) から始め、葉ノード (L) まで評価値が高いノードを選択していく

2.Expand (拡張) & Evaluate (評価)• 1. で選択した L がゲーム終了ではない場合、 L を DNN に

インプットし、 L での勝つ確率 (v) と次の手の確率分布(P) を計算する

• 計算した v は L の評価値 (Q) になり、 P の確率分布で子ノード (C) を拡張する

3.Backup (バックアップ)• 2 . の拡張 & 評価で得られた子ノードの Q の平均値を親

ノードに反映する。その平均値が親ノードの新しい評価値になる。

上記のプロセスをループさせ、次の手の確率分布 (π) を計算する

 現盤面から一番良い次の手を探索。 現盤面から一番良い次の手を探索。i. i. のの DNNDNN を活用し、ツリーの各ノードの拡張 を活用し、ツリーの各ノードの拡張 & & 評価を行評価を行う。う。

※ MCTS のチュートリアル: https://future-architect.github.io/articles/20170804/https://future-architect.github.io/articles/20170804/

- 6 -

Page 7: AlphaGo Zero 解説

1-ii. モンテカルロ木探索 (MCTS)

選択選択 拡張 拡張 & & 評価評価 バックアップバックアップ

P: DNNで予測した次の手の確率V: DNNで予測した現盤面の勝つ確率Q: ノードの評価値。全子ノードの Qの平均値U: upper confidence bound 。 P/(1+訪問回数 )に比例π: MCTSで計算した次の手の確率分布

Q+U値が最大の手を選択 ・葉ノードの場合 (緑枠 )   Q = V 

・親ノードの場合 (赤枠)   Q = 全子ノードの Qの平

均値              

DNNで vと Pを計算し、 拡張 & 評価する

プレイプレイ

MCTSで計算した次の手の確率分布 (π)を元に一番良い手を選択する

- 7 -

Page 8: AlphaGo Zero 解説

2. AlphaGo Zeroの学習プロセス論文の「概要欄」で紹介している学習プロセルの簡略図。本資料では、論文の「概要欄」で紹介している学習プロセルの簡略図。本資料では、論文の「詳細欄」で紹介している内容を元に、プロセスを三つに分類す論文の「詳細欄」で紹介している内容を元に、プロセスを三つに分類する。る。

①MCTSによる自己対局

②DNNの学習

③学習前後の性能比較

- 8 -

Page 9: AlphaGo Zero 解説

2. AlphaGo Zeroの学習プロセス

①MCTSによる自己対局

②DNNの学習

③学習前後の性能比較

AlphaGo ZeroAlphaGo Zeroは3つの学習プロセスでは3つの学習プロセスで構成されている。このプロセスのサイク構成されている。このプロセスのサイクルが非同期かつ並列に処理されている。ルが非同期かつ並列に処理されている。

- 9 -

Page 10: AlphaGo Zero 解説

2- MCTS① による自己対局

①MCTSによる自己対局

①MCTSによる自己対局

②DNNの学習

③学習前後の性能比較

MCTSMCTSによる自己対局を行い、対局データを作成すによる自己対局を行い、対局データを作成する。る。

- 10 -

Page 11: AlphaGo Zero 解説

2- MCTS① による自己対局

MCTSMCTSによる自己対局をによる自己対局を 25,00025,000回行い対局データを作回行い対局データを作成する成する

※ 対局データの構成 : (s, π, z)    ・ s: 現在の盤面    ・ π: MCTSからの次の手の確

率分布    ・ z: 実際のゲーム勝者

- 11 -

Page 12: AlphaGo Zero 解説

2- DNN② の学習

①MCTSによる自己対局

②DNNの学習②DNNの学習

③学習前後の性能比較

MCTSMCTSによる自己対局による自己対局 (①)(①)で生成した対局データでで生成した対局データで DNNDNNを学習させるを学習させる

- 12 -

Page 13: AlphaGo Zero 解説

2- DNN② の学習

MCTSMCTS による自己対局による自己対局 (①)(①) で作成した対局データでで作成した対局データで DNNDNN を学習さを学習させるせる

変数説明 ・ 対局データの構成 : (st, πt, z) ・ st: 現在の盤面 ・ Pt: st を入力としたときの次の手の確率

分布 ・ vt: st を入力としたときの勝つ確率 ・ πt: MCTS の st からの次の手の確率分

布 ・ z: 対局データに記録された勝者

DNN の (Pt, vt) を (πt, z) に近づけることでDNN を最適化する

- 13 -

Page 14: AlphaGo Zero 解説

2- DNN② の学習なぜなぜ MCTSMCTS の予測値にの予測値に DNNDNN を近づけることでを近づけることで DNNDNN の性能が上がるのの性能が上がるのか?か?

DNN :現盤面のみを考慮 MCTS :現盤面+予測される将来の盤面を DNN で計算した平均値

一つの盤面だけを考慮する DNN より複数の盤面を考慮する MCTS の方が予測性能が高い。(DNN だけでの性能は Elo 3000 代。 MCTS を使うと同じ DNN で 5000 まで性能が上がる※ )DNN がポリシーに相当し、 MCTS はポリシーの性能を探索で上げていることに相当する。

つまり、 MCTS は強力なポリシー強化オペレーターである。AlphaGo Zero の主なアイディアは、このオペレーターを用いて policy iteration することである。

※ 本スライドの 「 5. AlphaGo Zero の性能比較」参照 (p.19)

- 14 -

Page 15: AlphaGo Zero 解説

2-③ 学習前後の性能比較

①MCTS による自己対局

②DNN の学習

③ 学習前後の性能比較

③ 学習前後の性能比較

DNNDNN の学習の学習 (②)(②) での新しいでの新しい DNNDNN を評価するを評価する

- 15 -

Page 16: AlphaGo Zero 解説

2-③ 学習前後の性能比較

(( 旧旧 )) (( 新新 ))

DNNDNN の学習の学習 (②)(②) 前の前のDNNDNN を使ったを使ったAlphaGoAlphaGo

DNNDNN の学習の学習 (②)(②) で学習しで学習したた DNNDNN を使ったを使ったAlphaGoAlphaGo

  DNN の学習 (②) を行った DNN を使うことで実際にAlphaGo が強くなったかを確かめるために、 AlphaGo( 旧 ) vs AlphaGo( 新 ) の対戦を 400 回行う。そこで 55% 以上に勝利した AlphaGo が選ばれ次のループに使われることになる。  AlphaGo( 新 ) が 55% の勝率に達成できなかった場合、 AlphaGo( 旧 ) をそのまま使い、学習が継続される。

- 16 -

Page 17: AlphaGo Zero 解説

3. AlphaGo の各種バージョン1. AlphaGo Fan

2015 年 10 月に発表された論文 (※ 1 )1. AlphaGo Lee

基本 Fan と同様だが、 Value Network の訓練方法と DNN のアーキテクチャが異なる( 論文無し。※2で軽くコメントされた )

1. AlphaGo Master Zero のアーキテクチャと同様だが、教師あり学習を行い、インプットも Zero と異なる( 論文無し。※2で軽くコメントされた )

1. AlphaGo Zero 一つの DNN と MCTS だけで構成された最新アーキテクチャ (※ 2 )

※ 1: Silver, D. et al. Mastering the game of Go with deep neural networks and tree   search. Nature 529, 484–489 (2016).※ 2: Silver, D. et al. Mastering the game of Go without human knowledge.. . Nature 550, 354–359 (19 October 2017)

- 17 -

Page 18: AlphaGo Zero 解説

4. AlphaGo Fan vs. AlphaGo Zero

AlphaGo Fan AlphaGo Zero

構成 MCTS, Policy Network(DNN), Value

Network(DNN), Rollout policy

MCTS, DNN

使用 DNN Convolutional Neural Network Residual Network 学習方法 教師あり学習 & 強化学習 強化学習

インプット 石の配置、ダメの数、取れる相手の石の予測数、シチョウが取れるかどうか、などなど

石の配置履歴

学習時間 数か月 40 日性能 3000 elo 5000 elo

1. Zero の方がアーキテクチャシンプル2. Fan は囲碁のルールを利用した手作りインプットを使用。 Zero は石の配置履

歴のみ3. Zero は人のデータを必要としない4. Zero の学習コストも低いうえに、性能も優れている

- 18 -

Page 19: AlphaGo Zero 解説

5. AlphaGo Zeroの性能評価

3636時間の学習した時間の学習した ZeroZeroが、数か月が、数か月学習した学習した LeeLeeのパフォーマンスを超のパフォーマンスを超え、え、4040日の学習で日の学習で AlphaGo MasterAlphaGo Masterよりより高性能を達成する。高性能を達成する。

一つのマシーン一つのマシーン (4TPU)(4TPU)で計算で計算を行うを行う ZeroZeroが、複数のマシーが、複数のマシーンン (48TPU)(48TPU)で計算するで計算する LeeLeeにに勝利。勝利。

- 19 -

Page 20: AlphaGo Zero 解説

6. 教師あり学習 vs. 強化学習

AlphaGo ZeroAlphaGo Zeroのパフォーマンスのパフォーマンス赤線:人の対戦データで学習赤線:人の対戦データで学習青線:人の対戦データ無で学習青線:人の対戦データ無で学習

点線:点線: AlphaGo LeeAlphaGo Lee   (baseline)(baseline)

人の対戦データ無の方が人の対戦データ無の方がパフォーマンス高いパフォーマンス高い

- 20 -

Page 21: AlphaGo Zero 解説

7. 人の動き予測

赤線:人の対戦データで学習青線:人の対戦データ無で学習

人の対戦データで学習させた方が人間の手を高精度で予測

→→ 人のプレイスタイルを模倣し人のプレイスタイルを模倣しない方が高いパフォーマンスがない方が高いパフォーマンスが出る出る

- 21 -

Page 22: AlphaGo Zero 解説

8. まとめ

従来の従来の Alpha GoAlpha Goと比べ、と比べ、1. 人対人の対戦データが不要で、データ作成コストがゼロ

2. 学習速度が向上3. アーキテクチャがシンプル4. アルゴリズムに囲碁のドメイン知識が無い。   囲碁以外のドメインでも使用可能なアルゴリズム

- 22 -

Page 23: AlphaGo Zero 解説

9. 参照論文

Mastering the game of Go without human knowledgeMastering the game of Go without human knowledgehttps://www.nature.com/nature/journal/v550/n7676/full/nature24270.htmlhttps://www.nature.com/nature/journal/v550/n7676/full/nature24270.html

Mastering the game of Go with deep neural networks and tree searchMastering the game of Go with deep neural networks and tree searchhttp://www.nature.com/nature/journal/v529/n7587/full/nature16961.htmlhttp://www.nature.com/nature/journal/v529/n7587/full/nature16961.html

- 23 -

Page 24: AlphaGo Zero 解説

- 24 -