强化学习策略网络复杂度的影响
2010 年 9 月 3 日
强化学习策略网络调参
传统的基于 状态-动作 强化学习方法会遇到 维度诅咒 的问题,为了解决这个问题,基于策略的强化学习方法被提出,比如经典的策略梯度方法,使用神经网络,可以用于表示高纬度的 状态->动作 空间的映射关系。这样可以把维度降低,实现更快的收敛。
为了找到最优解,策略的参数数量必须要足够多,以至于能够合理的表示策略空间。在策略梯度中,策略网络常常用一个 MLP 网络表示策略参数 \(\theta\) 。
那么是否参数越多越好?答案是否定的。
- 参数较少时,收敛速度快,容易找到次优解;
- 参数过多时,收敛速度慢,容易陷入局部最优;
所以需要合理设置策略参数个数,评估网络的复杂度,在强化学习任务中是非常困难的,常常需要大量实验试错调节参数。但是在许多论文中,没有提及这部分工作,只是说道根据 经验值 …相似的超参数还有
- 奖励函数
- 衰减系数
- Exploration Noise
- …
上面这些超参数,调整一个,就需要从头开始训练,过去所有收集到的数据都需要扔掉,这个过程采样效率低,耗时长,如下图所示,使策略收敛,训练一个 Agent 经常需要上百万次的采样,故不能直接在实体机器人上训练策略。
So … 怎么调参?
《Spinning Up》 中提出了一些建议,或许有用
- 从论文中查找细节参数,比如网络的结构、奖励函数和超参数设置等等,但是注意不要陷入到论文中。
- 在简单的强化学习环境中快速试验算法,首先要验证算法的正确性,保证在像 CartPole-v0、InvertedPendulum-v0、 FrozenLake-v0 和 HalfCheetah-v2 简单的环境中,算法可以收敛。这样只需要花几分钟就可以验证想法,而不等好几天!然后再将算法应用到像雅达利游戏和机器人这样复杂的环境中。
- 如果在一个环境中调节超参数,始终达不到满意效果,这可能是一个 Bug,试着在别的强化学习环境中验证;
- 测量尽可能多的结果,比如均值/方差/最小值/最大值,观察 Agent 在环境中的行为,这可能会提供一些思路;