NIPS2017論文読みメモ: Inverse Reward Design(その3)

NIPS2017論文読み会に参加するので論文を読みたいと思います。今回読むのは以下です。

Dylan Hadfield-Menell, Smitha Milli, Pieter Abbeel, Stuart Russell and Anca Dragan. Inverse Reward Design. arXiv: 1711:02827, 2017. https://arxiv.org/abs/1711.02827
※ 以下、キャラクターが会話します。それぞれの原作とは関係ありません。論文内容の解釈誤りは本ブログ筆者に帰属します。
前回:その2 / 次回:その4
f:id:cookie-box:20180101155919p:plain:w60

前回の最後で、 P(w=w^{\ast} | \tilde{w}, \tilde{M}) つまり環境モデルとプロキシ報酬所与の下での真の報酬の分布の式まで導出したねー。でも、この式に出てくる分母の計算が問題なんだ。

f:id:cookie-box:20180101155951p:plain:w60

分母?  \int _{\tilde{w}} \exp(\beta w^{\top} \tilde{\phi} ) d \tilde{w} でしたね。積分する対象は、「あるプロキシ報酬  \tilde{w} に基づいた方策で行動する下で、報酬関数  w に基づいて得られる報酬の期待値」の  \beta 倍のエクスポネンシャルですね。積分区間は…ありうるプロキシ報酬全て…。

f:id:cookie-box:20180101155919p:plain:w60

うん。前回、報酬になりうる関数がなす空間って  \mathbb{R}^d なんじゃない?ってつぶやいちゃったけど、もしそうだったら積分は発散しちゃうかもね。もっと積分領域が絞れたとしても、フツウに大変な積分なんだよね。だから、まともに計算するのはあきらめて、近似的に計算するよ。この論文では2つの近似計算法が挙げられていて、1つ目は、この積分を有限個のサンプル  \{w_i \} に対する和で代替する。

f:id:cookie-box:20180101155951p:plain:w60

結構単純ですね。

f:id:cookie-box:20180101155919p:plain:w60

ちょっと工夫するみたいだけどねー。それで、2つ目の方法は…その前に、逆強化学習に触れておかないとにゃー。瑞希ちゃん、逆強化学習(Inverse Reinforcement Learning; IRL)は知ってるかにゃ?

f:id:cookie-box:20180101155951p:plain:w60

知りません。逆強化学習…逆…何が逆?

f:id:cookie-box:20180101155919p:plain:w60

逆強化学習は、この論文の直接的な先行研究になるね。報酬関数って実はちゃんとわからないってゆー問題意識はこの論文と同じ。それで、逆強化学習では、理想的な行動を与えて、そこから報酬関数を推定しようとするんだよね。

  • この論文(逆報酬デザイン;IRD)でも、真の報酬を推定する過程で、プロキシ報酬に基づいた方策がどんな行動系列を選択するかを考えるから、逆強化学習と逆報酬デザインはゴールが一緒でスタート地点が違うみたいな感じだねー。
  • IRL(逆強化学習)概ねよい行動→ 真の報酬   
    IRD(逆報酬デザイン)概ねよい報酬 →概ねよい行動→ 真の報酬   

f:id:cookie-box:20180101155951p:plain:w60

行動のお手本を示して、報酬を逆算しようとするのですか。強化学習は報酬を与えて行動させる、逆強化学習は行動を与えて報酬を求める、確かに、逆です。…でも、理想的な行動がわかっているなら、そもそも強化学習が必要なのかって気もします。もちろん、理想的な行動のデータセットはあらゆる状況を網羅していないかもしれないので、一度報酬を逆算しなければどんな状況でも自動的に行動するエージェントをつくれないのかもしれません。でも、逆算した報酬はあくまで用意したデータセット上の行動を再現するだけなので、データセットに現れないような状況には、弱そう。そうなると、逆算した報酬で学習したエージェントをデプロイして、好ましくない行動をするようだったらそれを修正する行動をお手本に追加して報酬を逆算し直す、というような、反復が必要そう。

