Why Does Hierarchy (Sometimes) Work So Well in Reinforcement Learning?を読んだ際のメモ

出典

読んだ理由

 前回、コンピュータ将棋における現状の強化学習の課題として、特定の戦型に弱く、探索が偏っているのではないかという問題意識を持った。居飛車振飛車のような方針からして大きく異なる戦法を探索できる必要があり、それは階層的強化学習のような枠組みで考えることで解決できる可能性があると考えている。そのあたりを調べていたところ、階層的強化学習が効率的な探索に貢献するという主張をしている論文があったので読んだ。

概要

 階層的強化学習が上手くいく理由を仮説として4つにまとめ、それぞれの正当性を検証した。実験結果は階層的にすることで探索が効率化されるため性能が良くなることを示唆しており、それをもとに非階層的強化学習でも行える実装が容易な改善方法を示した。

1. Introduction

 省略

2. Related Work

 省略

3. 階層的強化学習

 基本的な枠組みとしては上位レベルの方策が1つ以上の下位レベルの方策を指定、指示することを階層的強化学習という。

  1. Option型
    • 数ステップごとに上位方策が一つの下位方策を指定、その期間は指定された下位方策が行動を決定
  2. Goal-conditioned型
    • 数ステップごとに上位方策が(連続値の)目標を出力
      • この"目標"は抽象的なものではなくX,Y座標のような具体的なものに限定される? それだと応用範囲が狭そうに思えるが
    • 下位方策は状態 + 目標を入力として行動を決定

4. 階層的強化学習が上手くいく理由の仮説

  1. 上位方策がステップ数が圧縮しているので報酬が伝播しやすく学習が効率的
  2. 上位方策が複数ステップごとに使われるので時間的に相関する状態をまとめて探索可能
  3. 上位方策が意味のある行動系列を直接的に扱うため報酬との相関が強く学習が効率的
  4. 上位方策が意味のある行動系列を用いて探索することで探索が効率化

 仮説同士の関係は

抽象化する対象\効率化する対象 学習 探索
時間 仮説1 仮説2
意味 仮説3 仮説4

 (正直仮説2と仮説4の違いがあまりよくわかっていない)

 この論文はそれぞれの理由を独立に検証する実験を行い、結果は2,4の探索の効率化が性能向上に大きく寄与するということを示した。

5. 実験

 物理エンジンの中で4本足のエージェントを動かして、特定の位置に移動、ブロックを特定の位置に動かすなどのタスクを解かせる。

f:id:tokumini:20191002175329p:plain
Figure 1

 前提として、階層型強化学習(左3つ)だとそこそこ上手くいくが、単にマルチステップ報酬を使う非階層型エージェント(右3つ)はボロボロ。

5.1 仮説1,2の検証

  • 上位方策が行動を時間的に拡張することが重要かを検証
  • 上位方策を呼び出すステップ間隔 cを以下の2つに分解
    • 学習時の報酬総和を取る間隔 c_{\mathrm{train}}(学習の時間的な圧縮に対応)
    • 行動決定時の呼び出し間隔 c_{\mathrm{expr}}を別々に設定(探索の時間的な圧縮に対応)
  • 結果

f:id:tokumini:20191002173356p:plain
Figure 2

どちらもやや大きめの方が良さそうではあるが、あまり大きな差ではないとも言える。

5.2 仮説1,3の検証

  • 階層型エージェントによって収集された軌道を一部用いて非階層的なエージェントを学習(Shadow Agentと命名
    • 探索が効率化されていることが大きいならこの非階層的なエージェントも性能が良いはず
    • 行動を時間的にor意味的にまとめることが重要なら階層的エージェントと非階層的エージェントの性能差が大きくなるはず
  • 仮説1の影響を排除するため非階層的エージェントも c_{\mathrm{rew}}ステップ分をまとめるマルチステップ強化学習を実行
  • 結果

f:id:tokumini:20191002174100p:plain
Figure 3

 c_{\mathrm{rew}} = 3だと階層的エージェントとほぼ同等の性能→重要なのは探索

5.3 仮説2,4の検証

  • これまでの結果を踏まえて非階層型だが上手く探索できる手法を提案
    Explore & Exploit
  • Goal-conditioned型に近い形
    •  c_{\mathrm{switch}}ステップごとに2つのエージェントを確率的に選択(80%と20%)
      • 環境報酬を最大化するエージェント(上位方策に類似)
      • 目標を達成するためのエージェント(下位方策に類似)
    • 両方共環境が提供する行動に対する方策を学習
    • 2つのエージェントでリプレイバッファは共有
      Switching Ensemble
  • Option型に近い形
  • 複数の(5くらい)非階層型エージェントを学習
  •  c_{\mathrm{switch}}ステップごとにエージェントの一つをランダムに選択
    (要するに上位方策を一様分布にしただけ)

f:id:tokumini:20191002182538p:plain
Figure 4

 AntBlockMazeにおけるExplore & ExploitとAntPushにおけるSwitching Ensemble以外は階層型手法と同程度の性能を達成。

 それぞれのエージェントは別々のネットワークを使用することが重要。ネットワークの入力に近い側をボディとして共有し、エージェントの数だけヘッドを分岐させる方法では性能低下(付録より)

f:id:tokumini:20191002184117p:plain
Figure 7

所感

 階層的強化学習が探索で効果的だという説は、感触としてはイメージ通り。Switching Ensemble型で上手く結果が出るなら、たとえば将棋なら居飛車エージェントと振飛車エージェントの二つを用意して確率的に選択するなどでも効果が出そうだと期待したくなるところ。しかし二つの方策を作って学習させてもそれらが似通ってしまったら意味がないので、どうやってバラけさせるかは問題になりそう。実験ドメインボードゲーム分野とはかなり異なるので将棋に応用してすぐ結果が出るかは微妙そうだ。

 エージェント間でネットワークを共有させると性能が落ちるという点は気になるところ。そうなるとそもそも学習で得られる表現自体が各エージェントで全然別のものになっているのだろうか。強化学習における表現学習という方向でももっと調べてみたい。