DDPG或TD3算法训练时总是输出边界值问题记录

最近在使用stable-baselines3框架中的DDPG算法时,发现一个问题:只要算法探索步数达到learning_starts,一开始学习,actor网络很快就会输出动作边界值,然后就保持不变,一直输出同样的边界值。后来换了TD3,发现也会出现这个问题,于是就上网查找解决方案,发现很多人都有这个问题。下面我从自己的经验出发,结合网上其他人的分析,给出造成这个问题可能的原因以及解决方案:

1.如果你的actor网络输出使用tanh函数,那么一个很大的可能性就是预激活变量(输入tanh的)范围太大,进入了tanh的饱和区,会导致梯度消失,而且tanh输出的自然就靠近边界了(自己看下tanh的函数图就明白了)。

ps:首先尝试把激活函数变成Relu,查看是否是由于tanh造成的问题。如果不是,重点检查环境和奖励函数;如果是,参考下面的解决方案。

这种情况下,可能的解决方案有以下几种:

A.减少网络层数,比如把三层全连接改成一层全连接

B.调整隐藏层大小,比如把{256,256}改成{256,128},可以参考:

强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决_丨汀、的博客-CSDN博客_ddpg 输出边界值

C.建议看看网络参数是否有异常,或者太大。如果网络参数太大的话,看看在初始化网络的时候,能不能把初始参数调低一些,或者调一调其它的超参数,例如学习率什么的。 

D.加惩罚项,当预激活的值较大时(达到饱和)给一点惩罚,促进预激活变量活动在非饱和区

E.如果你的任务允许,可以把actor的激活函数换掉,不用tanh 

2. 没有进行归一化操作

解决办法:对网络的输入输出归一化,使得buffer里的{s,a,r,s_}都是同一个数量级的

3.reward设计的不合理,例如惩罚设置的太大,导致中间状态的evaluation普遍较低

解决方法:

A.减小reward的值,例如把reward的绝对值限制在[0,1]

B.增加约束,保证对状态的约束能覆盖所有情况

ps: 关于reward的设置没有任何捷径,基本你要结合自己的实验来设计

4.可能是训练时间还不够,还需要继续训练。因为在空间的上下边界切换的状态,可以猜测agent应该是尽量避免较大的负反馈,还没有开始选择最优。

5.针对stable-baselines3框架,可以通过改变learning_starts的大小,多试几次,说不定就可以解决边界值问题,因为我这样做成功过。至于原因,我觉得是采样过程的随机性,反正有点玄学。learning_starts不用设置太大,让算法快点完成前期采样进入学习,然后验证是否会出现边界值问题。

6.(补充2023.09.10)最近在使用MATD3算法解决多UAV相关任务时,也很不幸的遇到了边界值问题。我的任务采用的状态输入是图像与速度信息的混合状态。对于图像这部分的处理是几层CNN,但是起初我没有加上BN层,算法会出现输出边界值的情况。最后我在CNN的构造中加入了BN层,初步解决了这个问题。

以上是汇总了自己的经验和别人的经验得到的,可以尝试,不保证一定有效,毕竟每个人的实际情况都不同。如果所有方案都试了,还是有这个边界值问题,也可以考虑换其他算法试试,不要在一棵树上吊死,可以参看:如何选择深度强化学习算法?MuZero/SAC/PPO/TD3/DDPG/DQN/等(2021-04) - 知乎

感谢以下文章的帮助:

DDPG算法actor网络的输出值固定在action的边界值这是啥原因,和actor用tanh有关吗? - 知乎

强化学习DDPG算法训练总是选择边界动作是什么原因造成的?-Python-CSDN问答

强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决_丨汀、的博客-CSDN博客_ddpg 输出边界值

强化学习过程中为什么action最后总会收敛到设定的行为空间的边界处? - 知乎

深度强化学习调参技巧:以D3QN、TD3、PPO、SAC算法为例(有空再添加图片) - 知乎

  • 27
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值