- 王树森老师《深度强化学习基础》学习笔记
三、策略学习(Policy-Based Reinforcement Learning)
-
用一个
神经网络(policy network,策略网络)近似策略函数
,用于控制Agent运动。
策略函数近似(Policy Function Approximation)
-
Policy Function
π(
a
∣
s
)
\pi(a|s)
π
(
a
∣
s
)
是一个 概率密度函数(PDF) -
Policy Network:用一个神经网络
π(
a
∣
s
;
θ
)
\pi(a|s; \theta)
π
(
a
∣
s
;
θ
)
近似
π(
a
∣
s
)
\pi(a|s)
π
(
a
∣
s
)
,
θ\theta
θ
是这个神经网络要训练的参数。 -
性质:
∑a
∈
A
π
(
a
∣
s
;
θ
)
=
1
\sum{_{a{\in}A} \pi(a|s; \theta)}=1
∑
a
∈
A
π
(
a
∣
s
;
θ
)
=
1
(PDF的性质),其中A是所有可能的动作。
状态价值函数近似(State-Value Function Approximation)
-
动作价值函数(Action-Value Function) 回顾(见第一章)。
-
状态价值函数
-
Vπ
(
s
t
)
V_{\pi}(s_t)
V
π
(
s
t
)
是
Qπ
Q_{\pi}
Q
π
的期望, 把动作
AA
A
作为随机变量. 关于
AA
A
求期望把
AA
A
消掉. 所以
Vπ
V_{\pi}
V
π
只与
π{\pi}
π
和
ss
s
有关
, 给定状态S,由
Vπ
(
s
t
)
V_{\pi}(s_t)
V
π
(
s
t
)
的大小可以判断policy
π\pi
π
的好坏.
-
-
策略学习
-
状态价值函数近似(Approximate state-value function):
-
策略学习,给定状态S,
π\pi
π
的策略越好,
VV
V
的值越大。为了让
π\pi
π
的策略好,就要改进参数
θ\theta
θ
。 -
对状态S求期望以使 只与参数
θ\theta
θ
有关。
-
策略梯度(Policy Gradient)
-
策略梯度的计算:
其中红色部分推导由求导的链式法则反推而出:
-
整体推导并不严谨,只是为了帮助理解。这里忽略了
Qπ
(
s
,
a
)
Q_{\pi}(s,a)
Q
π
(
s
,
a
)
也要关于
θ\theta
θ
求导(结果相同)。 -
策略梯度的两种等价形式:Form 1用于离散动作,Form 2用于连续动作(也适用于离散动作)。
-
Eg:
-
离散动作:
-
连续动作:
因为
π\pi
π
函数是个非常复杂的神经网络所以无法做出定积分求出期望,所以只能用蒙特卡洛近似期望。
蒙特卡洛:抽一个或多个样本,用样本来近似期望。
-
使用策略梯度更新策略网络(Update policy network using policy gradient)
-
算法:
-
其中有个问题是 无法计算
Qπ
Q_{\pi}
Q
π
,两种方法:-
REINFORCE:
需要整个过程结束,记录所有的奖励
rr
r
。
-
用一个神经网络来做近似
Qπ
Q_{\pi}
Q
π
,即常用的 actor-critic 方法。见下节内容。
-
参考与感谢: