Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

強化学習その4

6,275 views

Published on

部分観測マルコフ決定過程

Published in: Education
  • Be the first to comment

強化学習その4

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

×