SlideShare a Scribd company logo
1 of 17
Download to read offline
AlphaGoの仕組み
富士通株式会社
吉田裕之
伊藤尚洋
はじめに
 本稿は、以下の文献を読み込んだ際に作成したメモで
ある
 David Silver他、Mastering the game of Go with deep
neural networks and tree search
https://vk.com/doc-44016343_437229031?dl=56ce06e325d42fbc72
 本稿は、上記論文の内容の内、AlphaGoのしくみに
フォーカスしているので、評価結果等については原文
を参照されたい
 本稿は、原文に含まれていない内容の推察を一部含ん
でいる
 本稿は、以下を前提知識として説明を省略する
 囲碁のルール
 畳込みニューラルネットワーク(CNN)の基本
1
概要
AlphaGoのPlay=
50GPUを4週間使って学習した評価関数 +
モンテカルロ木探索(MCTS)
① 評価値が高い手
を選びながら探
索木を下る
② リーフまで来たら二つ
の方法で評価する
(1) 評価関数
(2) ロールアウト
③ 評価値をルート
まで伝播する
s0
a
sL
現在の盤面(ルート)
19✕19✕(空、黒、白)
すべての合法手
評価値が高い合法手aを
うった後の盤面
評価値が高いパスで
辿り着いたリーフ
win / lose
リーフから先は勝負がつくまで
ランダムにうってみる
(ロールアウト)
④ リーフの評価回数が閾
値を越えたら一段展開
する
2
学習しておく関数
 ポリシー関数 P(a|s)
盤面sで場所aにうつべき確率 a P(a|s)=1.0
 バリュー関数 vθ(s)
盤面sの評価値 [-1,1]
名称 計算方法 教師データ 速度 用途
Pπ
線形softmax 人間による800万盤面
CPU
2μs
ロールアウト時にaを決定
Pτ
Pσが求まるまでの暫定値
Pσ
ディープネットワーク
人間による2840万盤面
GPU
2ms
場所aの評価値の重み
Pρ
自分どうしで128万対戦
バリュー関数の訓練に使う
だけで対戦には使わない
vθ
ディープネットワーク
Pσでランダムに作った
3000万盤面 +
Pρで1億6000万回ロール
アウトしてみた勝率
GPU
2ms
盤面sの評価値
3
AlphaGoのニューラルネットワーク
 ポリシーネットワーク
 入力層:(19✕19✕48)の盤面sの特徴量(次頁)
 隠れ層:(19✕19✕k)✕12層
k=128,192,256で試し、論文の対戦では192
 出力層:(19✕19)の次にうつ場所の確率分布P(a|s)
 バリューネットワーク
 入力層:(19✕19✕49)の盤面sの特徴量
 隠れ層:(19✕19✕192)✕12層+(19✕19)✕1層+256✕1層
 出力層:1ノードで盤面sの評価値v(s)
4
入力層に使う特徴量
 ポリシーネットワークPσ 、 Pρ :①=48個の0 or 1
 バリューネットワークvθ :①+②=49個の0 or 1
①
②
5
ポリシーネットワークPσ 、 Pρの構造
 入力層~第1隠れ層:
 周囲2行2列に0パディングして(23✕23)に拡張
 (5✕5)のフィルターk枚による畳込み
 ReLU関数 φ(y) = max(0, y)
 第n隠れ層~第n+1隠れ層:
 (21✕21)(1行1列0パディング)+(3✕3)フィルターk枚
+ReLU関数
 第12隠れ層~出力層
 (1✕1)のフィルター1枚
 座標位置ごとに異なるバイアス
 softmax関数 φ(y)i=eyi
j eyj 総和が1.0になる
6
バリューネットワークvθの構造
 入力層~第12隠れ層:
 ポリシーネットワークと同じ
 第12隠れ層~第13隠れ層:
 (1✕1)のフィルター1枚+ReLU関数?
 第13隠れ層~第14隠れ層:
 全結合+ReLU関数
 第14隠れ層~出力層
 全結合+tanh関数 φ(y) =
ey− e−y
ey+ e−y
7
ポリシーネットワークPσの教師あり学習
 6~9段による16万棋譜(35.4%がハンデ戦)から
