深度强化学习:Deep Q-Learning

在前两篇文章强化学习基础:基本概念和动态规划强化学习基础:蒙特卡罗和时序差分中介绍的强化学习的三种经典方法(动态规划、蒙特卡罗以及时序差分)适用于有限的状态集合$\mathcal{S}$,以时序差分中的Q-Learning算法为例,通常来讲使用n行(n = number of states)和m列(m= number of actions)的矩阵(Q table)来储存action-value function的值,以下图所示:html

对于连续的状态集合$\mathcal{S}$,上述方法就不能适用了,这时能够引入神经网络来估计Q的值,即Deep Q-Learning,以下图所示:算法

接下来介绍Deep Q-Learning中经常使用的几种技巧,用于提高学习效果:网络

  • Stack States:对于连续的状态集合,单个状态不能很好地描述总体的情况。例以下图所示,要判断黑色方块的移动方向,仅凭一副图像是没法判断的,须要连续的多幅图像才能判断出黑色方块在向右移动

  • Experience Replay:以下图所示,防止算法在训练过程当中忘记了以前场景得到的经验,建立一个Replay Buffer,不断回放以前的场景对算法进行训练;另外一方面,相邻的场景之间(例如$[S_{t},A_{t},R_{t+1},S_{t+1}]$与$[S_{t+1},A_{t+1},R_{t+2},S_{t+2}]$)有着必定的相关性,为了防止算法被固定在某些特定的状态空间,从Replay Buffer中随机抽样选取场景进行训练(打乱场景之间的顺序,减小相邻场景的相关性)

  • Fixed Q-targets:针对Deep Q-Learning中计算Q值的神经网络的权重系数的更新,有公式如左图所示,此时将TD target近似为了$q_{\pi}(S,A)$的真值,可是当不断更新权重系数时TD target也是不断变化的,这就会使得在训练过程当中$q_{\pi}(S,A)$的估计值要接近一个不断变化的值,加大了训练难度,减少了训练效率。解决方案如右图所示,使用相对固定的参数来估计TD target

  • Double DQNs:解决TD target对$q_{\pi}(S,A)$的真值可能高估的问题,方案是在计算TD target时使用两个不一样的神经网络,将动做$a$的选择过程与TD target的计算过程进行分割。若是和Fixed Q-targets结合起来,能够直接使用$w$和$w^{-}$这两组参数(以下图所示)

  • Dueling DQN:以下图所示,相对于直接计算action-value function $Q(s,a)$,将$Q(s,a)$分解为state-value function $V(s)$与advantage-value function $A(s,a)$之和,这样作的缘由是多数状态下采起何种行动对$Q(s,a)$的值影响不大,适合直接对状态函数$V(s)$进行估计,再叠加上不一样行动对其的影响。在实际计算中,为了使得从$Q(s,a)$可以惟一肯定$V(s)$与$A(s,a)$,能够令$A(s,a)$的均值(即$\frac{1}{|\mathcal{A}|}\sum_{a^{\prime}} A(s,a^{\prime})$)为0

 

  • Prioritized Experience Replay:以下图所示,对Replay Buffer中的每一个场景加入一个优先级,一个场景的TD error越大,它对应的优先级就越大。其中$e$是一个大于0的常数,防止抽样几率为0;$a$控制按优先级抽样和均匀抽样的比重,$a=1$时彻底按优先级抽样,$a=0$时退化为均匀抽样;另外因为是按照优先级进行抽样,还须要改写神经网络中权重系数的更新规则,针对优先级高的场景减小权重更新的步长,使权重更新的过程与场景出现的真实几率一致(特别是在训练的后期,经过参数$b$控制),避免过拟合高优先级的场景函数

相关文章
相关标签/搜索