Addressing Function Approximation Error in Actor-Critic Methods

TD3算法,这个论文的名字一眼就看出,这个的目的是为了解决函数模拟的误差。

按照spinningup的说法,这个算法是基于DDPG的,做了三个方面的改进:

第一点:Clipped Double Q-learning  第二点:Delayed policy update  第三点:Traget policy smoothing

注意:1:TD3是一个off policy的算法   2:TD3只能用于连续动作空间

Double DQN在2016年被提出,为什么不用这个直接替代呢?

后来发现AC框架下,policy改变的非常缓慢,也就意味着current net和target net估计出来的结果非常非常接近,所以起不了作用。

于是提出了一个double q learning的变体,但是偏差很小 ,或者无偏高方差在将来都会导致过估计。

于是我们提出了一个clipped double q variant

考虑到noise与过估计偏差的联系,文章提出了几个方法用于减小方差:

1:target NN  2 :为了解决policy和value的耦合问题,提出了delaying policy update 知道value估计收敛 3:一种新的正则化策略(SARSA style update bootstraps similar action estimates)

在之前的工作就已经对估计偏差进行了研究,我们主要是对着一项研究的两项进行阐述:高估偏差 和  高方差

先说一下整体的结构:

两个 Q 函数,一个策略

同时有两个Q函数对应的target net,一个策略对应的target policy

每次筛选出【o1,a,o2,r,d】后,

先将o1和a,d传入两个Q函数,和策略,得到两个Q值,q1,q2,和策略得出的选择的动作 a1,以及获得其中一个网络Q1的采用筛选出来动作a1后得到的 q1_a1 值(也是Q值)

policy的loss就是直接min  -q1_a1

再将o2传入target policy网络中,得到target网络筛选出来的动作 target_a
然后对target_a添加噪音,得到新的target_a。

将target_a ,o2,d传入target Q网络中,得到target_q1,target_q2

然后再算bellman backup  :  r+min(target_q1,target_q2)

于是两个Q网络的loss 就变成了  backup - qi

至于更新,平时只train Q网络,每个一定的步数去train pi网络,同时update target params

以上就是完整的结构。

再根据论文说一下三个创新点的原因:

Clipped Double Q-learning:为了降低过估计。

delayed policy update:文章证明了target Net具有更加稳定,且减少了error在多步的状态中。

Addressing Function Approximation Error in Actor-Critic Methods_第1张图片

target policy smoothing Regularization:原文解释:其实就是为了解决DDPG会因为小的value 估计导致大的动作误差,所以认为相似的动作具有相似的value

Addressing Function Approximation Error in Actor-Critic Methods_第2张图片

以上,证明需要看具体论文(证明了收敛性,过估计,实现细节等)

 

你可能感兴趣的:(RL)