- 王树森老师《深度强化学习基础》学习笔记
三、策略学习(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π(st) 是
Q
π
Q_{\pi}
Qπ 的期望, 把动作
A
A
A 作为随机变量. 关于
A
A
A 求期望把
A
A
A 消掉. 所以
V
π
V_{\pi}
Vπ 只与
π
{\pi}
π 和
s
s
s 有关, 给定状态S,由
V
π
(
s
t
)
V_{\pi}(s_t)
Vπ(st) 的大小可以判断policy
π
\pi
π 的好坏.
-
V
π
(
s
t
)
V_{\pi}(s_t)
Vπ(st) 是
Q
π
Q_{\pi}
Qπ 的期望, 把动作
A
A
A 作为随机变量. 关于
A
A
A 求期望把
A
A
A 消掉. 所以
V
π
V_{\pi}
Vπ 只与
π
{\pi}
π 和
s
s
s 有关, 给定状态S,由
V
π
(
s
t
)
V_{\pi}(s_t)
Vπ(st) 的大小可以判断policy
π
\pi
π 的好坏.
-
策略学习
-
状态价值函数近似(Approximate state-value function):
-
策略学习,给定状态S, π \pi π的策略越好, V V 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:
需要整个过程结束,记录所有的奖励 r r r。
-
用一个神经网络来做近似 Q π Q_{\pi} Qπ ,即常用的 actor-critic 方法。见下节内容。
-