(パスを除く)2940万盤面とその時に指した手を抽出
 2940万からテスト用に100万を除いた2840万盤面に、
8通りの対称性を加味して(2億2720万?)訓練データとする
 特徴抽出は事前にやっておく
 確率的勾配降下法を実施:
 誤差関数は交差エントロピーH(a|s, Pσ)=‐ i t(ai)logPσ(ai|s)
だが、
プロが実際に選択したaiでのみt(ai)=1.0で他は0.0なので、
このaiをaとすれば誤差関数はH(s, Pσ)=‐logPσ(a|s)
 m(=16)個の訓練データをランダムに選択
∆σ=
α
m k=1
m 𝜕logpσ(ak|sk)
𝜕σ
 学習率α:初期値0.003で8000万回毎に1/2にしていく
 3.4億回(✕16盤面)の訓練を50GPUで3週間
フェーズ1
8
ロールアウトポリシーPπ 、Pτの学習
 線形softmax回帰
P ai s = eyi
j eyj、yi = j k xjkwk
入力 xik: i:(19✕19)の盤面の位置、k:以下の特徴量
 ロールアウトポリシーPπ :③=109,747個の0 or 1
 ツリーポリシーPτ: ③ +④=141,989個の0 or 1
 800万盤面でwkを学習
③
④
9
フェーズ2
ポリシーネットワークPρの強化学習
 学習したポリシーネットワークどうしを
対戦させてさらに強化
 学習側をポリシーρとし、相手をポリシーρ’とする
 ρ’はそれまでのポリシープールの中からランダムに選ぶ
 初期値はρ=ρ’=σ
 500回ごとにその時点のρをポリシープールに入れる
 n(=128)回対戦させて勝敗zTi(1 or -1)を決める
 n回対戦中の全盤面に対して
報酬の期待値を最大化する確率的勾配降下法:
 ∆ρ=
α
n i=1
n
t=1
Ti 𝜕logpρ(at
i
|st
i
)
𝜕ρ
(zt
i
−v(st
i
))
 以上を1万回(✕128対戦) 、50GPUで一日
v(st
i)の項は0
vθ(st
i)が求まったらそれを使う
10
バリューネットワークvθの強化学習
 PσとPρを使ってvθを強化学習
 訓練データも人間の棋譜ではなく自動生成(>3000万個)
① 一様乱数(1~450)で手数Uを決める
② (U-1)手までPσ(人間のうち方を学習したポリシー)を相互に
使って訓練盤面を作る
③ U手目は一様乱数(1~361)を使って決める(うてるところが出る
まで)
④ Pρ (強化学習したポリシー)を使ってロールアウトし、勝ち負けz
を決定する
 確率的勾配降下法を実施:
 誤差関数は平均二乗誤差:
α
2m k=1
m
(zk
− vθ(sk
))2
 m(=32)個の訓練盤面に対して
∆θ=
α
m k=1
m
(zk
− vθ(sk
))
𝜕vθ(sk)
𝜕θ
 以上を5000万回(✕32盤面) 、50GPUで一週間
フェーズ3
11
MCTSによる対戦
 48CPU、8GPU、40探索スレッド(論文時)
 現在の盤面をルートノードとし、合法手をエッジとする木を構成。
木の先端で、エッジを展開していないノードをリーフと言う
 各エッジ(s,a)には以下の評価値を付与
 P:事前確率 P s, a = Pσ(a|s)
 Nv:leaf evaluation=そのエッジの先で何回vθを計算したか、初期値は0
 Nr:rollout reward=そのエッジの先で何回ロールアウトしたか、初期値は0
 Wv:vθの積算、初期値は0
 Wr:zT(ロールアウトによる勝敗判定)の積算、初期値は0
 Q:action value Q s, a = (1 − λ)
wv(s,a)
Nv(s,a)
+ λ
Wr(s,a)
Nr(s,a)
λ:重み(=0.5)、0/0=0?
 最初は、ルートノードs0 1個のみの木から始める
 自分の手番で、シミュレーションを一定の持ち時間の間繰り返し
最後にs0のエッジ(s0,ai)でNr(s0,ai)が一番大きいaiを選ぶ
 対戦中に、Qの最大値が-0.8未満になったら投了
