5. 值函数近似——Deep Q-learning

前4篇,我们都是假设动作值函数Q是一张大表,状态-动作对都是一一对应的。这对于现实应用状态动作空间很大的情况来说,计算量就非常的大,甚至根本无法求解这样一张大表。因此,我们引入状态值函数v,由参数$\bf{w}$描述,我们希望,

\[\hat v(s,{\bf{w}}) \approx {v_\pi }(s)\]

深度学习通过向深层神经网络输入足够的数据,通常可以学习比手工构造的特征更好的表示形式,具有强大的泛化拟合能力,有着很好的应用。为了接近现实世界复杂性,强化学习的未来趋势也必须从高维输入中获得环境的有效表示,并概括得到经验。但是当使用类似于深度学习这样的非线性拟合方法,强化学习很不稳定甚至会发散,主要原因有,
1. 深度学习依赖于大量的人工标注好的训练数据,而强化学习必须得从稀疏、噪声和延迟的奖励中学习。而且强化学习的动作和导致的奖励之间可能有数千步长,这和传统监督学习输入和输出直接的关联性区别很大。
2. 大部分的深度学习算法假设数据是独立的,而强化学习的状态是高度相关的序列。
3. 强化学习的数据分布随着算法不断学习可能会改变,这与深度学习假设数据是固定分布也是矛盾的。
 
 
为了引入神经网络来拟合值函数,Deep Mind提出了DQN,有主要两个创新点,

1. 经验回放:为了打破数据相关性,文献[1]提出了Deep Q-leaning。该工作在Q-learning的基础上引入了经验回放机制,Agent将与环境交互得到的每一步经验都存储在一个样本集中。算法内部更新时,从存储的样本池中随机抽取数据,从而消除了观测序列中的相关性,并平滑了数据分布中的变化。具体来说,第一在很多次权重更新中,每一步经验都有可能被用到,这就加大了数据的使用效率;第二,直接从强关联的连续样本中学习是无效的,随机抽取样本打破了相关性,从而降低了更新的偏差;第三,On-policy学习时,当前的参数决定了下一步的训练参数的数据样本。比如当前的最大动作是朝左,那么训练样本大部分就是朝左的样本。这样一来参数可能被卡在一个很差的局部极小值,甚至分散。通过使用经验回放综合许多之前的状态,样本分布被平均化了,克服了数据样本不断变化的问题,平滑了学习和避免参数的振荡或发散。另外,我们都是从样本集中均匀采样,但是由于存储样本缓存是有限的,所以总是用最近的记忆覆盖,所以有一定的局限性,我们在实际中采用更复杂的抽样策略从而更有效的学习。

2. 设置离线和在线两层神经网络:为了进一步消除相关性和提高训练效率,在文献[1]的基础上,文献[2]提出了Deep Q-network。该工作在Deep Q-learning的基础上,创建一个双层神经网络,一个离线的训练网络$Q$的参数$\theta$和一个在线的目标网络$Q'$的参数$\theta^-$。算法每一步更新训练网络$Q$的参数$\theta$,每C步,令$\theta^- = \theta$把训练网络$Q$的参数$\theta$直接赋给目标网络$Q'$的参数$\theta^-$。

 算法流程如下,

 

 

[1] Mnih V , Kavukcuoglu K , Silver D , et al. Playing Atari with Deep Reinforcement Learning[J]. Computer Science, 2013.

[2] Mnih V, Kavukcuoglu K, Silver D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015, 518(7540): 529-533.

posted on 2019-01-17 22:16  yijun0730  阅读(683)  评论(0编辑  收藏  举报

导航