Press "Enter" to skip to content

强化学习策略网络复杂度的影响

强化学习策略网络调参

 

传统的基于 状态-动作 强化学习方法会遇到 维度诅咒 的问题,为了解决这个问题,基于策略的强化学习方法被提出,比如经典的策略梯度方法,使用神经网络,可以用于表示高纬度的 状态->动作 空间的映射关系。这样可以把维度降低,实现更快的收敛。

 

为了找到最优解,策略的参数数量必须要足够多,以至于能够合理的表示策略空间。在策略梯度中,策略网络常常用一个 MLP 网络表示策略参数 \(\theta\) 。

 

那幺是否参数越多越好?答案是否定的。

参数较少时,收敛速度快,容易找到次优解;
参数过多时,收敛速度慢,容易陷入局部最优;

所以需要合理设置策略参数个数,评估网络的复杂度,在强化学习任务中是非常困难的,常常需要大量实验试错调节参数。但是在许多论文中,没有提及这部分工作,只是说道根据 经验值 …相似的超参数还有

奖励函数
衰减系数
Exploration Noise

上面这些超参数,调整一个,就需要从头开始训练,过去所有收集到的数据都需要扔掉,这个过程采样效率低,耗时长,如下图所示,使策略收敛,训练一个 Agent 经常需要上百万次的采样,故不能直接在实体机器人上训练策略。

 

 

So … 怎幺调参?

 

《Spinning Up》 中提出了一些建议,或许有用

从论文中查找细节参数,比如网络的结构、奖励函数和超参数设置等等,但是注意不要陷入到论文中。
在简单的强化学习环境中快速试验算法,首先要验证算法的正确性,保证在像 CartPole-v0、InvertedPendulum-v0、 FrozenLake-v0 和 HalfCheetah-v2 简单的环境中,算法可以收敛。这样只需要花几分钟就可以验证想法,而不等好几天!然后再将算法应用到像雅达利游戏和机器人这样复杂的环境中。
如果在一个环境中调节超参数,始终达不到满意效果,这可能是一个 Bug,试着在别的强化学习环境中验证;
测量尽可能多的结果,比如均值/方差/最小值/最大值,观察 Agent 在环境中的行为,这可能会提供一些思路;

参考

Spinning Up as a Deep RL Researcher
Policy Gradient Algorithms
Deep Reinforcement Learning: Pong from Pixels

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注