12
対戦時のシステム構成
論文には明記されていないので
あくまでも想像
探索木
vθ用キュー
Pσ用キュー
CPU✕8?
• キューから依
頼を取り出し
てGPUに投
げる
• vθ計算が終
わったらルー
トまで伝播
• Pσ計算が終
わったら探索
木に反映
GPU✕8
• Pσとvθを
計算
CPU✕40?
• 40並列で探索
木を下る
• リーフまで来た
ら、vθ計算を依
頼し、ロールア
ウトを実行
• 勝敗がついたら
ルートまで伝播
• 閾値を越えたら
リーフを展開し
Pσ計算を依頼
13
シミュレーション手順詳細(1)
① ルートから Q s, a) + u(s, a を最大とするエッジ s, a を辿って木を下る
u s, a = cpuctP(s, a) b Nr(s,b)
1+Nr(s,a)
, cpuct:exploration constant(=5)
 エッジ s, a を辿る時に、Q s, a + u s, a を一時的に下げて、評価が終わるま
で他のスレッドが同じパスを選択しにくくしておく
Nr s, a ← Nr s, a + nvl、Wr s, a ← Wr s, a − nvl(= 3)
② リーフsLに到達したら
 vθ sL が未処理ならば、GPU計算するキューに入れ、非同期に処理
 sLから先を、Pπ(a|s)を使ってロールアウトし、勝敗zT(1 or -1)を決定する
③ 盤面sLに対してvθ sL やzTが求まったら、
ルートノードまでパスを逆に辿って、評価値を更新する
 vθ sL :N 𝑣 s, a ← N 𝑣 s, a + 1、 W𝑣 s, a ← W𝑣 s, a + vθ sL
 zT :Nr s, a ← Nr s, a − nvl + 1、 Wr s, a ← Wr s, a + nvl + zT
14
シミュレーション手順詳細(2)
④ リーフsLの直前のエッジ sL−1, aL−1 で Nr sL−1, aL−1 > nthr = 40 なら
sLで可能なすべての手aiにエッジ sL, ai を作成し以下を実行する
 Nv sL, ai = Nr sL, ai = Wv sL, ai = Wr sL, ai = 0
 P sL, ai = Pτ(ai|sL) (Pσ(∗ |sL)が計算できるまでとりあえず)
 Pσ(∗ |sL)をGPU計算するキューに入れ、非同期に処理する
 Pσ(∗ |sL)が求まったらP sL, ai = Pσ
β
(ai|sL)とする
Pβ
ai = e
(
yi
β
)
/ j e
(
yj
β
)
β :softmax temperature(= 0.67)
 その他
 うった手のサブツリーを破棄しないで残し、相手の手番中も探索を継続する
 持ち時間は中盤に多く配分し、Nr最大の手とQ最大の手が一致しない場合は延長
する
 nthrは、Pσ(a|s)のキューの捌け方と登録がつりあうように動的に調整する
 Q(s,a)は、評価関数と勝率の両方をバランスよく見る
 u(s,a)は、まだ試していないエッジを探索しようとする
メリハリが強くなる
15
まとめ
 従来のMCTSベースの囲碁ソフトとの差異は
 高速なPπ ・Pτと、ディープラーニングで獲得したPσ・Pρの
2種類のポリシーを利用。
 事前にPρでロールアウトした場合の評価近似値を、vθとして
ディープラーニングしておく。
 対戦では、Pπ ・PτとPσ・ vθを併用した評価に基づく探索を
行い、大局観を見失わない強さと学習済み局面に対する強さ
を併せ持った
 論文内の評価報告ではプロ5段相当となっているが、
イ・セドル(9段)との対戦前にさらなる強化・改善
があったと推察される
16

More Related Content

What's hot

SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜Jun Okumura
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep LearningSeiya Tokui
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイcvpaper. challenge
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs Deep Learning JP
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Keigo Nishida
 
強化学習その2
強化学習その2強化学習その2
強化学習その2nishio
 
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展Deep Learning JP
 
強化学習その3
強化学習その3強化学習その3
強化学習その3nishio
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...Deep Learning JP
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision TransformerYusuke Uchida
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual FeaturesARISE analytics
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法Hirokatsu Kataoka
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 

What's hot (20)

SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 

AlphaGoのしくみ