The Predictron: End-to-End Learning and Planning

概要

収益(現時点から見て)の1つではなく、多段階の価値予測を出力を行うモデルを作った
価値を別々に出力するだけでなく、内部状態のようなものを逐次で変化させることで、
環境モデルを内部に構築する

既存の価値関数のアーキテクチャ


与えられた状態 ss に対して最終的に状態価値 v(s)v(s) を1つ返す

Predictronのアーキテクチャ


与えられた状態 ss に対して、ネットワークの途中途中で今後遭遇するであろう先の状態らしき何か
即時報酬と価値の推定 (r(ss),v(s))(r(s \to s'), v(s')), (r(ss),v(s)(r(s' \to s''), v(s''))をそれぞれ出力し、それらを合算することで現状態の価値の推定とする
3層ずつを 1 core として、多層に積み重ねる
一応 kk ステップ後の仮想の状態みたいなものを表現していると期待される

あくまで仮想の状態なので、実際の状態空間と対応していなくても動く
(Value Iteration Networkとの違い)

(前提)general value function 一般価値関数

論文中では、報酬や価値はベクトル、割引率は対角行列として考える
一般的な話として進めているだけなので、この論文ではスカラーとして考えて読んでも問題ない

収益 ggkk ステップの再帰的計算 ここで即時報酬 rr と価値 vv はベクトル、割引率 γ\gamma は対角行列
γ\gamma は時刻毎に異なっても良い
論文中ではこの先読み収益のことを preturn と読んでいる (predictron return の略らしいが…)

MRP pp にて、時刻 tt での収益 gt{g_t} とすると、状態 ss の価値は
ベルマン方程式

Predictronの計算

λ\lambda (※ここでは対角行列)を導入することで 前向きTD-(λ\lambda) のように収益を重み付け加算で表現できる
例) λ0=1\lambda^0=1 (単位行列), 以降 00 (零行列)のとき
gλ=0+g1+0+...=g1g^{\lambda}=0 + g^1 + 0 + ...=g^1
λk\lambda^k を core kk の価値出力のゲートとして用いる

gλg^\lambda の再帰的計算
gK,λ=vKg^{K, \lambda}=v^K, gλ=g0,λg^\lambda=g^{0,\lambda} なので、gλg^\lambda はネットワークの各 core の出力を後ろから計算することで得られる

学習

実際の報酬を教師とする学習

kk ステップ predictron の場合
λ\lambda predictron の場合