接上篇
(Deep Reinforcement Learning with Double Q-learning, H. van Hasselt et al., arXiv, 2015)练习
DQN有很多超参数,主要有:经验回放集合尺寸,神经网络结构,GAMMA值,学习率,e_greedy值和正负回报值。如此多的超参数,很难调好,必须认真体会总结。
=======================经验回放大小=====================
首先是经验回放集合尺寸。agent把对环境的感知,放入经验回放中,作为神经网络的样本集合。我的体会是,如果经验回放集合尺寸太小了,必然要选择丢弃部分经验,如果选择丢弃的经验是很重要的,就会给训练带来不稳定。因此,经验回放集合越大越好,如果不确定什么样的经验是可以丢弃的,就不要丢弃。但这并不是说找一大片内存作经验回放就万事大吉了,选择什么经验存储,选择什么经验回放是很重要的问题,但这里不能详细论述。
可以看到,在我的代码中,一旦经验回放满了,就会用最新的经验覆盖最旧的经验(这不是好的做法)。如果经验回放集合尺寸小了,agent就是失去在出生点附近失败的经验,结果就是在经验回放满了之后不久,agent在出生点附近失败的机会陡增,造成训练的不稳定。
如下图,输出的Q值在经验回放满之后达到最大值,之后随着经验的丢弃,Q值震荡,最后收敛到一个不好的值附近。
====================神经网络结构==============================
我并没有尝试各种结构的神经网络。根据经验风险最小化的知识,神经网络的复杂度跟样本数量相关。因此,我想我们构造神经网络,要从任务的难度,经验回放的尺寸和e_greedy来考虑。主注意的是,如果我们按照非常注重探索的想法来设置e_greedy,那么经验回放中的经验会更加丰富,因此需要一个更加复杂的神经网络结构。
=====================GAMMA值=================================
在其他超参数都相同的条件下,分别测试了GAMMA值 = 0.9,0.95,0.99。
他们都能够收敛到同样好,但是值为0.9时,约1500次episodes就收敛了,值为0.95时,约2500次episodes收敛,而值为0.99是,6500次episodes收敛,并且过程不那么稳定。
我猜,GAMMA值越高,表示我们希望agent更加关注未来,这比更加关注眼前更难,因此训练更加缓慢和