DRL调参笔记

    深度强化学习领域的经典算法有很多,如DQN、DDPG、SAC、PPO等。RL的算法分为两种,一种是value-based方法,难以扩展到连续的动作空间,且其容易带来高偏差(high bias)问题;另一种是policy-based方法,利用蒙特卡罗采样训练策略,训练不稳定策略收敛困难, 且容易带来高方差(high variance)问题。为了解决这些问题,将两种方法进行结合,产生了Actor-Critic架构。

应用DRL算法进行实验,rewards和loss无法收敛,查找了一些资料,进行了大量的试错,将问题分为以下几种:

Q & A

问题结构设计

RL类问题建模通常分为三部分(以model free型为例):

  • state space :在设计状态空间时,避免state固定不动(即状态空间内只有一个状态)
  • action space:动作空间分为离散动作空间和连续动态空间,对于离散动作空间,通常采用DQN、SAC-discrete、PPO;对于连续动作空间,可以采用DDPG、TD3、SAC、PPO。
  • reward:奖励函数的设计至关重要,负责引导智能体朝着优化方向前进,简单的奖励函数设计方法有优化目标取负、优化目标取倒数、加惩罚项等(高级的方法还未研究学习)

实验采取连续动作空间,但action的取值范围不尽相同,在A = [a1, a2, …, a2n]中,A1=[a1, a2, …, an]的取值范围是[200, 400], A2=[an+1, an+2, …, a2n]的取值范围是[0.1, 0.5],对于这种情况,显然要对action进行scaling。
如何scaling?
在environment中进行scaling
如果在算法中进行scaling,容易造成网络训练不稳定,猜想在AC架构中,Critic的输入为state和action,输出为Q值,action的数值范围相差太大,导致Critic的loss巨大。具体见下图,上图为在算法中scaling,下图为在environment中scaling。
在这里插入图片描述
在这里插入图片描述
下图的Critic loss一下子降低了10^2 ~ 10^3的数量级,有助于整体稳定收敛。

算法参数设置

学习率

Actor-Critic架构中,通常Critic的学习率比Actor大一个数量级,如actor_lr 为1e-4,critic_lr为1e-3。可以设置学习率递减(随着训练梯度下降变缓)

神经网络结构

DRL中神经网络的层数不必过多,3-4层即可,隐藏层的维度要根据输入输出维度来设置。实验中输入输出维度为100维,hidden_dim为512比256能更好拟合值函数。

batch size & buffer size

确保buffer中有足够的训练数据,最少是10^5条数据;batch size根据实验结果调整,这里batch size 为64的效果最佳。

梯度截断

为了防止梯度爆炸等问题,要对梯度进行截断。

数据归一化

关于数据是否需要归一化,众说纷纭,若实验效果不太好,可以尝试进行归一化处理,能够在一定程度上提高算法性能。这里注意reward不能归一化,可以scaling以放缩。

————————————————————————————————————————
参考内容:
【1】https://blog.csdn.net/Lyn_S/article/details/113776181
【2】https://zhuanlan.zhihu.com/p/658733397
【3】https://zhuanlan.zhihu.com/p/210761985
【4】https://xylu926.blog.csdn.net/article/details/103850537
【5】https://blog.csdn.net/weixin_42365324/article/details/105727916
【6】https://blog.csdn.net/weixin_44405644/article/details/106223590
【7】https://blog.csdn.net/ytusdc/article/details/107738749
【8】https://zhuanlan.zhihu.com/p/382501240

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值