强化学习问题设计技巧
1. 状态空间可以是高维,但是动作空间尽量小
原因:强化学习相当于是加强版的搜索算法,需要对动作空间进行探索,高维的动作空间非常稀疏,模型很难学习到有用的东西。更加具体来说,当动作奖励更高的时候,对模型来说才是比较有用的。在高维空间采样,可能采样很久奖励都不会变高。模型陷入局部最优中。
例子:设计围棋问题时,动作空间尽量不要选择224*224,而是2*224。
例子2:高考中你更愿意做选择题还是填空题?
2. 使用多个环境采集数据
原因:使用多个环境采样数据,数据采样效率大大上升,模型更加容易收敛。
3. 如果不知道选什么算法,无脑PPO
原因:比较容易收敛,且对于连续动作,离散动作都能很好支持。
4. 模型参数不要太多
原因:因为是无监督学习,标签并非是一对一的,模型收敛很困难。可以参考GAN之类的,基本参数都比较小,不敢弄得非常大。
5. 奖励和动作尽量采用变化量,而不是本身
原因:假设环境是在纸上画一条线,要和最优解的线重合,那么是擦掉之前画的,重新画容易,还是在原来的基础上修改容易?
是画了以后告诉你偏差多少容易,还是告诉你和之前相比,偏差更大/更小容易?