Hierarchical and Interpretable
Skill Acquisition in Multi-task
Reinforcement Learning
2018/02/09
NN論文を肴に酒を飲む会 #5
仲田 圭佑
自己紹介
• 名前
• 仲田 圭佑 (なかた けいすけ)
• 仕事
• データ分析@株式会社ブレインパッド
• 研究開発寄りの部署でお仕事に役立ちそうな機械学習研究のサーベイ
をしつつ、受託分析業務をしています
• 最近気になっている分野
• 強化学習
• 今回のNN論文を肴に酒を飲む会のテーマが強化学習なので今日は楽しみです
Hierarchical and Interpretable Skill Acquisition
in Multi-task Reinforcement Learning
• ICLR2018 Poster: https://openreview.net/forum?id=SJJQVZW0b
• arXiv: https://arxiv.org/abs/1712.07294
• arXiv 版はデグレっている (2018/02/08現在) ので、ICLR 版推奨
• Official blog article
• https://einstein.ai/research/hierarchical-reinforcement-learning
• Authors:
• Tianmin Shu
• Univ. of California, Los Angeles
• (Intern at Salesforce Research)
• Caiming Xiong
• Richard Socher
• Salesforce Research
概要
• 階層的にスキルを取得させる強化学習のフレームワークを提案
• 上位スキルが下位スキルを出来る限り利用するように訓練
• 各スキルは自然言語
と対応させる
• Minecraft で実験
導入
• 人間は単純なスキルを組み合わせて新しいスキルを得ている
• 強化学習でも、スキル間の関係を発見して、階層的に組み合わ
せることで新しいスキルを獲得しよう!
• 各スキルは解釈可能であってほしい
• → 各スキルが解く「タスク」は、人間による自然言語の指示で表現
Hierarchical Reinforcement Learning
• 階層的にタスクおよび方策・行動を分割する強化学習。
上位/下位の2階層にするのが典型的。
(だが、提案法では多階層が可能)
• global policy (上位)
• 最終ゴールを達成するために必要なサブゴールの系列を決定する
• より抽象的 (「ブロックを探す」等)
• エージェントによって直接実行はできない行動を出力
• option とか macro action とか呼ばれたりする
• local policy (下位)
• サブゴールを達成するための行動系列を決定する
• より具体的 (「前に1歩進む」「前のマスの物体を取得する」等)
• 実際にエージェントが実行可能な、プリミティブな行動を出力
• primitive action とか呼ばれたりする
モデル
• の説明の前に・・・
• 方策の階層構造の概要 (図1) を説明
• 実際に、あるタスクがどう分割されているかを例示
タスクの実行例 (図1)
basic actions
terminal policy
top-level policy
• terminal 以外の policy は、ひとつ下位の policy に処理を委譲する
か、basic action を直接実行する
• terminal policy は basic (primitive) action しか実行できない
タスクの実行例 (図1)
• 各タスク (と行動) の発火順序
①
②
③
④ ⑤ ⑥
⑦
⑧
⑨
⑩ ⑪
⑫
⑬
設定
:(kステージの) タスク。<find blue> とか。
:状態。つまりゲーム画面。※
※ 手持ちのブロックも状態に含む?論文中に明記なし
:プリミティブ行動。「一歩前へ」とか、
「目の前の物体を取得」とか
:報酬。タスク g ごとに与えられることに注意
(<find blue>のクリア条件と<put blue>のクリア条件は異なるため)
:(kステージの) 方策。k=0 なら terminal、
k=K なら top-level policy
は、k が対応するタスクセット を解く。
また、タスクセットは入れ子になっている:
つまり、上位方策は下位方策でも解けるタスクを解くこともある。
(が、実際のところそういうタスクは下位方策に委譲するように訓練させる。後述)
階層型方策
・
・
・
k = K (top-level policy)
k = K-1
k = 0 (terminal policy)
・・・
• 上位方策はモジュール内部に
ひとつ下の下位方策を持つ
• 上位方策は下位方策への
タスク委譲を判断するし、
自ら primitive action を取る
こともある
• ただし最下位方策 (terminal)
は primitive action しか
取れない
階層型方策 (絵)
ひとつ下の下位方策
(Base)
下位方策に与える
タスク g を
生成する方策
(Instruction)
自ら primitive action
を取るときの方策
(Augmented flat)
Aug. flat と Base の
どちらを使うか
判断する方策
(Switch)
階層型方策 (式)
Base方策とAug. flat方策のどちらを
使うかの判断 e を、Switch方策で生成
自分に与えられたタスク g から、Base方策
に渡すタスク g’ をInstruction方策で生成
eが1なら自分のAug. flat方策から、0ならBase方策から、
取るべき primitive action を生成。
この一連の流れ全体がステージkの Global policy となる
Stochastic Temporal Grammar (STG)
• タスクには依存関係がある
• オブジェクトを持っていないと置けないはず。等
• 強化学習とは別に、
過去の成功系列 (positive episode) をもとに、タスクの依存関
係の順番を文法だと考えて、正しい文法を推測。
推測した文法を利用して、方策の事前分布に補正をかける:
やたらごつい名前がついているが、やっていることは、
過去に成功して報酬がもらえたタスク系列に似てほしいから、その経験分布をかけているだけ
訓練
• 各ステージkごとに段階的に訓練させていく (progressive
learning 的)
• さらに、ひとつのステージの中でも、訓練を2フェーズに分割
(curriculum learning)
• さらにさらに、その各フェーズの中でも、それぞれの方策モ
ジュールは順繰りにひとつずつ更新をかけ、それ以外は更新を
止めておく (alternating update)
• 訓練の擬似コードは、付録A: Algorithm 2
Progressive Learning
• k の若い順から訓練を進める
• 上位方策からは、
下位方策のパラメータは
更新しない
・
・
・
k = K (top-level policy)
k = K-1
k = 0 (terminal policy)
・・・
訓練の順番
Curriculum Learning
• 同じステージ内でも、2フェイズに分けて訓練する
• Phase1
• base skill acquisition phase
• 下位方策 (下位ステージ, k-1) が訓練に利用したタスクのみを上位方策に解か
せる
• 「下位方策ですでに解けるタスクは、下位方策に適切にタスクを委譲すれば
良い」を学ばせる
• Phase2
• novel skill acquisition phase
• 今のステージ (k) で新たに加わったタスクも含めて解かせる
• 「どのタスクが下位方策で解けて、どのタスクが自ら Aug. flat 方策で解かな
いといけないか」を学ばせる
Alternating Update
• M=500 ステップごとに、3つの方策のパラメータの更新対象を
切り替える
• Switch policy
• Instruction policy
• Augmented flat policy
• (もちろん、このとき対象外の
方策のパラメータは更新しない)
Advantage Actor-Critic (A2C)
• 方策勾配法をベースとして、価値関数 (のアドバンテージ) を同
時に推定する A2C でパラメータ更新
Actor 側の勾配
Critic 側の勾配
ω:重点サンプリングの補正項
(経験再生っぽいことをしているので)
実験
• Minecraft で、「ブロックを重ねる」というタスクを解かせ
る:
=={“Find x”}
={“Find x”, “Get x”}
={“Find x”, ”Get x”, “Put x”}
={“Find x”, “Get x”, “Put x”, “Stack x”}
={“Find x”, “Get x”, “Put x”, “Stack x”, “Put x on y”}
x, y には色の名前 (6種類) が入る。ただし x と y は異なる色。
よってタスクはぜんぶで 種類ある。
各タスクを完遂すると+1の報酬を貰ってエピソード終了。
実行不可能なサブタスクを生成すると-0.5の罰則を受けてエピソード終了。
実験
実験
(a): の学習曲線。Reward が落ちている部分は Phase の切り替え。
(b): の学習曲線。ただし Phase 1 を pre-trained で固定して Phase 2 のみの比較。
いずれも提案法はちゃんと学習できていることがわかる
実験
は、”Get x” を受けて、最初に “Find x” を に対して命令。
しかし、制御が返ってきた後、まだ x を見つけていないことに気づき、
再度 に “Find x” を命令している。
感想
• かなりの hand-engineering
• 問題設定やモデル設計、学習方法の工夫に人間の事前知識をだいぶ入
れている印象
• この点は論文中でも将来の課題として触れられている
• 下位方策に完全に操作を委譲してしまう提案法のアプローチだ
と、「状況が変わったので、実行中の下位方策を一旦中断して
再度上位方策で方針を決め直す」とかはできなさそう
• 例えば、マルチエージェント系だと、他のエージェントによって状況
を変えられてしまうことが特に起こりやすい気がする
感想
• 自然言語で解釈可能とは言っても、
語彙がとても少ない上に文章長が2とか
• これくらいの規模なら、埋め込みをせずにそのまま単語インデックス
をエンコードかけても大丈夫そうに感じる
• もちろん、大規模な語彙や文章での発展を考えて応用可能なアーキテクチャで実
験しているという点は理解できる
• もしかしたら、「put と stack は埋め込みが近くなっている」とかあ
るかもしれない?(指示としては似ているので)
感想
• progressinve/curriculum learning によって簡単なタスクを強制的に先に
学習させ、階層的スキルの未分化/過分化の問題を防止しているように見
える
• 方策蒸留系 (H-DRLN等?) のアプローチも、progressive learning に見える。スキル
の未分化/過分化が自然に防げると思われる
• ICLR2018 には、階層的強化学習系として progressive RL のポスターも通っている
• Progressive Reinforcement Learning with Distillation for Multi-Skilled Motion Control
• https://openreview.net/forum?id=B13njo1R-
参考資料
• Thinking out loud: hierarchical and interpretable multi-task
reinforcement learning
• https://einstein.ai/research/hierarchical-reinforcement-learning
• NIPS2017読み会@PFN: Hierarchical Reinforcement
Learning + α
• https://www.slideshare.net/yukono1/nips2017pfn-hierarchical-
reinforcement-learning
参考文献
• Shu, T., Xiong, C., & Socher, R. (2018). Hierarchical and Interpretable Skill
Acquisition in Multi-task Reinforcement Learning. ICLR.
• Tessler, C., Givony, S., Zahavy, T., Mankowitz, D. J., & Mannor, S. (2017). A
Deep Hierarchical Approach to Lifelong Learning in Minecraft. AAAI.
• Berseth, G., Xie, C., Cernek, P., & Panne, M. Van de. (2018). Progressive
Reinforcement Learning with Distillation for Multi-Skilled Motion Control.
ICLR.
• Hermann, K. M., Hill, F., Green, S., Wang, F., Faulkner, R., Soyer, H., et al.
(2017). Grounded Language Learning in a Simulated 3D World. arXiv preprint.
• Rusu, A. A., Colmenarejo, S. G., Gulcehre, C., Desjardins, G., Kirkpatrick, J.,
Pascanu, R., et al. (2016). Policy Distillation. ICLR.
• Su, P.-H., Budzianowski, P., Ultes, S., Gasic, M., & Young, S. (2017). Sample-
efficient Actor-Critic Reinforcement Learning with Supervised Data for
Dialogue Management. ICLR.

