強化学習 その4
部分観測マルコフ決定過程
2017-02-02 @ 機械学習勉強会
サイボウズ・ラボ 西尾泰和
その1: http://www.slideshare.net/nishio/1-70974083
その3: http://www.slideshare.net/nishio/3-71708970
その2: http://www.slideshare.net/nishio/2-71708934
このスライドの目的
大規模なデータを占有してない企業にとって
強化学習の考え方が有用なので
基礎からきちんと理解したい。
そのために機械学習勉強会の何回かに分けて
強化学習の話を連載する。
2
参考文献
2016年10月に左の本が出た。
これを読んでいく。
右下の本が長らくバイブル
だったが2000年(原著1998年)
発行。
3
http://amzn.to/2josIJ1
http://amzn.to/2jCnYQg言及する時 [こ] と呼ぶことにする(著者多いので)
今後の予定
第2回(前前回):
2節 強化学習の構成要素
3節 価値反復に基づくアルゴリズム
第3回(前回): 1章4節
方策勾配に基づくアルゴリズム
第4回(今回): 1章5節 部分観測マルコフ決定過程
第5回: 1章5節 部分観測マルコフ決定過程であま
り触れられていないモデルフリーのPOMCT
4
今後の予定
第6回
2.1 統計学習の観点から見たTD学習
2.1.1 強化学習と教師付き学習の学習則
2.1.2~3 関数近似を(する/しない)価値関数推定
(ここまで28ページ)
第7回
2.1.4 セミパラメトリック統計学習に基づく定式
化(10ページ)
2.2 理論性能解析とベイズ
(理論薄めでやる。13ページ)
5
今後の予定
第8回 2.3 逆強化学習
第9回 2.4 経験強化型学習
2.5 群強化学習(飛ばします)
第10回 2.6 リスク考慮型強化学習
2.7 複利型強化学習(飛ばします)
第11回
3 強化学習の工学応用
3.3 対話処理における強化学習
6
今後の予定
第12回 3.5 自然言語処理における逆強化学習と模
倣学習
第13回 3.7 深層学習を用いたQ関数の学習
第14回 4 知能のモデルとしての強化学習
7
前回のおさらい
強化学習は離散の状態、離散の行動に限らない
ことを学んだ。連続の状態、連続の行動を扱うの
に適した方法として方策勾配法を解説し、
実際に実装して実験した。
8
今回
ここまでの話: マルコフ決定過程
=「状態はすべて観測できる」という前提
状態が部分的にしか観測できない場合は?
9
部分観測マルコフ決定過程
部分観測マルコフ決定過程(POMDP:
Partially Observable Markov Decision Process)
(𝒮, 𝒜, 𝑇, 𝑅, Ω, 𝑂)
マルコフ決定過程では観測=状態Sだったが
POMDPでは観測Ωと状態Sを分ける。
Oは観測関数:
𝑂 𝑠′
, 𝑎, 𝑜 = 𝑃(𝑜|𝑎, 𝑠′
)
10
信念状態
状態を直接観測できなくなったので
「たぶんこの状態にいるんじゃないかな~」
という「信念」をs上の確率分布で表現する。
11
信念状態の遷移
ある信念状態b(s)で、行動aをして、観測oが得られ
たときの新しい信念状態b(s’)は
𝑏 𝑎,𝑜
𝑠′
≝ 𝑃 𝑠′
𝑏, 𝑎, 𝑜 =
𝑃 𝑠′
, 𝑏, 𝑎, 𝑜
𝑃 𝑏, 𝑎, 𝑜
=
𝑃 𝑜 𝑠′
, 𝑏, 𝑎 𝑃 𝑠′
, 𝑏, 𝑎
𝑃 𝑜 𝑏, 𝑎 𝑃(𝑏, 𝑎)
=
𝑃 𝑜 𝑠′
, 𝑏, 𝑎 𝑃 𝑠 𝑏, 𝑎
𝑃 𝑜 𝑏, 𝑎
=
𝑃 𝑜 𝑠′
, 𝑎 𝑃 𝑠 𝑏, 𝑎
𝑃 𝑜 𝑏, 𝑎
=
𝑃 𝑜 𝑎, 𝑠′ σ 𝑠 𝑃 𝑠′
𝑠, 𝑎 𝑏 𝑠
𝑃 𝑜 𝑏, 𝑎
12
条件付確率の定義
P(x | y)=P(x, y)/P(y)
P(x, y)=P(x | y)P(y)
𝑃 𝑜 𝑠′
, 𝑏, 𝑎 はs’がgivenだから
bには依存しない
修正
[こ]の式1.5.2 (p.59)では
𝑃 𝑜 𝑏, 𝑎 = ෍
𝑠
𝑏 𝑠 ෍
𝑠′
𝑃 𝑠′
𝑠, 𝑎 𝑃(𝑎, 𝑜, 𝑠′)
となっているけど[22]の式15(下囲み)を参考にす
ると[こ]の記法ではO(s’, a, o)=P(o | a, s’)だから
𝑃 𝑜 𝑏, 𝑎 = ෍
𝑠
𝑏 𝑠 ෍
𝑠′
𝑃 𝑠′
𝑠, 𝑎 𝑃(𝑜|𝑎, 𝑠′)
13
[22] = [Shani+ 2012] A survey of point-based POMDP solvers
状態遷移関数
信念bの空間B上の状態遷移関数を求める
𝜏 𝑏, 𝑎, 𝑏′
= 𝑃 𝑏′
𝑎, 𝑏
=
𝑃 𝑏, 𝑎, 𝑏′
𝑃 𝑏, 𝑎
=
σ 𝑜 𝑃 𝑏, 𝑎, 𝑜, 𝑏′
𝑃(𝑏, 𝑎)
𝑏 𝑎,𝑜
𝑠′
= 𝑃(𝑠′
|𝑏, 𝑎, 𝑜)だから
𝑃 𝑏, 𝑎, 𝑜, 𝑠′ = 𝑏 𝑎,𝑜
𝑠′
𝑃 𝑏, 𝑎, 𝑜
= 𝑏 𝑎,𝑜 𝑠′ 𝑃 𝑜 𝑏, 𝑎 𝑃(𝑏, 𝑎)
𝑃 𝑏, 𝑎, 𝑜, 𝑏′ は𝑃 𝑏, 𝑎, 𝑜, 𝑠′ のs’がb’に一致した場合だけを取
り出したものだから
σ 𝑜 𝑃 𝑏, 𝑎, 𝑜, 𝑏′
𝑃(𝑏, 𝑎)
= ෍
𝑜
𝕀[𝑏 𝑎,𝑜
𝑠′
= 𝑏′(𝑠)]𝑃 𝑜 𝑏, 𝑎
14
belief MDP
信念状態b(s)を状態だと考えれば
𝜏 𝑏, 𝑎, 𝑏′
を状態遷移関数としてMDPになる。
既存のMDPに関する解法が使える!
…と思いきや、元のMDPがD状態だったとすると
このbelief MDPはD次元の連続状態になる。
→計算量がやばい!
15
都合のよい性質
belief MDPの価値関数Vには*ある特徴がある:
区分線形で下に凸(piecewise linear and convex)
あるベクトルの集合Γn = {𝛼1, 𝛼2, … , 𝛼 𝐾}を用いて
𝑉𝑛 𝑏 = max
𝛼∈Γ 𝑛
෍
𝑖
𝛼𝑖 𝑏𝑖 = max
𝛼∈Γ 𝑛
𝛼 ⋅ 𝑏
と表せる。なぜか?
16
* 有限ステップで終了する場合と、一部の無限ステップの場合に限定して
区分線形で下に凸
残り0ステップで終了する場合(=終了した場合)
状態iで終わった時の価値の期待値を𝑞𝑖
0
として、
𝑉0 𝑏 = ෍
𝑖
𝑏𝑖 𝑞𝑖
0
となる。これは
Γ0 = {𝑞0
}
のケースに相当する。
17
区分線形で下に凸
n>0の時VnはVn-1を用いてこう書ける
𝑉𝑛 𝑏 = max
𝑎
෍
𝑖
𝑏𝑖 𝑞𝑖
𝑎
+ ෍
𝑖𝑗𝑜
𝑏𝑖 𝑝𝑖𝑗
𝑎
𝑟𝑗𝑜
𝑎
𝑉𝑛−1(𝑏′
)
ストーリーに影響しないけど一応書いておくと
𝑝𝑖𝑗
𝑎
= 𝑇 𝑠 = 𝑠𝑖, 𝑎, 𝑠′ = 𝑠𝑗 = 𝑃 𝑠′ 𝑠, 𝑎 ,
𝑟𝑗𝑜
𝑎
= 𝑂 𝑠′ = 𝑠𝑗, 𝑎, 𝑜 = 𝑃 𝑜 𝑠′, 𝑎 ,
𝑞𝑖
𝑎
= ෍
𝑗𝑜
𝑝𝑖𝑗
𝑎
𝑟𝑗𝑜
𝑎
𝑤𝑖𝑗𝑜
𝑎
, 𝑏𝑗
′
=
σ𝑖 𝑏𝑖 𝑝𝑖𝑗
𝑎
𝑟𝑗𝑜
𝑎
σ𝑖𝑗 𝑏𝑖 𝑝𝑖𝑗
𝑎
𝑟𝑗𝑜
𝑎
𝑤𝑖𝑗𝑜
𝑎
= 𝑅(𝑠 = 𝑠𝑖, 𝑎, 𝑠′ = 𝑠𝑗, 𝑜)
18
[Smallwood and Sondik 1971]がまあだいぶ前の論文なので記法の差が激しいんですよ
区分線形で下に凸
Vn-1が条件を満たすとする。正の数を掛けたり足したり
はmaxと演算の順序を交換しても結果が変わらないので
𝑉𝑛 𝑏 = max
𝑎
෍
𝑖
𝑏𝑖 𝑞𝑖
𝑎
+ ෍
𝑖𝑗𝑜
𝑏𝑖 𝑝𝑖𝑗
𝑎
𝑟𝑗𝑜
𝑎
max
𝛼∈Γ 𝑛−1
𝛼 ⋅ 𝑏′
= max
𝑎,𝛼 𝑜 ∈Γ 𝑛−1
Ω
෍
𝑖
𝑏𝑖 𝑞𝑖
𝑎
+ ෍
𝑖𝑗𝑜
𝑝𝑖𝑗
𝑎
𝑟𝑗𝑜
𝑎
𝛼 𝑜 ⋅ 𝑏 𝑜
′
𝑜
となる。中のカッコの中身を新しいαと見れば「Vn-1で
成り立つならVnでも成り立つ」となり数学的帰納法。
19
b’がoに依存しているため、maxになるαがoに依存するので|Ω|個選ぶ必要がある
というわけで
belief MDPの価値関数Vは区分線形で下に凸であ
り、αベクトルを使って効率的に表現できる。
しかし、1ステップ先までの情報を使うと
αベクトルの数が「 𝐴 𝑉 Ω
」倍になる。
p.61の「各々のαベクトルは、直感的にはある鼓
動決定木を取った場合の価値関数」
p.63の「αベクトルがステップごとに指数的に増
えてしまう」
の意味がよく分かった。
20
Point-Based Value Iteration
αが指数的に増えると困るので数を制限しよう
→Point-Based Value Iteration(PBVI)
個人的には[こ]よりPBVIの提案がされた
[Pineau+ 2003]の方がわかりやすかったのと
[こ]の数式との対応がよくわからなかったので
[Pineau+ 2003]ベースで解説する。
21
[Pineau+ 2003]
Point-based value iteration: An anytime algorithm for POMDPs
バックアップ
終了からnステップ手前の価値関数Vnは
Vn-1から計算することができる。
これを「バックアップオペレータ」Hを用いて
V=HV’と表現する。今回は具体的には
𝑉 𝑏
= max
𝑎∈𝒜
൥෍
𝑠
𝑅 𝑠, 𝑎 𝑏 𝑠
22
exact value backupとPBVIの比較
まずexact value backupの流れを見て、
それから一部共通であるPBVIの流れを見る。
23
exact value backupの実装
まず一時的に以下の集合を作る
Γ 𝑎,∗
← 𝛼 𝑎,∗
𝑠 = 𝑅 𝑠, 𝑎
Γ 𝑎,𝑜
← 𝛼𝑖
𝑎,𝑜
𝑠 𝛼𝑖
′
∈ 𝑉′
𝑤ℎ𝑒𝑟𝑒 𝛼𝑖
𝑎,𝑜
= 𝛾 ෍
𝑠′
𝑇 𝑠, 𝑎, 𝑠′
𝑂 𝑜, 𝑠′
, 𝑎 𝛼𝑖
′
𝑠
ここまではPBVIも同じ。
24
exact value backupの実装
得られた一時的集合に対してクロス和を計算する
Γ 𝑎
= Γ 𝑎,∗
⊕ Γ 𝑎,𝑜1 ⊕ Γ 𝑎,𝑜2 ⊕ ⋯
それからユニオンを計算して、Vが得られる
𝑉 =∪ 𝑎∈𝒜 Γ 𝑎
クロス和は集合の各要素についての和を取ったも
のの集合なので(間に枝刈りを挟んで多少削減す
ることはできるが)最悪ケースで指数オーダー
𝑉 = 𝐴 𝑉′ Ω
25
Point-Based Value Iteration
Vが指数オーダーのサイズになると困るので
有限個の点Bについてだけ計算するのがPBVI
一次的集合の作成までは同じで、その後
クロス和の代わりに
Γ𝑏
𝑎
= Γ 𝑎,∗
+ ෍
𝑜
argmax 𝛼∈Γ 𝑎,𝑜(𝛼 ⋅ 𝑏)
𝑉 = argmaxΓ 𝑏
𝑎
,∀𝑎∈𝒜 Γ𝑏
𝑎
⋅ 𝑏 𝑏 ∈ 𝐵
とやることでVのサイズは常に|B|となる。
26
Bはどう選ぶ?
初期信念状態の一点集合から始める。
B中の各信念状態からシミュレーションで
一ステップ進め新しい信念状態をBに追加する。
この時、既出のものと既出のものに近すぎるもの
は省く。Bのサイズは最大で2倍になる。
この作業は任意のタイミングで実行してよいので
適度なサイズになるまで倍々で増やして止めれば
いい。
27
実装してみよう!
[こ]でも紹介されているTiger問題、元が2状態だ
からbが1次元単体でグラフが描きやすい。
なのでこれを実装して観察してみよう。
28
Tiger問題
問: 2つドアがあり、どちらかの後ろにトラが隠れ
ている。トラがいる方のドアを開けると報酬-100
いない方のドアを開けると+10。トラの位置が
シャッフルされる。エージェントは「左を開け
る」「右を開ける」「音を聞く」の3つの行動を
取ることができる。トラがどちらにいるのかは直
接観測できない。「音を聞く」をした場合、報酬
-1で、トラがいる側から85%の確率で音が聞こえ
る。残り15%では反対側から音が聞こえる。
最適な方策を答えよ。
29
Tiger問題
小問
(1)行動空間Aは何か
(2)状態空間Sは何か
(3)観測空間Ωは何か
(4)報酬関数Rは何か
(5)状態遷移関数Tは何か
(6)観測関数Oは何か
30
小問の答え
(1)
𝒜 = {𝑎𝑙𝑒𝑓𝑡, 𝑎 𝑟𝑖𝑔ℎ𝑡, 𝑎𝑙𝑖𝑠𝑡𝑒𝑛}
(2)
𝒮 = {𝑠𝑙𝑒𝑓𝑡, 𝑠 𝑟𝑖𝑔ℎ𝑡}
(3)
Ω = {𝑜𝑙𝑒𝑓𝑡, 𝑜 𝑟𝑖𝑔ℎ𝑡}
31
小問の答え
(4)
𝑅 𝑠, 𝑎 = {
𝑠𝑙𝑒𝑓𝑡 ∶ +10, −100, −1 ,
𝑠 𝑟𝑖𝑔ℎ𝑡: [−100, +10, −1]
}
(5)
𝑇 𝑠, 𝑎, 𝑠′
= {
𝑠𝑙𝑒𝑓𝑡 ∶ 0.5, 0.5 , 0.5, 0.5 , [1.0, 0.0] ,
𝑠 𝑟𝑖𝑔ℎ𝑡: 0.5, 0.5 , 0.5, 0.5 , 0.0, 1.0
}
32
見やすさのために連想行列風に書いたけど最終的に行列に落とします
小問の答え
(6) 観測(listen)していない時の観測結果を表現す
るために何も聞こえないo_nothingを追加する手
も考えられたが、今回は左右均等に音が聞こえる
ことにした。
𝑂 𝑠′
, 𝑎, 𝑜 = {
𝑠𝑙𝑒𝑓𝑡 ∶ 0.5, 0.5 , 0.5, 0.5 , [0.85, 0.15] ,
𝑠 𝑟𝑖𝑔ℎ𝑡: 0.5, 0.5 , 0.5, 0.5 , 0.15, 0.85
}
33
小問
(6) V0は何か?
(7) Γ 𝑎,∗
, Γ 𝑎,𝑜
, Γ 𝑎
それぞれのサイズと値は?
34
小問の答え
(6) V0は行動が0回残っている時点での価値なの
で{[0.0, 0.0]}
(7-1) Γ 𝑎,∗
は|A| * |S|で
[[ 10 -100 -1]
[-100 10 -1]]
長さ|S|のベクトルの集合であるVと揃えて考える
と、V0がサイズ1で、Γ 𝑎,∗
がサイズ3
35
小問の答え
Γ 𝑎,𝑜
は |A| * |O| * |V0| * |S| で、V0の中身がゼロな
ので計算すると全部ゼロになる。
[[[[ 0. 0.]] [[ 0. 0.]]]
[[[ 0. 0.]] [[ 0. 0.]]]
[[[ 0. 0.]] [[ 0. 0.]]]]
36
小問の答え
Γ 𝑎
はクロス和をするので |A| * (|V0| ** |O|) * |S| と
指数的サイズだが、今回 |V0| = 1なのでサイズ3
ゼロのクロス和もゼロなので結局、各行動・状態
ごとの報酬であるところの Γ 𝑎,∗
になる。
[[[ 10. -100.]]
[[-100. 10.]]
[[ -1. -1.]]]
V1はこの3つの|S|次元ベクトルの集合になる。
37
V1をプロット
90%くらい自信があれば扉を開けてもよいけど
そうでないならlistenするのがよい、という図
38
小問
V2のサイズは?
どんな値?(手計算は大変)
39
V2
V2は|A| * (|V1| ** |O|)なので
3 * 3 ** 2の27になる。
40
[[ -35. -145. ]
[ -35. -145. ]
[ -13. -123. ]
[ -35. -145. ]
[ -35. -145. ]
[ -13. -123. ]
[ -13. -123. ]
[ -13. -123. ]
[ 9. -101. ]
[-145. -35. ]
[-145. -35. ]
[-123. -13. ]
[-145. -35. ]
[-145. -35. ]
[-123. -13. ]
[-123. -13. ]
[-123. -13. ]
[-101. 9. ]
[ 9. -101. ]
[ -7.5 -7.5 ]
[ 7.35 -16.85]
[ -84.5 -84.5 ]
[-101. 9. ]
[ -86.15 -0.35]
[ -0.35 -86.15]
[ -16.85 7.35]
[ -2. -2. ]]
V2をプロット
どんなbに対してもmaxの結果にならないαがある
→計算の無駄なので取り除こう(prune)
41
prune(V2)をプロット
必要なαは5本だった
42
prune(V2)詳細
中央周辺の3本は「今回listenする」に対応したも
の。現時点のbが0.5だと1回listenしてもまだ「扉
を開けたら得」にはならないので2回目もlistenし
て合計報酬-2になるのが最適(A)
b=0.9ぐらいだと、listenしてから扉を開ける(B)
すごく自信があると即開ける(C)
43
A B
C
V3
V2の段階でpruneしていないと、
|A| * (|V2| ** |O|) = 3 * 27 ** 2 = 2187になる(左図)
backup(prune(V2))なら75、それをさらにpruneす
れば9になる(中・右図)
次数が低いからかpruneがとてもよく効いている
44
掛かる時間
pruneが効くとはいえ、一度大きな集合を作って
それを刈り込む作業には割と時間がかかる。
45
V1, 3->3, 0s 160ms
V2, 27->5, 0s 540ms
V3, 75->9, 1s 444ms
V4, 243->5, 4s 645ms
V5, 75->9, 1s 450ms
V6, 243->13, 4s 523ms
V7, 507->15, 9s 117ms
V8, 675->21, 12s 426ms
V9, 1323->25, 25s 98ms
V10, 1875->25, 39s 991ms
注: pruneの実装はまじめにやると結構面倒なので今回は1万点のグリッドサーチをして
いる。もっと人間時間を使って線形計画法で実装しなおせばCPU時間は節約できるけど
PBVIならそもそもpruneしなくても数が抑えられるんで頑張らない。
Point-based Value Iteration
元々決まった個数しか作らないので
刈り込みの時間もかからない。
46
V1, 11->3, 0s 362ms
V2, 11->5, 0s 182ms
V3, 11->7, 0s 178ms
V4, 11->7, 0s 207ms
V5, 11->8, 0s 202ms
V6, 11->9, 0s 205ms
V7, 11->11, 0s 199ms
V8, 11->11, 0s 180ms
V9, 11->10, 0s 195ms
V10, 11->11, 0s 183ms
Bは論文通りの方法ではなく、手抜きをして11点均等にばらまいた
誤差
PBVIは報酬少し低めに見積もっている
47
Belief point set expansion
この実験ではBelief point setを適当に
均等割りで11個決めたが、
論文通りに初期状態から探索して決めたら
どうなるか?
48
結果
0.3あたりが大きく外れたが、
実はこれは到達不能状態なのでどうでもよい。
到達可能な黒丸を見ると誤差が減っている。
49
まとめ
状態を観測できない問題設定で
状態価値関数Vを推定することができた。
正確に求めようとすると計算量が指数的だが
特定の点だけを求める方法で効率よく求まる。
その際の「特定の点」は到達可能状態になるよう
に選んだ方がよい。
50
参考文献
[22] = [Shani+ 2012] A survey of point-based POMDP solvers
https://pdfs.semanticscholar.org/2027/b108fbefdb8aef1b6db8806
f98fceaa341a9.pdf
[Smallwood and Sondik 1971] The Optinal Control of Partially
Observable Markov Process over a Finite Horizon
http://www.cs.ubc.ca/~nando/550-
2006/handouts/sondikPOMDP.pdf
[Pineau+ 2003]
Point-based value iteration: An anytime algorithm for POMDPs
http://www.cs.mcgill.ca/~jpineau/files/jpineau-ijcai03.pdf
51

強化学習その4