More Related Content
Similar to 「これからの強化学習」勉強会#1 (13)
「これからの強化学習」勉強会#1
- 1. 「これからの強化学習」勉強会#1
テキスト
これからの強化学習
牧野 貴樹 澁谷 長史 白川 真一 浅田 稔 麻生 英樹 荒井 幸代 飯間 等 伊藤 真
大倉 和博 黒江 康明 杉本 徳和 坪井 祐太 銅谷 賢治 前田 新一 松井 藤五郎
南 泰浩 宮崎 和光 目黒 豊美 森村 哲郎 森本 淳 保田 俊行 吉本 潤一郎
森北出版 2016-10-27
Amazonで詳しく見る by G-Tools
今回の範囲
第1章 強化学習の基礎的理論 ―― 1.1節~1.3節
第2章 強化学習の発展的理論
第3章 強化学習の工学応用
第4章 知能のモデルとしての強化学習
2016/12/31 Chihiro Kusunoki
- 2. その他の参考文献
強化学習
Richard S.Sutton Andrew G.Barto 三上 貞芳 皆川 雅章
森北出版 2000-12-01
Amazonで詳しく見る by G-Tools
目次
強化学習って何
強化学習の特徴
簡単な例:バンディットタスク
強化学習問題の定式化
状態と報酬
マルコフ決定過程
最適方策の解法
最適方策の現実的な解法
モンテカルロ法
動的プログラミング
Sarsa
Q学習
- 3. → 2
強化学習って何
教師あり学習 教師なし学習 強化学習
→ 1
→ 3
2, 1, 3,
2, 3, 1,
1
…
1
…
1
正解があり、前もって正解
サンプルから学ぶ。
正解はなく、自分でデータ
から何か学ぶ。
正解とかではなく収益の最
大化を目指し、自分の行動
と対する環境の応答に学ぶ。
- 4. 強化学習の特徴
• 得られるデータが自分の行動に依存する。
食堂1 食堂2 食堂3 食堂4 食堂5
Ex. これから1週間出先での作業になったあなたは、出先周辺の食堂1~5のいずれかで
昼食を食べる。これらの食堂に関する事前知識はない。あなたは1週間分の昼食の
満足度の和を最大化することを目指して行動する(=日ごとに食堂を選択する)。
→ 初日に食堂1に行くという行動を取れば、手に入るのは食堂1のデータになる。
• 報酬最大化とデータ収集のバランスを取って行動を計画しなければならない
( 探索と利用のトレードオフ = exploration-exploitation tradeoff )。
3日目までに食堂1~3で昼食を食べ、うち食堂2の満足度が最大とわかったとする。
だったら4日目は食堂2で昼食を食べれば満足度はそれなりに大きくなるはず。
でも、食堂4と食堂5の昼食は食堂2より満足度が大きいかもしれない。
現実には、例えば「これだけ満足な昼食ならじゅうぶん」という参照値があなたの中にあり、
かつ食堂2がそれを達成していれば、あなたはもう食堂4や5には訪問しないかもしれない。
または、未訪問の食堂への期待の程度(満足度の事前確率分布)があり、食堂4や5への期待の
程度と食堂2の実測値を比較して判断するかもしれない。強化学習では実際このような計画をする。
- 6. 回答例2.( ε-greedy アルゴリズム )
• まず各スロットマシンを1回ずつ引き、その後は確率 1-ε ( 0<ε≦1 ) で「それまでの
試行結果から求めた報酬の期待値最大のスロットマシン」を引き、確率 ε で「ランダム
に選択したスロットマシン」を引く。
○ 確率 ε で explore し続けるので、軌道修正できない問題はとりあえず回避できた。
△ ε の決定に悩む。大きくすればより早い段階で期待値の見積もりはよくなる反面、
後々の exploit を妨げるので報酬が犠牲になる。
△ というか、explore し切れていないときは ε を大きめに、explore し切れてきたら
ε を小さくして exploit にふっていくのがもっと賢そう。
→ とはいえ ε の時間推移を設計するのは難しい。
→ そもそも早い段階で見積もり精度を上げておきたい理由は、過小評価方向への見積もり
ミスを何としても避けたいから(過小評価方向へのミスは軌道修正しにくい)。
→ だったら、どうやっても過小評価方向へ見積もりミスしないように、予め各スロット
マシンからぐっと大きい報酬が K 回出たことにしておき、期待値に下駄をはかせておけ
ばよい( 不確かなときは楽観的に )。
• このアイデアのいいところは、explore し切れていないスロットマシンをよく引く
ということを勝手に達成してくれる( 期待値が修正されず高いままなので )。
回答例3.( 楽観的初期値法 )
• 予め各スロットマシンからぐっと大きい報酬 rsup が K 回出たことにしておく。その後
は ε-greedy アルゴリズムなどにしたがって行動する。
- 7. → 割と賢くなってきた気がするが、どの程度 explore したかの判定にそのスロットマシン
をそれまでに引いた回数などが加味されてないあたりだいぶ乱暴ではある。
→ 各ステップでどれくらい見積もり精度が出ているかをもう少しちゃんと考えたい。
回答例4.( UCB1アルゴリズム ) UCB = Upper Confidence Bound
• まず各スロットマシンを1回ずつ引き、その後は μi + Ui が最大のスロットマシンを引く。
μi =「それまでの試行結果から求めたスロットマシン i の報酬の期待値」
Ui =「それまでの試行結果から求めたスロットマシン i の報酬の信頼区間の半幅」
Ui は、スロットマシンから出てくる報酬の値の幅を R、全スロットマシンを引いた回数
N、スロットマシン i を引いた回数 Ni をつかって以下(※)。
※ 信頼区間幅の導出には独立な試行に関する Hoeffding の不等式をつかう。
https://en.wikipedia.org/wiki/Hoeffding's_inequality
または、UCBアルゴリズムの元論文をみてください。
Peter Auer, Nicoló Cesa-Bianchi, and Paul Fischer. Finite-time Analysis of the
Multiarmed Bandit Problem. Machine Leraning, 47(2/3):235-256, 2002.
https://homes.di.unimi.it/~cesabian/Pubblicazioni/ml-02.pdf
𝑈𝑖 = 𝑅
2 ln 𝑁
𝑁𝑖
→ 色々なアルゴリズムがありうるが、どれがいつも最適というのはなく、問題設定による。
- 8. 一般的な強化学習問題の定式化
行動 at
環境
エージェント
報酬 rt
状態 st
• 方策 π(a|s)
• 収益 gt=Σk=0 γkrt+k+1
時刻 報酬 状態 行動
0 r0 (=0) s0 → a0
1 r1 s1 → a1
2 r2 s2 → a2
3 r3 s3 → a3
π(a|s) は st=s のとき at=a を選択する確率。
γ は将来の報酬に対する割引率(0≦ γ ≦1)。
強化学習問題とは、エージェントが環境
から状態と報酬を受け取って、それを受
けて環境に対して行動して、環境からま
た次の状態と報酬を受け取って…と相互
作用していく中でどう行動すれば収益が
最大になるでしょうか、という問題。
それを解くとは、最適な方策(状態から
行動への写像)を求めること。
※ エージェントと環境の境界は、エージェン
トが任意に変更することができるかどうか
で線引きするべきなので、図のようにエー
ジェントを人間やロボットとしてイメージ
するのは必ずしも正しくない。
∞
- 10. S = 不満, 満足
マルコフ決定過程 MDP = Markov Decision Process
各ステップの状態 st 、報酬 rt 、行動 at はどのように定まっていくのか。
Ex. あなたは毎年末に、いまの勤務先に残留するか転職するか判断します。
• あなたは毎年末に、いまの勤務先に「不満」か「満足」かいずれかの状態にいます。
• 「満足」であれば必ず残留し、「不満」であれば残留か転職かを選択します。
• 「不満」な勤務先に残留すれば翌年末も必ず「不満」ですが、転職しても確率 1-β
で再び「不満」な勤務先に就職してしまいます。一方、現在は勤務先に「満足」し
ていても確率 1-α で翌年末は「不満」な状態に遷移してしまいます。
• 「満足」だったときに得られる満足度(このタスクでの報酬)は A で、「不満」
だったときは B です。但し、前ステップで転職したときは疲弊して c 減少します。
→ この状況を整理すると以下。
不満 満足
A = 不満, 満足残留 転職不満
A = 不残留満足
状態遷移図状態集合
行動集合(状態に依存)
- 11. → ツリーで表現すると下図左。この分岐の決定に必要な確率分布は下図右。
不 満 不
転 残 残 転 残
不
転 残
満
残
不 満
転 残 残
s0
↓
a0
↓
s1
↓
a1
𝑆0~𝑃0 𝑠
𝑆𝑡+1~𝑃 𝑠 𝑆𝑡, 𝐴 𝑡
𝑅𝑡+1~𝑟 𝑆𝑡, 𝐴 𝑡 , 𝑆𝑡+1
𝐴 𝑡~𝜋 𝑎 𝑆𝑡
• 𝑃0 𝑠 , 𝑃 𝑠 𝑆𝑡, 𝐴 𝑡 , 𝑟 𝑆𝑡, 𝐴 𝑡 , 𝑆𝑡+1 … 環境の応答であって、環境により決まる。
この問題の場合、P と r は以下のように決まっている。
• 𝜋 𝑎 𝑆𝑡 … エージェントの方策であって、与えられた環境の下で最適な 𝜋 𝑎 𝑆𝑡
を求めることが強化学習問題のゴールである。
𝑃 , = 1不満 不満 残留
𝑃 , = 1 − 𝛽不満 不満 転職
𝑃 , = 𝛽満足 不満 転職
𝑃 , = 1 − 𝛼不満 満足 残留
𝑃 , = 𝛼満足 満足 残留
𝑟 , , = 𝐵不満不満 残留
𝑟 , , = 𝐵 − 𝑐不満不満 転職
𝑟 , , = 𝐴 − 𝑐満足不満 転職
𝑟 , , = 𝐵不満満足 残留
𝑟 , , = 𝐴満足満足 残留
※ 直前の状態のみに依存
= マルコフ性を仮定。
※
- 12. 最適方策の解法
𝑉 𝜋(𝑠) = 𝐸 𝜋 𝐺𝑡 𝑆𝑡 = 𝑠 = 𝐸 𝜋 𝑘=0
∞
γ 𝑘 𝑅𝑡+𝑘+1 𝑆𝑡 = 𝑠
𝑄 𝜋
(𝑠, 𝑎) = 𝐸 𝜋 𝐺𝑡 𝑆𝑡 = 𝑠, 𝐴 𝑡 = 𝑎 = 𝐸 𝜋 𝑘=0
∞
γ 𝑘
𝑅𝑡+𝑘+1 𝑆𝑡 = 𝑠, 𝐴 𝑡 = 𝑎
P 𝑠𝑠′
𝑎
= 𝑃 𝑆𝑡+1 = 𝑠′ 𝑆𝑡= 𝑠, 𝐴 𝑡 = 𝑎
R 𝑠𝑠′
𝑎
= 𝐸 𝑅𝑡+1 𝑆𝑡 = 𝑠, 𝐴 𝑡 = 𝑎, 𝑆𝑡+1 = 𝑠′
環境のダイナミクス(環境の応答;以下)が既知とする。
ある状態である行動をとったときの
次の状態の確率分布(マルコフ的)
上記のときの次の報酬の期待値
以下の価値関数を導入する。
上: 状態価値関数 = 方策πに対する状態 s の価値 = 状態 s から方策πにしたがうときの期待収益
下: 行動価値関数 = 方策πの下で、状態 s において行動 a をとることの価値
= 状態 s で行動 a をとり、その後は方策πにしたがうときの期待収益
価値関数は以下の整合性条件を満たす( Bellman 方程式 )。
𝑉 𝜋(𝑠) = 𝑎 𝜋 𝑎 𝑠 𝑠′P 𝑠𝑠′
𝑎
R 𝑠𝑠′
𝑎
+ γ𝑉 𝜋(𝑠′)
𝑄 𝜋(𝑠, 𝑎) = 𝑠′P 𝑠𝑠′
𝑎
𝑎′ 𝜋 𝑎′ 𝑠′ R 𝑠𝑠′
𝑎
+ γ𝑄 𝜋(𝑠′, 𝑎′)
※ 上式から次ステップ
の報酬を切り離して
式変形すると出る。
最適な π を解きたい → 例えば、ある状態からどちらの π にしたがって行動した
ときの期待収益が高いか、を比較すれば π どうしが比較できる。
V と Q は方策の解き方によって扱いやすい方で考えればよい。
- 13. 状態と行動の集合が有限のとき、以下のように方策の良し悪しを定義できる。
π は π ’ よりも良いか同じ ⇔ 𝑉 𝜋 𝑠 ≥ 𝑉 𝜋′
𝑠 for ∀𝑠 ∈ 𝑆
他の方策よりも良いか同じ方策が常に少なくとも1つ存在する。→ 最適方策(群)
最適方策群は以下の最適価値関数を共有する。
𝑉∗
𝑠 = 𝑉 𝜋∗
𝑠 = max
𝜋
𝑉 𝜋
𝑠 for ∀𝑠 ∈ 𝑆
𝑄∗ 𝑠, 𝑎 = 𝑄 𝜋∗
𝑠, 𝑎 = max
𝜋
𝑄 𝜋 𝑠, 𝑎 for ∀𝑠 ∈ 𝑆, ∀𝑎 ∈ 𝐴(𝑠)
最適価値関数は特定の方策があらわれない形の以下の整合性条件を満たす
( Bellman 最適方程式 )。
𝑉∗(𝑠) = max
𝑎
𝑠′P 𝑠𝑠′
𝑎
R 𝑠𝑠′
𝑎
+ γ𝑉∗(𝑠′)
𝑄∗(𝑠, 𝑎) = 𝑠′ P 𝑠𝑠′
𝑎
R 𝑠𝑠′
𝑎
+ γ max
𝑎′
𝑄∗(𝑠′, 𝑎′)
要するに、「最適方策の下での
状態の価値は、その状態からの
最良の行動に対する期待収益に
等しくなくてはならない」。
𝜋 𝑎 𝑠 =
1 𝑎 = argmax
𝑎
𝑄∗ 𝑠, 𝑎
0 otherwise.
行動価値に関する Bellman 最適方程式が解ければ最適方策は以下のように求まる。
- 14. しかし、「Bellman 最適方程式を解いて最適方策を求める」という解法は以下の
前提に依存しており、これらは往々にして現実には満たされない。
× 環境のダイナミクスが予め完全にわかっている。
‐ 現実には、色々な行動を取ってみて環境がどう応答してくるかデータを収集していく。
× 現実的な時間で方程式を解き切る計算資源がある。
‐ 状態数に応じて連立数が増えるので、盤面の通り数が多いゲームなど大変なことになる。
argmax
𝑎
𝑄∗ 𝑠, 𝑎
argmax
𝑎
𝑄 𝜋
𝑠, 𝑎 これは、次ステップ以降ずっと方策 π にしたがうという前提の
もとで、今選択すべき最適な行動。ただし、方策 π がよい方策
なのかどうかわからないなら、これがよい行動かはわからない。
これは、次ステップ以降ずっと最適方策にしたがうという前提の
もとで、今選択すべき最適な行動。要するに、本当に最適な行動。
現在の方策の価値
関数を求める
Q ← Qπ
価値関数に基づき
方策を改善する
π← greedy(Q)
0π
0Q
nπ
nQ
現実的には、適当に初期化した方策と価値関数を評価・改善していく手法をとる。
※ Qが最大になる行動を選ぶ方策をgreedy方策といい、Q*に関するgreedy方策は最適方策である。
- 15. 最適方策の現実的な解法
現在の方策の価値
関数を求める
Q ← Qπ
価値関数に基づき
方策を改善する
π← greedy(Q)
0π
0Q
nπ
nQ
実際に方策と価値関数を評価・改善していくにはどのような方法があるのか。
解法1. モンテカルロ法
• 初期方策 π( a | s ) にしたがってエピソード(※)を生成し、エピソードにあ
らわれた各状態行動対 (s, a) について、実際にその後得られた収益を用いて行
動価値 Q(s, a) を更新する。→ Q(s, a) に greedy にπ( a | s ) を更新して次
のエピソードを生成する。→ 以後繰り返し。
△単純でわかりやすい方法だが、状態行動対を探索する効率が悪い。
× 一般に、適当な初期方策で全ての状態行動対が探索される保証がない。
→ これを保証する手法はある。「これからの」がつかない方の「強化学習」参照。
△エピソードが終わる前に行動価値や方策を逐次更新した方が速そう。
※ 強化学習でいうエピソード: 状態 → 行動 → 状態 → … が終状態に達するまでの一連の流れ。
- 17. 解法3. Sarsa
不 満 不
転 残 残 転 残
不
転 残
不 満 不
転 残 残 転 残
不
転 残
不 満 不
転 残 残 転 残
不
転 残r
満 不
転 残 残 転 残
不
転 残
不 満 不
転 残 残 転 残
不
転 残
不
r r
不 満 不
転 残 残 転 残
不
転 残r
1. まず「不満」状態に
いる。
2. 現時点の Q に基づき
行動を選択する(※)。
3. 選択した行動をとる。
報酬と次の状態を得る。
4. 現時点の Q に基づ
いて行動を選択する。
(初期状態と同じ状態
かつ Q の更新がまだな
いので 2. と同じ選択
になる。)
5. 3. でとった状態行
動対について Q を更新
する(s-a-r-s-a)。
s-a の行動価値は現時
点の Q による推定値と
なることに注意。
6. 4.で選択した行動を
とる。3.に戻って繰り
返し。
※ 「これからの強化
学習」では、ここ
での行動選択は事
前に決めた方策に
基づく( Sarsa
の目的が Q* の推
定ではなく、事前
に決めた方策に対
する Q の推定に
なっている)。
右図では、Q* の
推定を目的に、現
時点の Q に関す
る (ε-) greedy
な行動などを想定
する。
- 18. 解法4. Q学習
不 満 不
転 残 残 転 残
不
転 残
不 満 不
転 残 残 転 残
不
転 残
不 満 不
転 残 残 転 残
不
転 残r
不 満 不
転 残 残 転 残
不
転 残r
1. まず「不満」状態に
いる。
2. 現時点の Q に基づき
行動を選択する。
3. 選択した行動をとる。
報酬と次の状態を得る。
4. 3. でとった状態行
動対について Q を更新
する(まだ次の行動を
選択していないが、
argmax な行動を仮定
する)。
5. この時点の Q に基
づいて行動を選択する。
(初期状態と同じ状態
だが Q が更新済なので
2. と異なる選択になり
うる。)
6. 5.で選択した行動を
とる。3.に戻って繰り
返し。
満 不
転 残 残 転 残
不
転 残
不
r
argmax
不 満 不
転 残 残 転 残
不
転 残r