前面讲到如 REINFORCE,Actor-Critic,TRPO,PPO 等算法,它们都是随机性策略梯度算法(Stochastic policy),在广泛的任务上表现良好,因为这类方法鼓励了算法探索,给出的策略是各个动作的概率分布。
实际上策略梯度方法分为两类:一类是随机性策略梯度算法,另一类是确定性策略梯度算法。
确定性策略可能更适合需要精确控制的任务,在这些任务中,任何偏离最佳操作的行为都会对结果产生重大影响(如:下棋)。而随机策略可能更适合涉及不确定性或探索的任务,因为它们允许智能体尝试不同的行动并从其结果中学习。
DQN 挺好的,但是只能离散动作,不能连续动作,关键原因在于
max
?
a
Q
(
S
,
a
)
\max_a Q(S,a)
maxa?Q(S,a),在无限多的动作下不适用。
解决方法:
max
?
a
Q
(
s
,
a
)
=
Q
(
s
,
arg
?
max
?
a
Q
(
s
,
a
)
)
→
Q
(
s
,
μ
θ
(
s
)
)
\max_a Q(s,a) = Q(s,\arg \max_a Q(s,a)) \to Q(s, \mu_{\theta}(s))
amax?Q(s,a)=Q(s,argamax?Q(s,a))→Q(s,μθ?(s))
核心思想:既然在连续的时候从众多
a
a
a 里面选一个使得
Q
Q
Q 最大的
a
a
a 这么难,那我就用一个网络直接近似给出这个
a
a
a,代替这个 max操作,这个网络就叫
μ
θ
\mu_\theta
μθ?
实际上是一种 Actor-Critic 方法
这里策略网络
μ
(
s
;
θ
)
\mu(s;\theta)
μ(s;θ)给出的动作
a
a
a 是确定的,而不是一个分布。