ランク付けされたデモンストレーションから報酬を推定する手法T-REXの論文を読む

T-REXというまたかわいい(?)名前の逆強化学習アルゴリズムが発表されたので読んでみました.ざっくり読んだ際のメモなので間違い等はご指摘ください.

本文はこちらです↓↓.

Extrapolating beyond suboptimal Demonstrations via Inverse Reinforcement Learning from Observations

T-Rexを3行でまとめると

  • 優劣情報(ランク付け)がある複数のデモンストレーションデータから報酬を推定する手法
  • 2つの行動軌跡からランク付けが正しくなるように報酬関数をニューラルネットによって回帰する
  • この報酬を使って強化学習をすることでデモンストレーションを超えるパフォーマンスを獲得

報酬を推定しているが,逆強化学習とは以下の点で大きく異なります.

  • デモンストレーションに優劣の情報が与えられている前提
  • 環境との相互作用なしに,教師あり学習的に報酬関数を近似
  • デモンストレーションデータを超えるような方策を獲得しうる

強化学習はデモンストレーションの行動を説明(再現)するような報酬関数を求めます.これに対し,T-REXでは行動軌跡の優劣を説明するような報酬を求めます.これによりデモンストレーションデータよりも優れた方策に対して,より大きな報酬が与えられるような報酬関数を推定できると期待でき,sub-optimalなデモンストレーションからでも学習が可能になっているようです.

実際読んでみて,こんなにシンプルな報酬の推定方法でうまくいくのか正直疑問に残るところがありました.実際正しく学習できるような保証は示されていないように思えます.実験ではMujocoのような前進による報酬やAtariのシューティング系の報酬(短い期間の行動が報酬に直結する),およびQ*bertやBreakoutのような状態に現在の成績がわかりやすく反映されているものについては,よいパフォーマンスが得られる一方,Heroのような報酬につながる行動がわかりにくいものについてはうまく学習ができていないように感じられました.

とはいってもこの順序のみに着目してデモンストレーションを超えるような方策に対して,より多くの報酬が与えられるようにするという考え方は非常に面白いですし,今後の進展が気になるところですね.

以下はこの論文を読んだ際のメモになります.

本文メモ

1.イントロ

強化学習においてロボットに意図した動作をさせたい. しかし報酬設計は困難である. そのため逆強化学習が考えられるが,最適なデモンストレーションが与えられるとは限らない.

提案手法であるT-Rexはランク付けされたデモンストレーションデータを用いて,その意図を推定(extrapolate) し,状態ベースの報酬を学習する.(生成にちかい) 逆強化学習はデモンストレーションを正当化(再現)するような報酬を求める一方で,T-Rexはデモンストレーションのランク付けを説明するような報酬関数を求める. この報酬関数を最大化するように強化学習を行うことで,デモンストレーションを超えるような方策を獲得する可能性がある.

この利点として2つ挙げられる

  1. ランク付けに関連する特徴がわかる.
  2. 高次元のデータから特徴量を学習するとき,エキスパート(demonstrator)が訪れたごく一部の状態にオーバーフィットすることを防ぐ.つまりsuboptimalなデモによって多様性のあるデータを与えることで,いいことと悪いこと,どちらも学習しうる.

2.関連研究 省略

3.問題定義 省略

4.手法

報酬関数$$r_\theta(s)$$をパラメータ$$\theta$$でのニューラルネットワークで近似することを考える.パラメータ$$\theta$$はデモンストレーションの各軌跡$$\tau_i$$の一対比較についてランクが大きい方の累積報酬が大きくなるように学習する.具体的には式(3)のloss関数について最適化して報酬関数を求める.

f:id:keiforbusy:20190430141404p:plain

 訓練データを増やすため,各軌跡$$\tau_i$$について一部だけをとって比較するように学習を行う.これにより少数のデモンストレーションデータでも学習が可能になる.

学習の手順としては

  1. 軌跡\tau_i\tau_jを選びその中から長さLの部分軌跡を取り出す.
  2. この軌跡について現在の報酬関数r_\theta(s)で得られる累積報酬をもとめ式(3 )の損失関数に基づきr_\theta(s)を更新
  3. 1,2を繰り返す.
  4. これによって学習した報酬関数に基づき強化学習を行う.

実験(Mujoco)

デモンストレーションデータ

  • 報酬によって順位付けした
  • 生成された時間(学習初期から末期にかけて)によって順位付け

の2種を試している.

1000stepの軌跡についてL =50 の5000ペアについて報酬r_\theta(s)を学習 オーバーフィット防止のため報酬r_\theta(s)は5つのDNN(3×256dense)について標準化したのちアンサンブル(平均値)をとる.

エージェントはこの報酬に加えてOpenAI Gymのコントロールペナルティ(ロボットのトルクを最小化させるもの)を加える.(これよいのかな?)

結果(従来手法との比較)

表1

table1(https://arxiv.org/pdf/1904.06387.pdf)

figure.2 は横軸に真の報酬,縦軸にTrexによって推定された報酬を表しており,赤色が実際のデモにおける報酬,青色がデモンストレーションを超えるような軌跡での報酬を表している. つまり(Hopperでは特に)デモンストレーションデータにないような軌跡での報酬推定もうまくできていることを示す.

Atariでの結果

Table.2(https://arxiv.org/pdf/1904.06387.pdf)

12個のデモンストレーションデータから学習

Table2は与えたデモンストレーションと各模倣手法の成績を表しており,Enduro,Hero,Pong以外ではデモンストレーションを超えるような成績を獲得している.

順番のノイズに対するロバスト

デモンストレーションデータのランク付けについてある程度ランダムに入れ替えてもある程度機能すると主張.

これはつまり人間がラベル付けをする際に厳密でなくてもある程度うまくいく可能性を示す.