f:id:cookie-box:20180101155919p:plain:w60

んー、その辺はなんか工夫していると思うんだけど、逆強化学習がどうやって報酬関数の精度を上げているかは、あたしもよく知らないんだよねー。でも、そーゆー、「報酬関数ってわからない、だから、理想的な行動を与えて報酬を逆算しちゃえ、でも、理想的な行動って与えきれる?」みたいな流れがあってこの論文があると思うんだよね。この論文のイントロはあくまで「報酬って設計ミスっちゃうよね」って感じなんだけど。でも、3節では先行研究に触れられていて、「究極的には IRL(逆強化学習)と IRD(逆報酬デザイン=この論文)は相互補完的につかいたい」ってあるんだ。

f:id:cookie-box:20180101155951p:plain:w60

相互補完的に?

f:id:cookie-box:20180101155919p:plain:w60

…上手い喩えじゃないかもしれないけど、ママの料理に、注文つけるとするじゃん。どうしてほしいのか明らかなときは「もっと塩を入れてよー」とか、具体的な行動の仕方を伝えればいいよね。それのが確実だし。でも、具体的にどうするべきかは明らかじゃないけど、おいしくないってゆーときもあるよね。そのときは「微妙」っていう評価を伝えるしかない。だから、ママっていうお料理エージェントには、行動の仕方を伝えるだけとか、評価を伝えるだけとかより、どっちも組み合せて伝えられた方がいい。ってゆーことじゃないかな。

f:id:cookie-box:20180101155951p:plain:w60

なるほど、そうですね。人間相手でも、後輩に何か学んでもらうときなど、具体的なやり方を教えることも、評価を伝えることもありますね。

f:id:cookie-box:20180101155919p:plain:w60

話を戻そうかな。いま、ありうるプロキシ報酬上での積分をどうしよっかってゆー話をしてたよね。でもさ、そんないかにも膨大そーなプロキシ報酬上で積分なんてしたくない。だから、プロキシ報酬上で積分しない道を探す。

f:id:cookie-box:20180101155951p:plain:w60

プロキシ報酬上で積分しない? いえ、でも、「あるプロキシ報酬  \tilde{w} に基づいた方策で行動する下で、報酬関数  w に基づいて得られる報酬の期待値」をプロキシ報酬上で積分しなくてはという話だったのでは…あれ…「行動する下で」?…プロキシ報酬上での積分を行動系列上の積分にできればよい?…行動系列のパターンも膨大かもしれませんが、プロキシ報酬関数の空間などよりはまだましなはず。そうか、いま一ノ瀬さんが逆強化学習の話に触れなければと言ったのは、「概ねよい行動」から出発する逆強化学習がここで利用できるという意味なのでは?

f:id:cookie-box:20180101155919p:plain:w60

当ったり~♪ まさにここから逆強化学習にしちゃうんだ。でも、あるプロキシ報酬に基づいた方策から行動のお手本データをたくさん取るんじゃなくて、あくまで行動系列の特徴量の期待値に丸めちゃうから、近似解なんだけどねー。それで、逆強化学習(のベイズ的解法)では、いま言ってくれたように、行動系列上で積分するよー。この解法では、プロキシ報酬をどれくらい上手く設計できるかのパラメータ  \beta が、あるプロキシ報酬に基づいた方策から取り出すお手本データの個数に相当するって解釈ができるんだ。プロキシ報酬が上手く設計できるって信じているときほど、プロキシ報酬に基づいた方策からたくさんのお手本を取り出すから、そこから推定される真の報酬関数もプロキシ報酬をかなり再現したものになるってわけだねー。ここまで IRD の定義と解法までみてきたから、次回は、実際に IRD で強化学習タスク(実験的なタスクだけどね)を解いたら従来の解法に比べてどんな風によかったかってゆー検証のセクションをみていこう。

f:id:cookie-box:20180101155951p:plain:w60

おー。

つづく