最近做图像算法做得胃疼,就打算找点强化学习的东西来看。之前看openAI做的dota2机器人感觉很牛掰,很感兴趣是怎么做的,所以从spinningUp开始看,感觉深度强化学习只是用了一下深度学习开发出来的工具,具体地说就是梯度计算,其他的东西都是自己的一套理论,深度学习里面各种亮瞎眼的网络结构设计,训练方法等等基本跟这边没什么关系。
最开始用CartPole和Pendulum这种简单的任务跑PPO,TD3,SAC这种高级一点的东西,都特别简单,但是如果是难一点的任务,比如BipedalWalker就不能随便跑了,尤其是对参数特别敏感。
SpinningUp原版PPO
如果直接用SpinningUp在Git上的PPO代码跑BipedalWalker,里面hyperparameter的设定会发现基本跑不出来,跑10次只有1-2次可以顺利训练出来,特别容易陷入local optima,我跑的情况就是经常人仰马翻,或者双腿劈叉趴在地上不动了。比如这样(大概50个epoch的时候):
因为On-Policy算法本身的特点,算法陷入局部极值点后是出不来的,所以需要增加exploration的手段,比如像SAC那样加入熵。但是这里我希望能够用原始的PPO算法调一个模型出来,仅仅调一些参数,看可不可行。
后来看到这个链接:
On-Policy算法调参指南