基本概念
强化学习问题的目标是依据策略执行一系列合适的动作以最大化累计回报。强化学习的算法主要分成三类:基于值函数的方法、基于策略的方法和两者结合的方法。也就是说,可以通过逼近值函数再利用 ϵ − g r e e d y \epsilon-greedy ϵ−greedy策略间接的确定策略,也可以建立策略函数,将策略参数化,还可以结合这两类方法既学习值函数,又学习策略。
REINFORCE
REINFORCE是一个基于策略的算法。使用策略梯度法将策略参数化,在策略梯度法中,策略经常用一个带参数集 θ \theta θ的函数表示: π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s),求解更新策略参数集 θ \theta θ的过程也就是策略梯度法的计算过程。策略梯度法的目标就是寻找最优 θ \theta θ,使得目标函数(也称损失函数)能够最大化期望回报值,这里的回报值是从初始状态到终止状态的回报总和。
首先考虑单步马尔可夫决策过程(MDP)的策略梯度。在该问题中,假设状态s服从分布d(s),一个时间步后终止,得到回报r=r(s,a)。则目标函数为:
为了最大化目标函数
J
(
θ
)
J(\theta)
J(θ),采用梯度上升法求解问题:
其中
α
\alpha
α是步长,且策略梯度为:
在多步MDP的策略梯度计算公式中,用Q-值函数
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)替换
r
(
s
,
a
)
r(s,a)
r(s,a),也就是相当于单步MDP的梯度计算公式的推广。因此,参数
θ
\theta
θ的学习公式为:
REINFORCE算法的伪代码如下图所示,其中用回报
v
t
v_t
vt代替Q-值函数
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)。
REINFORCE with Baseline
在多步MDP环境中,每一步的回报会有很高的方差。如果在定义目标函数时在目标函数中减去基准线函数B(s),可以减少方差而不会改变整体的期望值,这样就会使得训练过程更加稳定。此时有:
在这种情况下,参数
θ
\theta
θ的更新方式为: