发表时间:2019
文章要点:文章分析了Dyna这种model based方法,用model去生成one-step的transition和n-step的transition的区别,得出的主要结论是one-step的transition基本上没有任何帮助,还不如直接用现有的buffer多更新几次网络(similar sample efficiency gains could be obtained simply by performing more model-free updates on the data the agent had already gathered)。要想有用,就要用model去生成unfamiliar的样本。然后作者就通过model planning生成更长的轨迹,而不是只生成一步的方式来说明这个方式是有效的(planning with longer rollouts yields dramatic improvement when using a perfect model.)。不过另一方面,作者也说了,用Dyna的模式一边学model,一边学value,效果很差,基本没有提升(With a learned model, performance will likely be worse due to model errors,)。从下面的图里也能看出来,不管是预训练学一个model,还是一边做RL一边学model,效果都不行
实验具体设计就是对rollout长度做对比,作者做的实验就是控制总的planning的step数量,然后改变轨迹长度,比如100x1表示100条长度为1的rollouts, 10x10表示10条长度为10的rollouts。然后model要么直接提供perfect model,要么用数据集先学一个fixed model,再或者就online去学model。
总结:一个可以想象到的结论,不过也给我们启示,要想效果好,就需要能探索并且得到多样化的样本。这其实也给我们指了一条路,就是去model里面做更多的探索,这也可以保证RL更safe。另外,因为model error会使得效果更差,所以planning的时候需要判断模型准不准,然后确定planning长度。
另外,planning 100的长度对于一个随便就上千步一局的游戏来说也并不长其实,而且和环境多交互几次也能得到多样性的样本,这就解释了为啥直接在环境里执行交互次数+planning次数那么多的step,其实得到的样本多样性并不比planning得到的差。
疑问:既然rollout长才有用,但是如果model是学的,那长的rollout误差也会更大,所以这个不准确的model也不会带来好处了。这么看的话,planning很鸡肋啊?
另外,即使是在perfect model上做很长的planning,效果还是比不过直接在环境里学交互次数+planning次数那么多的step,那既然这样,如果不考虑和环境交互次数的限制的话,model和planning简直一无是处啊。。。
关于对比DQN Extra Updates,Rollout-Dyna-DQN比DQN Extra Updates效果好,作者解释是Rollout-Dyna-DQN的样本更加多样化,所以更好。我感觉是因为作者总共就只和环境交互了100K step的原因吧,如果大家都和环境交互个1e6,2e6,这个多样性的差距应该就被抹平了吧?