强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决

Posted 汀、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决相关的知识,希望对你有一定的参考价值。

1.原因:

选择动作值只在-1 1之间取值

actor网络输出用tanh,将动作规范在[-1,1],然后线性变换到具体的动作范围。其次,tanh激活区是有范围的,你的预激活变量(输入tanh的)范围太大,进入了tanh的饱和区,会导致梯度消失,而且tanh输出的自然就靠近边界了

2.解决方案:

1、网络的输入输出都是归一化之后的,buffer里的{s,a,r,s_}都是同一个数量级的,

2、修改reward能指导网络正确选择动作进行输出

3.输入的数据要标准化或者归一化,然后学习率调小一点。

建议换算法,DDPG改成TD3改动很小,SAC对超参数没这么敏感,不要死磕DDPG,可以参考曾伊言:如何选择深度强化学习算法?MuZero/SAC/PPO/TD3/DDPG/DQN/等(已完成)

3.个人最终解决方案:

之前设置隐藏层大小都是一致的,现在把神经元个数增加,然后输入大于输出就好了!

输入256 输出128

以上是关于强化学习调参技巧一: DDPG算法训练动作选择边界值_分析解决的主要内容,如果未能解决你的问题,请参考以下文章

强化学习调参技巧二:DDPGTD3SAC算法为例:

深度强化学习-DDPG算法原理与代码

深度强化学习的实操 动作空间状态空间回报函数的设计以及算法选择训练调试和性能冲刺

深度强化学习的实操 动作空间状态空间回报函数的设计以及算法选择训练调试和性能冲刺

深度强化学习 DDPG 模型解析,附Pytorch完整代码

深度学习训练时的调参技巧