Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
『これからの強化学習』3.7
Search
hasewo
June 17, 2017
Technology
0
900
『これからの強化学習』3.7
Gunosyデータマイニング研究会 #123 で用いたスライドです。
内容:DQNとAlphaGoについてのまとめ
hasewo
June 17, 2017
Tweet
Share
More Decks by hasewo
See All by hasewo
A Deep Reinforcement Learning Chatbot
hasewo
1
810
Other Decks in Technology
See All in Technology
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
120
AWS環境におけるランサムウェア攻撃対策の設計
nrinetcom
PRO
0
180
TypeScript開発にモジュラーモノリスを持ち込む
sansantech
PRO
2
710
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
150
メンタル面でもつよつよエンジニアになる/登壇資料(井田 献一朗)
hacobu
0
130
AWS re:Invent 2024 recap
hkoketsu
0
120
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.5k
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
140
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.5k
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
27
24k
怖くない!ゼロから始めるPHPソースコードコンパイル入門
colopl
0
180
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
130
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
For a Future-Friendly Web
brad_frost
175
9.4k
Writing Fast Ruby
sferik
628
61k
Building Your Own Lightsaber
phodgson
103
6.1k
Code Reviewing Like a Champion
maltzj
521
39k
Site-Speed That Sticks
csswizardry
2
190
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Thoughts on Productivity
jonyablonski
68
4.4k
GitHub's CSS Performance
jonrohan
1031
460k
Adopting Sorbet at Scale
ufuk
73
9.1k
Transcript
Gunosyデータマイニング研究会 #123 『これからの強化学習』3.7
⾃⼰紹介 はせお @hasewogamer ⼤学では経営学・マーケティングを専攻 2016.1 某データ分析ベンチャーでインターン 2017.2 就職、webアプリのログ解析とかをやっている
深層学習を⽤いたQ関数の学習: Atari2600と囲碁への応⽤ 概要 • 関数近似器としてdeep neural networkを⽤いてQ関数を学習さ せたことでこれまでにない性能を発揮した事例を紹介
3.7.1 Deep Q Learning(DQN)によるAtari2600のゲームの学習 • ⼊⼒として画⾯のデータそのものを⽤いる • 同じ学習アルゴリズムを適⽤するだけで⼈間以上の⾼得点を⽬指す • NIPS版DQNとNature版DQN
3.7.2 DQNのネットワーク構造 • DQNとは? • ⾏動価値関数を推定するための多層ニューラルネットワーク ℎ(#) = sig #
+ # ℎ(-.#) = sig - ℎ(-) + - = o - ℎ(1) + 1 重み バイアス
畳み込みニューラルネットワーク • 特徴 • Convolutionレイヤー(畳み込み層) • 画像や⾳声データなどの多次元データの特徴を保持(フィルター) • Poolingレイヤー •
⼊⼒データを扱いやすいものにするため情報を圧縮 • Fully connectedレイヤー(全結合)
中間層ユニットの共有 • ⼊⼒や中間層をゲームによらず共通なものにする →個別のゲームに特化した過学習を防ぐため →⾼速な学習が可能(⾏動ごとに関数を評価しなおす必要がない)
3.7.3 DQNの学習アルゴリズム • DQNの学習は以下の⽬的関数 の最⼩化を意図する = [(7 9 Q 7
, 7 ; )? ] B ∝ [(7 9 Q 7 , 7 ; )B Q 7 , 7 ; ]
3.7.3 DQNの学習アルゴリズム RMSpropによってパラメータ更新を⾏う。 ただし、下記の強化学習ならではの⼯夫がなされている。 n学習則の安定化のためのターゲットの固定化(neural fitted Q) n学習に⽤いるサンプルの偏りの抑制(体験再⽣)
学習則の安定化のためのターゲットの固定化 (neural fitted Q) 強化学習では多くの場合最適Q関数は不明なので、TD誤差を使 う 7.# + γ max
IJKL Q(7.# , 7.# ; ) − Q(7.# , 7.# ; ) しかし、TD誤差はパラメータに依存するターゲットとなり、収束が安定しない ↓ Neural fitted Qを⽤いる
neural fitted Q • あらかじめターゲットを固定(オフライン学習) • 教師付き学習にかなり近い
学習に⽤いるサンプルの偏りの抑制 (体験再⽣) ゲームをプレイしているエージェントが得る画⾯⼊⼒は互いに強い相関を持つ →この強い相関を持つ⼊⼒系列に対して学習を⾏うと、 直近の⼊⼒に引きずられたパラメータの修正が⾏われる →過去の⼊⼒に対する推定が悪化、収束性悪 • 体験再⽣(experimence replay)とは? •
直近の過去の体験7 , 7 , 7.# が保管される • 保管された体験から⼀様乱数を⽤いてランダムに体験を選ぶ →学習⽤の⼊⼒とTD誤差の経験に利⽤
その他の実装 • ゲームごとに得点の範囲がバラバラ →報酬は+1, 0, -1に固定 • エージェントの⾏動⽅策:ε-greedy • Nature版DQN:TD誤差が[-1,
1]の範囲を超えないように切り 上げ → = [(7 9 Q 7 , 7 ; )? ]が[-1, 1]の範囲を超えたところ で、より⽬的関数の増加が緩やかな絶対値誤差 に切り替え
NIPS版DQN
Nature版DQN
学習結果(NIPS版) 3タイトルで⼈間と互⾓以上。4タイトルでは勝てなかった
学習結果
double Q learning • Q関数の評価時に⾏動と状態価値を同時に⼊⼒した累積利得評 価に基づくために、⾏動に対する状態価値評価が、直接的に評 価できない事からずれが⽣じる(overestimation) • Q関数を2つにすることで、⾏動に対する状態価値評価と全体 の累積利得価値評価を分ける
優先順位付き体験再⽣ • 体験再⽣において選ばれる体験は⼀様分布からランダムに選ばれる →各サンプルの重要性は考慮されない →サンプルごとの重要性を考慮して重み付けをして再利⽤することが提案される (優先順位付き体験再⽣) • TD誤差の絶対値 を⽤いたQ =
Q + ε(ただしεは正の定数)を⽤いる • 確率 = ST U ∑ SW U W (ただしαは正の定数)に従ってサンプルを選択する
3.7.4 AlphaGoによる囲碁の学習 • 囲碁 • ⽩⽯を持つプレイヤーと⿊⽯を持つプレイヤーが交互に⽯を置きあう • 相⼿の⽯を囲むと取れる • 19
× 19マスの盤⾯で構成される 状態{◦, •, ⽯なし} 3×19×19 = 10172の状態数
AlphaGoが出現するまでのコンピュータ囲碁の歴史 • α- β法(min-max法) • あらかじめ定めた範囲を選択してその中で最適な盤⾯に到達する⼿を選択 • 定められた計算時間内に探索できなかった場合⼤きく推定精度が悪化 • モンテカルロ⽊探索法
• さまざまな候補⼿をランダムにまんべんなく探索 • 計算時間に応じて滑らかに推定精度が改善 • しかし推定精度の改善に膨⼤な計算時間がかかる
AlphaGoが出現するまでのコンピュータ囲碁の歴史 • UCT法 • モンテカルロ⽊探索を効率化するための⼿法 • あまり探索されていないノードや評価の⾼い盤⾯に⾄る確率の⾼いと 思われる⾒込みのあるノードを優先的に探索する • 2006年のコンピュタ囲碁の⼤会で優勝、2008年には9×9マスの縮⼩
版囲碁でプロ棋⼠に1勝をあげる • ニューラルネットワークを⽤いた盤⾯評価 • 盤⾯の状態を⼊⼒とし、勝敗や次の⼀⼿を予測する教師あり学習 • モンテカルロ⽊ベースの⼿法には遠く及ばなかった
AlphaGoの登場 • 2016.1 ヨーロッパチャンピオン Fan Hui⽒に対し5戦5勝 • 2016.3 世界トップレベル Lee
Sedol⽒に5戦4勝 • 三つの技術を使⽤ • 教師あり学習 • 強化学習 • モンテカルロ⽊探索
三つの技術を使⽤ • 教師あり学習 • 過去の棋⼠の膨⼤な対戦結果をもとに適切な⼿や盤⾯評価を学習 • 強化学習 • 教師データで学習したエージェント同⼠を戦わせて学習を進⾏ •
モンテカルロ⽊探索 • 関数近似した学習では近似誤差がつきまとう • 近似誤差を含んだままの推定では、最適⼿候補が多い場合に不適切な判 断をする可能性が⾼い • ↑が勝敗を左右する可能性があるため、現在の状態から各候補の着⼿の 結果をモンテカルロ⽊探索で判断
AlphaGoによる着⼿の選択 • モンテカルロ⽊探索 • Selection:有望な⼿を選択 • Expansion:⼦ノードを展開 • Evaluation(Simulation):終局まで実⾏ •
Backup(Backpropagation):結果をノードに記録
Selection 7 = arg max I∈[ \J 7 , +
7 , 7 , = S`a7 P , ∑ d , e 1 + d , 未探索の⼿を 選択しやすくする項
Expansion • 訪問回数が閾値を超えたら有望な⼦ノードを展開 • 新たなノードsʼに対して定義される変数の値を、 g h i, ′ =
d i, ′ = 0 h i, ′ = d i, ′ = 0 i, ′ ∝ pn シミュレーションによる 訪問回数 状態価値ネットワークで 評価した回数 状態価値関数で勝ちと判断した回数 シミュレーションで 価値と判断した回数
Evaluation • 探索⽊の末端のノードまで到達した時、状態価値ネットワーク で未評価であればその値を評価 • 同時に、そのノード以降を探索展開⽤⽅策に従って⾏動を選択 するシミュレーションを⾏う
Backup • 状態価値ネットワークの評価が終わったとき 各t≦Lに対して p h 7 , 7 ←
h 7 , 7 + 1 h 7 , 7 ← h 7 , 7 + 1 上記とは⾮同期に、各t≦Lに対して p d 7 , 7 ← d 7 , 7 + 1 d 7 , 7 ← d 7 , 7 + 7
Backup • ⾏動価値関数Q(s7 , 7 )は、これらを⽤いて計算される。 Q(s7 , 7 )
= 1 − uv \J, IJ wv \J, IJ + ux \J, IJ wx \J, IJ • また、selectionにおいてすでに選択されたノードの中で、 ⼀時的に何回か評価して負けたことにする p d 7 , 7 ← d 7 , 7 + nz- d 7 , 7 ← d 7 , 7 − z- シミュレーション後にまた増やす p d 7 , 7 ← d 7 , 7 − nz- d 7 , 7 ← d 7 , 7 + z-
AlphaGoの学習法 名前 記号 何で学習? 何を出⼒? どんな構成? 探索展開⽤⽅策 p| 教師付き学習 多値関数
ソフトマックス関数 教師付き学習⽅策ネットワーク pn 教師付き学習 多値関数 多層ニューラルネットワーク 状態価値ネットワーク 教師付き学習 スカラー関数 多層ニューラルネットワーク 強化学習⽤⽅策ネットワーク p} 強化学習 多値関数 多層ニューラルネットワーク
探索展開⽤⽅策と 教師付き学習⽅策ネットワークの学習 • 探索展開⽤⽅策にはTygemサーバーから800万の盤⾯を学習 • 教師付き学習⽅策ネットワークには、KGSサーバーで6段から9 段の⼈間の16万の対局から得られた2940万盤⾯を利⽤ • そのうち2840万が教師データ •
残りの100万がテストデータ • 3.4億回の更新に50個のGPUでおよそ3週間の計算時間
強化学習⽤⽅策ネットワークの学習 • 教師付き学習で訓練されたエージェント同⼠を⾃⼰対戦 • ⽅策勾配法のReinforceを⽤いて学習 • 対戦相⼿が絞られないよう、過去の強化学習⽤⽅策ネットワークから ランダムに選んで対戦(500回のパラメータ更新ごとに過去とみなす) • 50個のGPUで丸⼀⽇の計算時間
状態価値ネットワークの学習 1. 1から450までの整数から⼀様ランダムに整数Uを得る 2. 初⼿にU-1⼿⽬までの着⼿を、いずれも教師付き学習⽅策 ネットワークに従って選択 3. U⼿⽬において合法⼿の中から⼀様ランダムに着⼿を選択 4. U+1⼿⽬から終局までの着⼿を強化学習⽤⽅策ネットワーク
に従って選択。終局における勝敗を教師ラベルとする。
AlphaGoの学習後の性能⽐較
おわりに • 強化学習を困難にする問題 • 価値関数が出⼒すべきターゲットが未知であること • ⽣成されるサンプルが独⽴同⼀分布に従わない • ⽅策を固定したMRP(Markov Reward
Process)に限っては、 価値関数推定の問題はセミパラメトリック統計学の問題として 定式化される But