• 问题求助
  • DDPG算法中平均reward震荡不收敛,如何解决?

这种问题,如果环境和超参数没错的话,换个强化算法就行了。
可以用TD3或者SAC.
尤其TD3就是专门用延迟更新动作网络、约束最大Q值、增加更新目标网络的噪声等方法,解决DDPG振荡的,效果拔群。

欢迎使用我最近分享的代码库,有tf1和torch版本的主流offpolicy强化算法,DDPG,SAC,TD3,对每个算法都增加了非常简洁的HER和PER的封装,调用方便~
https://github.com/kaixindelele/DRLib

感觉是超参配置没有配置好的原因,题主可否po一下超参配置?

    6 天 后

    MaximeJia不好意思,我这几天才看到,我把超参数的代码po出来了,方便的话可以加下我微信吗?fyj13037697323


    [未知]超参数调节的时候有没有什么选择啊,我的环境就是按照自己问题的逻辑写的,还有一个问题就是神经网络输出动作值时大部分都是输出边界值


    [未知] 这个我有点不懂

      每隔几步取一个平均值试一试呢

        Eric 我觉得根据那个图震荡的趋势取平均值的话估计也不会是有上升的趋势。


        [未知] 这个超参数的选取有没有标准没

          南瓜饼 一眼看上去,你的memory-capacity就有问题,太小了,一般都是1e6。
          batch-size如果和你的训练次数挂钩(即采集一步,更新一次)的话,那么这个也过大了,一般在256。
          你这个target-update也有问题,也不是默认的,这个代码库是谁的?
          首先不建议非学习的情况下,使用DDPG;
          其次最好用别人成熟的强化算法跑自己的环境,跑收敛后再改参数

            kaixindelele 这个是李宏毅团队编写倒立摆模板,重写的环境。因为查不出来reward 一直震荡不收敛的原因,所以就改了参数试验

            2 个月 后

            南瓜饼 请问楼主解决了吗?我也遇到了相同的问题(1.回合奖励不收敛2.神经网络总是输出边界值)

              6 个月 后
              5 个月 后

              南瓜饼 哎呀,实在不好意思,我最近没怎么登录实验室的网站请问你那个问题解决了吗?

              2 年 后

              南瓜饼

              1.如果是自己的环境,建议检查奖励函数设置

              2.如果是公开gym环境,建议检查buffer、探索因子以及更新步长之类的

              • qqq 回复了此帖
                1 个月 后
                6 天 后

                qqq 一般的建议就是不要有太多的约束或者太多case样例的奖励好像效果还好点

                24 天 后

                请问有解决吗,我的评估函数一直输出同一套动作,神经网络输出总是边界值

                说点什么吧...
                Document