之前介绍的 DQN 算法属于基于价值(value-based)的算法,基于策略梯度的算法直接对策略本身进行优化。
将策略描述成一个带有参数
θ
\theta
θ 的连续函数,该函数将某个状态作为输入,输出的不再是某个确定性(deterministic)的离散动作,而是对应的动作概率分布,通常用
π
(
a
∣
s
)
\pi(a|s)
π(a∣s) 表示,称作随机性(stochastic)策略。对比之前的动作价值函数
Q
(
s
,
a
)
Q(s,a)
Q(s,a).
策略梯度算法是一类直接对策略进行优化的算法,但它的优化目标与基于价值的算法是一样的,都是累积的价值期望
V
?
(
s
)
V^{\star}(s)
V?(s)。我们通常用
π
θ
(
a
∣
s
)
\pi_{\theta}(a|s)
πθ?(a∣s) 来表示策略,即在状态 s 下采取动作 a
的概率分布
p
(
a
∣
s
)
p(a|s)
p(a∣s),其中
θ
\theta
θ 是我们要去求出来的模型参数。
目标就是最大化策略的价值期望 KaTeX parse error: Undefined control sequence: \J at position 1: \?J?(\pi_{\theta}).
基于价值的算法是通过学习价值函数来指导策略的,而基于策略的算法则是对策略进行优化,并且通过计算轨迹的价值期望来指导策略的更新。
轨迹是由状态和动作组合而成的序列,实际上一方面环境的初始状态是随机的,另一方面智能体每次采取的动作是随机的,从而导致每条轨迹的长度都可能不一样,这样组合起来的轨迹几乎是无限多条的,这样一来求解目标函数的梯度就变得非常困难了。那么这个时候我们就需要利用蒙特卡洛的方法来近似求解了,即我们可以不必采样所有的轨迹,而是采样一部分且数量足够多的轨迹,然后利用这些轨迹的平均值来近似求解目标函数的梯度。这种方法就是蒙特卡洛策略梯度算法,也称作 REINFORCE 算法。
平稳分布,顾名思义就是指在无外界干扰的情况下,系统长期运行之后其状态分布会趋于一个固定的分布,不再随时间变化。
平稳分布的性质
策略函数输出的是各个动作的概率分布,输入层和 DQN中的近似Q函数一样,一般是维度等于状态数的线性层。但原来 Q 网络模型输出的值有正有负,一般用 softmax 转换成概率分布。