Deep Q Network(DQN)原理解析

1. 前言

在前面的章节中咱们介绍了时序差分算法(TD)和Q-Learning,当状态和动做空间是离散且维数不高时可以使用Q-Table储存每一个状态动做对的Q值,而当状态和动做空间是高维连续时,使用Q-Table不动做空间和状态太大十分困难。因此论文Human-level control through deep reinforcement learning提出了用Deep Q Network(DQN)来拟合Q-Table,使得Q-Table的更新操做包在一个黑盒里面,使强化学习的过程更加的通用化,自动化。算法

2. DQN的结构

咱们能够把DQN理解为在Q-Learning的总体框架大致不改的状况下,对于\((S,A)->R\)奖励的获取方式的一种改进。缓存

DQN有两个大的创新点:网络

  1. Replay Buffer样本回放缓冲区或者叫作(Experience replay)
  2. Target Network目标网络

2.1 Replay Buffer

使用DQN模型代替Q-Table会遇到两个问题框架

  1. 交互获得的序列存在必定的相关性:交互序列中的状态行动存在着必定的相关性,而对于基于最大似然法的机器学习模型来讲,咱们有一个很重要的假设:训练样本是独立且来自相同分布的,一旦这个假设不成立,模型的效果就会大打折扣。而上面提到的相关性刚好打破了独立同分布的假设,那么学习获得的值函数模型可能存在很大的波动。
  2. 交互数据的使用效率:采用梯度降低法进行模型更新时,模型训练每每须要通过多轮迭代才能收敛,每一次迭代,须要使用必定数量的样本计算梯度,若是每次计算的样本在计算一次梯度后就被丢弃,那么咱们就须要花费更多的时间与环境交互并收集样本。

Replay Buffer结构图:机器学习

image

总的来讲,Replay Buffer含了收集样本和采样样本两个过程。函数

  1. 收集样本:按照时间前后顺序存入结构中,若是Replay Buffer经存满样本,那么新的样本会将时间上最久远的样本覆盖。
  2. 采样样本:若是每次都取最新的样本,那么算法就和在线习相差很少;般来讲,Replay Buffer会从缓存中均匀地随机采样一批样本进行学习。

均匀采样的好处是什么呢?前面提到咱们交互获得的序列在时间维度上存在必定的相关性。咱们但愿学习获得的值函数可以表示在当前状态行动下的长期收益的指望,然而每一次交互获得的序列,只能表明当前状态一行动下的一次采样轨迹,并不能表明全部可能的轨迹。这样估计的结果就和指望的结果存在必定的差距。随着交互时间不断拉长,这个差距的累积会愈来愈大。若是彻底使用序列的估计值进行训练, 某一轮训练时模型会朝着一个序列的估计训练,另外一轮训练又会朝着另外一个序列的估计训练,那么模型很容易产生较大波动采用均匀采样后,每次训练的样本一般来自屡次交互序列,这样单一序列的波动就被减轻不少,训练效果也就稳定了不少。同时,一份样本也能够被屡次训练,提升了样本的利用。学习

2.2 Target Network

模型不稳定的另一个缘由来自算法自己,Q-Learning的计算公式能够看出,算法能够分红以下两个步骤:spa

  1. 计算当前的状态行动下的价值目标值:\(\nabla{q(s,a)}=\gamma(s^{'})+max_{a^{'}}q^{T-1}(s^{'},a^{'})\)
  2. 网络模型的更新:\(q^T(s,a)=q^{T-1}(s,a)+\frac{1}{N}[\nabla{q(s,a)}-q^{T-1}(s,a)]\)

能够看出模型经过当前时刻的回报和下一时刻的价值估计进行更新,这里存在一些隐患,前面提到数据样本差别可能形成必定的波动,因为数据自己存在着不稳定性 每一轮轮迭代均可能产生一些波动,若是按照上面的计算公式,这些波动会马上反映到下一个迭代的计算中,这样咱们就很可贵到一个平稳的模型。为了减轻相关问题带来的影响,咱们要尽量地将两个部分解耦。因此引入了Target Network,而本来的模型被称为Behavior Network。blog

  1. 在训练开始时,两个模型使用彻底相同的参数。
  2. 在训练过程当中, Behavior Network负责与环境交互,获得交互样本。
  3. 在学习过程当中,由Q-Learning获得的目标价值由Target Network算获得;而后用它和Behavior Network的估计值进行比较得出目标值并更新Behavior Network。
  4. 每当训练完成必定轮数的迭代,Behavior Network模型的参数就会同步给Target Network,这样就能够进行下一个阶段的学习了。
  5. 经过使用 Target Network,计算目标价值的模型在一段时间内将被固定,这样模型能够减轻模型的波动性。

2.3 DQN的算法过程

image

(欢迎转载,转载请注明出处。欢迎沟通交流: 339408769@qq.com)get

相关文章
相关标签/搜索