Hierarchical and Interpretable Skill Acquisition in Multi-task Reinforcement Learning

  • 1.
    Hierarchical and Interpretable SkillAcquisition in Multi-task Reinforcement Learning 2018/02/09 NN論文を肴に酒を飲む会 #5 仲田 圭佑
  • 2.
    自己紹介 • 名前 • 仲田圭佑 (なかた けいすけ) • 仕事 • データ分析@株式会社ブレインパッド • 研究開発寄りの部署でお仕事に役立ちそうな機械学習研究のサーベイ をしつつ、受託分析業務をしています • 最近気になっている分野 • 強化学習 • 今回のNN論文を肴に酒を飲む会のテーマが強化学習なので今日は楽しみです
  • 3.
    Hierarchical and InterpretableSkill Acquisition in Multi-task Reinforcement Learning • ICLR2018 Poster: https://openreview.net/forum?id=SJJQVZW0b • arXiv: https://arxiv.org/abs/1712.07294 • arXiv 版はデグレっている (2018/02/08現在) ので、ICLR 版推奨 • Official blog article • https://einstein.ai/research/hierarchical-reinforcement-learning • Authors: • Tianmin Shu • Univ. of California, Los Angeles • (Intern at Salesforce Research) • Caiming Xiong • Richard Socher • Salesforce Research
  • 4.
  • 5.
  • 6.
    Hierarchical Reinforcement Learning •階層的にタスクおよび方策・行動を分割する強化学習。 上位/下位の2階層にするのが典型的。 (だが、提案法では多階層が可能) • global policy (上位) • 最終ゴールを達成するために必要なサブゴールの系列を決定する • より抽象的 (「ブロックを探す」等) • エージェントによって直接実行はできない行動を出力 • option とか macro action とか呼ばれたりする • local policy (下位) • サブゴールを達成するための行動系列を決定する • より具体的 (「前に1歩進む」「前のマスの物体を取得する」等) • 実際にエージェントが実行可能な、プリミティブな行動を出力 • primitive action とか呼ばれたりする
  • 7.
    モデル • の説明の前に・・・ • 方策の階層構造の概要(図1) を説明 • 実際に、あるタスクがどう分割されているかを例示
  • 8.
    タスクの実行例 (図1) basic actions terminalpolicy top-level policy • terminal 以外の policy は、ひとつ下位の policy に処理を委譲する か、basic action を直接実行する • terminal policy は basic (primitive) action しか実行できない
  • 9.
    タスクの実行例 (図1) • 各タスク(と行動) の発火順序 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬
  • 10.
    設定 :(kステージの) タスク。<find blue>とか。 :状態。つまりゲーム画面。※ ※ 手持ちのブロックも状態に含む?論文中に明記なし :プリミティブ行動。「一歩前へ」とか、 「目の前の物体を取得」とか :報酬。タスク g ごとに与えられることに注意 (<find blue>のクリア条件と<put blue>のクリア条件は異なるため) :(kステージの) 方策。k=0 なら terminal、 k=K なら top-level policy は、k が対応するタスクセット を解く。 また、タスクセットは入れ子になっている: つまり、上位方策は下位方策でも解けるタスクを解くこともある。 (が、実際のところそういうタスクは下位方策に委譲するように訓練させる。後述)
  • 11.
    階層型方策 ・ ・ ・ k = K(top-level policy) k = K-1 k = 0 (terminal policy) ・・・ • 上位方策はモジュール内部に ひとつ下の下位方策を持つ • 上位方策は下位方策への タスク委譲を判断するし、 自ら primitive action を取る こともある • ただし最下位方策 (terminal) は primitive action しか 取れない
  • 12.
    階層型方策 (絵) ひとつ下の下位方策 (Base) 下位方策に与える タスク gを 生成する方策 (Instruction) 自ら primitive action を取るときの方策 (Augmented flat) Aug. flat と Base の どちらを使うか 判断する方策 (Switch)
  • 13.
    階層型方策 (式) Base方策とAug. flat方策のどちらを 使うかの判断e を、Switch方策で生成 自分に与えられたタスク g から、Base方策 に渡すタスク g’ をInstruction方策で生成 eが1なら自分のAug. flat方策から、0ならBase方策から、 取るべき primitive action を生成。 この一連の流れ全体がステージkの Global policy となる
  • 14.
    Stochastic Temporal Grammar(STG) • タスクには依存関係がある • オブジェクトを持っていないと置けないはず。等 • 強化学習とは別に、 過去の成功系列 (positive episode) をもとに、タスクの依存関 係の順番を文法だと考えて、正しい文法を推測。 推測した文法を利用して、方策の事前分布に補正をかける: やたらごつい名前がついているが、やっていることは、 過去に成功して報酬がもらえたタスク系列に似てほしいから、その経験分布をかけているだけ
  • 15.
    訓練 • 各ステージkごとに段階的に訓練させていく (progressive learning的) • さらに、ひとつのステージの中でも、訓練を2フェーズに分割 (curriculum learning) • さらにさらに、その各フェーズの中でも、それぞれの方策モ ジュールは順繰りにひとつずつ更新をかけ、それ以外は更新を 止めておく (alternating update) • 訓練の擬似コードは、付録A: Algorithm 2
  • 16.
    Progressive Learning • kの若い順から訓練を進める • 上位方策からは、 下位方策のパラメータは 更新しない ・ ・ ・ k = K (top-level policy) k = K-1 k = 0 (terminal policy) ・・・ 訓練の順番
  • 17.
    Curriculum Learning • 同じステージ内でも、2フェイズに分けて訓練する •Phase1 • base skill acquisition phase • 下位方策 (下位ステージ, k-1) が訓練に利用したタスクのみを上位方策に解か せる • 「下位方策ですでに解けるタスクは、下位方策に適切にタスクを委譲すれば 良い」を学ばせる • Phase2 • novel skill acquisition phase • 今のステージ (k) で新たに加わったタスクも含めて解かせる • 「どのタスクが下位方策で解けて、どのタスクが自ら Aug. flat 方策で解かな いといけないか」を学ばせる
  • 18.
    Alternating Update • M=500ステップごとに、3つの方策のパラメータの更新対象を 切り替える • Switch policy • Instruction policy • Augmented flat policy • (もちろん、このとき対象外の 方策のパラメータは更新しない)
  • 19.
    Advantage Actor-Critic (A2C) •方策勾配法をベースとして、価値関数 (のアドバンテージ) を同 時に推定する A2C でパラメータ更新 Actor 側の勾配 Critic 側の勾配 ω:重点サンプリングの補正項 (経験再生っぽいことをしているので)
  • 20.
    実験 • Minecraft で、「ブロックを重ねる」というタスクを解かせ る: =={“Findx”} ={“Find x”, “Get x”} ={“Find x”, ”Get x”, “Put x”} ={“Find x”, “Get x”, “Put x”, “Stack x”} ={“Find x”, “Get x”, “Put x”, “Stack x”, “Put x on y”} x, y には色の名前 (6種類) が入る。ただし x と y は異なる色。 よってタスクはぜんぶで 種類ある。 各タスクを完遂すると+1の報酬を貰ってエピソード終了。 実行不可能なサブタスクを生成すると-0.5の罰則を受けてエピソード終了。
  • 21.
  • 22.
    実験 (a): の学習曲線。Reward が落ちている部分はPhase の切り替え。 (b): の学習曲線。ただし Phase 1 を pre-trained で固定して Phase 2 のみの比較。 いずれも提案法はちゃんと学習できていることがわかる
  • 23.
    実験 は、”Get x” を受けて、最初に“Find x” を に対して命令。 しかし、制御が返ってきた後、まだ x を見つけていないことに気づき、 再度 に “Find x” を命令している。
  • 24.
    感想 • かなりの hand-engineering •問題設定やモデル設計、学習方法の工夫に人間の事前知識をだいぶ入 れている印象 • この点は論文中でも将来の課題として触れられている • 下位方策に完全に操作を委譲してしまう提案法のアプローチだ と、「状況が変わったので、実行中の下位方策を一旦中断して 再度上位方策で方針を決め直す」とかはできなさそう • 例えば、マルチエージェント系だと、他のエージェントによって状況 を変えられてしまうことが特に起こりやすい気がする
  • 25.
    感想 • 自然言語で解釈可能とは言っても、 語彙がとても少ない上に文章長が2とか • これくらいの規模なら、埋め込みをせずにそのまま単語インデックス をエンコードかけても大丈夫そうに感じる •もちろん、大規模な語彙や文章での発展を考えて応用可能なアーキテクチャで実 験しているという点は理解できる • もしかしたら、「put と stack は埋め込みが近くなっている」とかあ るかもしれない?(指示としては似ているので)
  • 26.
    感想 • progressinve/curriculum learningによって簡単なタスクを強制的に先に 学習させ、階層的スキルの未分化/過分化の問題を防止しているように見 える • 方策蒸留系 (H-DRLN等?) のアプローチも、progressive learning に見える。スキル の未分化/過分化が自然に防げると思われる • ICLR2018 には、階層的強化学習系として progressive RL のポスターも通っている • Progressive Reinforcement Learning with Distillation for Multi-Skilled Motion Control • https://openreview.net/forum?id=B13njo1R-
  • 27.
    参考資料 • Thinking outloud: hierarchical and interpretable multi-task reinforcement learning • https://einstein.ai/research/hierarchical-reinforcement-learning • NIPS2017読み会@PFN: Hierarchical Reinforcement Learning + α • https://www.slideshare.net/yukono1/nips2017pfn-hierarchical- reinforcement-learning
  • 28.
    参考文献 • Shu, T.,Xiong, C., & Socher, R. (2018). Hierarchical and Interpretable Skill Acquisition in Multi-task Reinforcement Learning. ICLR. • Tessler, C., Givony, S., Zahavy, T., Mankowitz, D. J., & Mannor, S. (2017). A Deep Hierarchical Approach to Lifelong Learning in Minecraft. AAAI. • Berseth, G., Xie, C., Cernek, P., & Panne, M. Van de. (2018). Progressive Reinforcement Learning with Distillation for Multi-Skilled Motion Control. ICLR. • Hermann, K. M., Hill, F., Green, S., Wang, F., Faulkner, R., Soyer, H., et al. (2017). Grounded Language Learning in a Simulated 3D World. arXiv preprint. • Rusu, A. A., Colmenarejo, S. G., Gulcehre, C., Desjardins, G., Kirkpatrick, J., Pascanu, R., et al. (2016). Policy Distillation. ICLR. • Su, P.-H., Budzianowski, P., Ultes, S., Gasic, M., & Young, S. (2017). Sample- efficient Actor-Critic Reinforcement Learning with Supervised Data for Dialogue Management. ICLR.