用于求解动作价值函数的Bellman方程可以表示为:
Q
π
(
s
t
,
a
t
)
=
E
r
t
,
s
t
+
1
∼
E
[
r
(
s
t
,
a
t
)
+
γ
E
a
t
+
1
∼
π
[
Q
π
(
s
t
+
1
,
a
t
+
1
)
]
]
Q ^ { \pi } ( s _ { t } , a _ { t } ) = E _ { r _ { t } , s _ { t + 1 } \sim E } [ r ( s _ { t } , a _ { t } ) + \gamma E _ { a _ { t + 1 } \sim \pi } [ Q ^ { \pi } ( s _ { t + 1 } , a _ { t + 1 } ) ] ]
Qπ(st,at)=Ert,st+1∼E[r(st,at)+γEat+1∼π[Qπ(st+1,at+1)]]
If the target policy is deterministic we can describe it as a function
μ
\mu
μ:
S
←
A
S \leftarrow A
S←A and avoid the inner expectation:
Q
μ
(
s
t
,
a
t
)
=
E
r
t
,
s
t
+
1
∼
E
[
r
(
s
t
,
a
t
)
+
γ
Q
μ
(
s
t
+
1
,
μ
(
s
t
+
1
)
)
]
Q ^ { \mu } ( s _ { t } , a _ { t } ) = E _ { r _ { t } , s _ { t + 1 } \sim E } [ r ( s _ { t } , a _ { t } ) + \gamma Q ^ { \mu } ( s _ { t + 1 } , \mu ( s _ { t + 1 } ) ) ]
Qμ(st,at)=Ert,st+1∼E[r(st,at)+γQμ(st+1,μ(st+1))]
实际上,由于需要对
t
+
1
t+1
t+1时刻动作价值函数求期望,这一步操作的不同,带来了off-policy和on-policy的差异。
对于Q-learning而言,它可以通过
s
t
+
1
s_{t+1}
st+1来估一个动作,然后选取动作最大值来消除动作的不确定性,对于DDPG而言,它通过输出确定动作,来消除动作不确定性,这都能保证它们是off-policy,因为只要环境确定了,它们在当前状态中输出的动作就是确定的,它们可以直接用
(
s
t
,
a
t
,
r
t
,
s
t
+
1
)
(s_t,a_t,r_t,s_{t+1})
(st,at,rt,st+1)来训练,而不需要
a
t
+
1
a_{t+1}
at+1。
但AC就不行,因为它输出的是动作分布,只给一个
s
t
+
1
s_{t+1}
st+1是无法确定
a
t
+
1
a_{t+1}
at+1的,进而无法确定
Q
Q
Q值,只有等下一步动作确定后才能来算
Q
Q
Q值,因为它需要依赖自己的真实决策值来对期望进行蒙特卡罗近似,所以它就没法用别人的经验。
为何DDPG是off-policy算法?
最新推荐文章于 2024-05-07 21:52:57 发布