ガウス過程による逆強化学習の論文を読む
最大エントロフィの逆強化学習の性能はベイズより優れていることは実装してみて判明したが、下記の論文によるとガウス過程(Gaussian Process)を使った逆強化学習が傑出してよい性能を出している。
この論文の高速道路の実験例をみるとパトカーやパトバイクに近い所は人間がスピード抑制をしている事が観測されている。
左上が人間のスピード抑制データ(濃い色)で、GPIRL(ガウス過程逆強化学習)が殆ど等しいことが示されている。ここでの比較先は
MaxEntIRL(最大エントリフィIRL)
FIRL(Feature Construction IRL)
この手法のプログラムを読むと、ガウス過程の逆強化学習は以下の手順で行っています。
① 局面を表す特徴量を選定します。
②熟練者の操作過程の特徴量を記録します。
⑥の尤度(IRL term)が最大になるまで③から⑥を繰返します。
③特徴量の記録から、ガウスカーネルのパラメータを最大尤度(GP probability) で計算します
このは特徴量の正則化項のパラメータですは乱数を振って上式が最大(最尤度)となる値を採用しています。
④式(3)に従って特徴量と観測された報酬でカーネル過程回帰します
これはカーネルを分散とする対数分布ですが、最後にが追加されています。
⑤擬似報酬の事後分布で真の報酬を逆算します
この事後分布(GP posterior)は尤度分布と事前分布ともガウス分布なので
理論解で計算できます
報酬と特徴量のカーネルを使っています。問題は報酬の算出にこれが未定なのに使っています。よってこの式は仮置きの報酬を使って、SGDの繰返しで精緻化する方針としています。
⑥式(2)のは仮置きの報酬よりBellman方程式を解いてこの式(2)尤度(IRL term)を計算します。
ここで
は熟練者のデータ
は特徴量
はガウス過程
は報酬
はの正則化項
IRL termはBellman方程式の解
GP posterior はガウス分布の事後分布
GP probabilityはガウス過程回帰
⑦仮置きの報酬をSGDで精緻化するため、本論文ではL-BFGSを使ったと記述があります。この微分式については下記のSupprementに詳細に記述され、Python版ではこの通り実装されています。
Nonlinear Inverse Reinforcement Learning with Gaussian Processes
ここで諸値は以下で与えられる
エネルギーベースの逆強化学習
ここで
ここでなのでは
実験課題
黄色の位置から3距離までと赤の位置から2距離の場合に居続けると報酬が加算される(左下の赤い範囲)。コマを上下左右に移動して報酬の多寡で強化学習を行った軌跡をデータとして保存する。
強化学習で学習した軌跡でPythonによるガウス過程を使った逆強化学習の結果が右図。一応左図の真の結果に近く細かい報酬が得られている。