在强化学习中,如果状态是比较少,可以使用表格的方法类存储所有的转态和动作,每个格子代表一个状态。
但是在类似围棋游戏中,每下一个子就是一种状态,那么这些状态就非常多了,如果在程序中要用一个表格来表示状态与状态对应的值函数的话,那么内存就远远不够用了。
另外,当状态不是离散的时候,就无法用表格来表示了。所以,我们需要另外的方法来表示状态与状态对应的值函数。所以需要机器学习(比如:各种神经网络模型)的放来用近似的预估value函数(或Q函数)。
先给出整体的迭代方式:
![]() |
强化学习value函数的近似 |
1. 先看目标函数
J
(
w
)
J(w)
J(w):
J
(
w
)
=
E
π
[
(
v
π
(
s
)
−
v
^
(
S
,
w
)
)
2
]
J(w)=E_\pi[(v_\pi(s)-\hat{v}(S,w))^2]
J(w)=Eπ[(vπ(s)−v^(S,w))2], 其中
v
π
(
s
)
v_\pi(s)
vπ(s)是真实的值、
v
^
(
S
,
w
)
\hat{v}(S,w)
v^(S,w)是预估的值
2. 计算梯度:
Δ
w
=
−
1
2
∂
J
(
w
)
∂
w
=
E
π
[
(
v
π
(
s
)
−
v
^
(
S
,
w
)
)
]
∂
v
^
(
S
,
w
)
∂
w
\Delta w = -\frac{1}{2}\frac{\partial J(w)}{\partial w} = E_\pi[(v_\pi(s)-\hat{v}(S,w))]\frac{\partial \hat{v}(S,w)}{\partial w}
Δw=−21∂w∂J(w)=Eπ[(vπ(s)−v^(S,w))]∂w∂v^(S,w)
其中
∂
v
^
(
S
,
w
)
∂
w
\frac{\partial \hat{v}(S,w)}{\partial w}
∂w∂v^(S,w)就是神经网络的梯度链式传播;
v
π
(
s
)
v_\pi(s)
vπ(s)有不同的预估方法。
3.
v
π
(
s
)
v_\pi(s)
vπ(s)在不同方法下的表示:
(1). MC方法:
v
π
(
s
)
=
G
t
(
G
t
是
r
e
t
u
r
n
)
\quad v_\pi(s) = G_t \quad(G_t是return)
vπ(s)=Gt(Gt是return)
此时,
Δ
w
=
−
1
2
∂
J
(
w
)
∂
w
=
E
π
[
(
G
t
−
v
^
(
S
t
,
w
)
)
]
∂
v
^
(
S
t
,
w
)
∂
w
\Delta w = -\frac{1}{2}\frac{\partial J(w)}{\partial w} = E_\pi[(G_t-\hat{v}(S_t,w))]\frac{\partial \hat{v}(S_t,w)}{\partial w}
Δw=−21∂w∂J(w)=Eπ[(Gt−v^(St,w))]∂w∂v^(St,w)
![]() |
强化学习value函数的近似 - MC方法 |
(2).TD方法:
v
(
s
t
,
w
)
=
R
t
+
γ
v
^
(
s
t
+
1
,
w
)
(
R
t
是
r
e
w
a
r
d
)
\quad v(s_t,w) = R_t + \gamma \hat v(s_{t+1},w) \quad(R_t是reward)
v(st,w)=Rt+γv^(st+1,w)(Rt是reward)
![]() |
强化学习value函数的近似 - TD方法 |
(3).MC+ Q-function
v
(
s
t
,
a
t
,
w
)
=
G
t
(
G
t
是
r
e
w
a
r
d
)
\quad v(s_t,a_{t},w) = G_t \quad(G_t是reward)
v(st,at,w)=Gt(Gt是reward)
(4).TD+ Q-function + on-policy (SARA方法)
v
(
s
t
,
a
t
,
w
)
=
R
t
+
γ
v
^
(
s
t
+
1
,
a
t
+
1
,
w
)
(
R
t
是
r
e
w
a
r
d
)
\quad v(s_t,a_{t},w) = R_t + \gamma \hat v(s_{t+1},a_{t+1},w) \quad(R_t是reward)
v(st,at,w)=Rt+γv^(st+1,at+1,w)(Rt是reward)
![]() |
强化学习Q函数的近似 - SARA方法 |
(5).TD + Q-function + off-policy(Q-learning方法)
不收敛, 不能用SGD的方法. 下一节专门分析下Deep Q-learning Network (DQN)
参考资料: