本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 。
文章目录
双延迟深度确定性策略梯度,也就是说TD3是DDPG的一个优化版本。
T D 3 \color{red}TD3 TD3 :[ paper:Addressing Function Approximation Error in Actor-Critic Methods | code ]
原理解析
TD3是DDPG的一个优化版本。主要解决两个问题,一个是overestimation bias,另一个是high variance。主要优化之处在于三点:
背景介绍
什么是overestimation?
有离散动作空间的强化学习中,典型的算法如DQN,值函数往往会被过高估计。这是因为,我们对于Q函数的估计会有误差,在取最大化Q值的时候,会高于真实的最大Q值。由于过高的估计偏差,这种累积的错误会导致任意的坏状态被估计为高值,从而导致次优的策略更新和发散的行为。
算法介绍
1. overestimation in actor-critic
double network
DDPG起源于DQN,是DQN解决连续控制问题的一个解决方法。而DQN有一个众所周知的问题,就是Q值会被高估。这是因为我们用argmaxQ(s’)去代替V(s’),去评估Q(s)。当我们每一步都这样做的时候,很容易就会出现高估Q值的情况。
而这个问题也会出现在DDPG中。而要解决这个问题的思路,也在DQN的优化版本中。相信大家很快就明白,就是double DQN。
在TD3中,我们可以用了两套网络估算Q值,相对较小的那个作为我们更新的目标。这就是TD3的基本思路。
但要注意,DDPG算法涉及了4个网络,所以TD3需要用到6个网络。所以在实做得时候是比较容易出错的。所以我们有必要理清楚之间的关系。
我们先看看DDPG中的网络架构:

关注上图中,我们通过Critic网络估算动作的A值。一个Critic的评估可能会较高。所以我们加一个。

这就相当于我们把途中的Critic的框框,一个变为两个。
-
在目标网络中,我们估算出来的Q值会用min()函数求出较少值。以这个值作为更新的目标。

(因为更新较慢,这两个网络可能比较相近难以做出独立判断,所以采用两个网络中较小的去更新避免过估计。) -
这个目标会更新两个网络 Critic网络_1 和 Critic网络_2。
-
你可以理解为这两个网络是完全独立,他们只是都用同一个目标进行更新。
-
剩余的就和DDPG一样了。过一段时间,把学习好的网络赋值给目标网络。
我们再仔细分别看Critic部分和Actor部分的学习。
Critic部分的学习
只有我们在计算Critic的更新目标时,我们才用target network。其中就包括了一个Policy network,用于计算 A ′ A' A′;两个Q network ,用于计算两个Q值: Q 1 ( A ′ ) Q_1(A') Q

TD3算法是DDPG的优化版本,主要针对overestimation bias和high variance问题。通过使用双Q网络取最小值来估计Q值,延迟更新策略网络,以及目标策略平滑正则化来降低误差。延迟更新避免了策略和价值函数互相影响,目标策略平滑则通过添加噪声来平滑值函数,减少误差。这些技术共同提升了算法的稳定性和性能。

2万+

被折叠的 条评论
为什么被折叠?



