Loading...
The Predictron: End-to-End Learning and Planning
概要
収益(現時点から見て)の1つではなく、多段階の価値予測を出力を行うモデルを作った
価値を別々に出力するだけでなく、内部状態のようなものを逐次で変化させることで、
環境モデルを内部に構築する
既存の価値関数のアーキテクチャ
与えられた状態
s
s
s
に対して最終的に状態価値
v
(
s
)
v(s)
v
(
s
)
を1つ返す
Predictronのアーキテクチャ
与えられた状態
s
s
s
に対して、ネットワークの途中途中で今後遭遇するであろう先の状態
らしき何か
の
即時報酬と価値の推定
(
r
(
s
→
s
′
)
,
v
(
s
′
)
)
(r(s \to s'), v(s'))
(
r
(
s
→
s
′
)
,
v
(
s
′
)
)
,
(
r
(
s
′
→
s
′
′
)
,
v
(
s
′
′
)
(r(s' \to s''), v(s'')
(
r
(
s
′
→
s
′
′
)
,
v
(
s
′
′
)
)をそれぞれ出力し、それらを合算することで現状態の価値の推定とする
3層ずつを 1 core として、多層に積み重ねる
一応
k
k
k
ステップ後の仮想の状態みたいなものを表現していると期待される
あくまで仮想の状態なので、実際の状態空間と対応していなくても動く
(Value Iteration Networkとの違い)
(前提)general value function 一般価値関数
論文中では、報酬や価値はベクトル、割引率は対角行列として考える
一般的な話として進めているだけなので、この論文ではスカラーとして考えて読んでも問題ない
収益
g
g
g
の
k
k
k
ステップの再帰的計算 ここで即時報酬
r
r
r
と価値
v
v
v
はベクトル、割引率
γ
\gamma
γ
は対角行列
γ
\gamma
γ
は時刻毎に異なっても良い
論文中ではこの先読み収益のことを preturn と読んでいる
(predictron
return の略らしいが…)
MRP
p
p
p
にて、時刻
t
t
t
での収益
g
t
{g_t}
g
t
とすると、状態
s
s
s
の価値は
ベルマン方程式
Predictronの計算
Figure 1: a) k ステップの収益 b) TD-\lambda の \lambda による収益の表現
λ
\lambda
λ
(※ここでは対角行列)を導入することで 前向きTD-(
λ
\lambda
λ
) のように収益を重み付け加算で表現できる
例)
λ
0
=
1
\lambda^0=1
λ
0
=
1
(単位行列), 以降
0
0
0
(零行列)のとき
g
λ
=
0
+
g
1
+
0
+
.
.
.
=
g
1
g^{\lambda}=0 + g^1 + 0 + ...=g^1
g
λ
=
0
+
g
1
+
0
+
.
.
.
=
g
1
各
λ
k
\lambda^k
λ
k
を core
k
k
k
の価値出力のゲートとして用いる
g
λ
g^\lambda
g
λ
の再帰的計算
g
K
,
λ
=
v
K
g^{K, \lambda}=v^K
g
K
,
λ
=
v
K
,
g
λ
=
g
0
,
λ
g^\lambda=g^{0,\lambda}
g
λ
=
g
0
,
λ
なので、
g
λ
g^\lambda
g
λ
はネットワークの各 core の出力を後ろから計算することで得られる
学習
実際の報酬を教師とする学習
k
k
k
ステップ predictron の場合
λ
\lambda
λ
predictron の場合
Please turn on JavaScript to use Paper in all of its awesomeness. ^_^
概要
既存の価値関数のアーキテクチャ
Predictronのアーキテクチャ
(前提)general value function 一般価値関数
Predictronの計算
学習
実際の報酬を教師とする学習