深度强化学习

深度学习模型的简单(实际上带来了更多的不可控制的难度)刚刚好是降低了一些使用的难度,短短数十行代码,便能够解决之前需要花费大量精力才可以设计出来的系统。所以,各个应用领域(语音、图像、视觉、自然语言理解等)现在都把资源往深度学习上倾斜,在这里我们不去评判这会造成的未发生的不良后果,从乐观的角度来看,深度学习确实让人工智能领域重新焕发活力。当然如何去疏导人们的激情是相当重要的事情,我相信过上一段时间后,大家都会找到合适的路径发展下去的。

一蹴而就的成功在科学领域往往是非常难以实现的。存在的若干重要的数论、图论问题,也都是经过一代代科学家继往开来、在前人工作上不断推进的。说完了历史,现在来看看最为激动人心的进展。我们介绍深度强化学习的范式和相关算法。看看究竟什么才是最为关键的因素。 实际上关键在于我们如何去应用这些技术解决问题——适合的问题建模,解决手段的提升。

强化学习之前并不能实用的原因在于面对过大的状态或者行动空间,很难有效地处理这些情形,往往看到的例子都是相对简化的场景。深度学习的出现让人们能够去处理真正的问题,比如说视觉识别准确率的大幅提高至 ImageNet 数据急的 top-5 错误率下降到了 4% 以内,现在语音识别已经真正变得比较成熟,并且被广泛商用,且目前所有的商用语音识别算法没有一个不是基于深度学习的。这些都是说明深度学习能成为一些实际应用的基础。而现在深度强化学习的研究和应用也基本上针对上面的问题展开。

根据 Berkeley 的深度强化学习课程我们可以其分成近似动态规划方法(Approximate Dynamic Programming Methods)策略梯度方法(Policy Gradient Methods)和 搜索+监督学习(Search + Supervised Learning)三类。我们这里挑几个代表性的方法简要介绍一下,如 Deep Q- Network、Double Q-Network 和 DDPG 等方法及现在的一些应用,如机器人手臂控制、对话生成和游戏控制等等。这些研究也不是突然一下子就出现的,他们的产生可以说伴随着强化学习的发展而恰好到深度学习的出现又产生了巨大的能量。先看看近似动态规划方法,Deep Q-Network。

Deep Q-Network

DQN 实际上在 2013 年就已经发表,后经 DeepMind 众人改进成发表在 Nature 上的经典文章,由于现在已经有大量的文章介绍过,我们这里略过。DQN 是一种基于 Q-学习的神经网络版本。通过神经网络来近似 Q 函数,但是并不是简单地替换,否则在 2006 年应该就能够产生一定的影响了。DQN 解决了三个困难,DQN 为深度基于值的强化学习问题提供了一种稳定解决方案:

  1. 使用经验回放将数据之间的关联打破,重回独立同分布的设定下,从过去的策略中学习,使用 免策略 Q-学习
  2. 目标 Q-网络避免振荡,将 Q-网络和目标网络之间的关联打破
  3. 截断奖励或者正规化网络,适应到合适的范围内可以得到健壮的梯度

Double Q-Network

http://arxiv.org/pdf/1509.06461v3.pdf

在某些随机环境中,Q-学习表现很糟糕。罪魁祸首是很大的行动值的过估计(overestimations)。这些过估计是由于 Q学习使用最大的行动值作为最大期望行动值的估计产生了正的偏差。这里有另外一种方式来近似对于任意随机变量集的最大期望行动值。所谓的双估计方法某些事件会欠估计而不是过估计。将这种思想应用在 Q-学习上可以得到双 Q-学习方法,一种免策略强化学习方法。这个算法可以收敛到最优策略上,并在某些设置下表现得要超过 Q-学习算法。

Double Q-Network 则是融合 Q-学习和深度学习的结果,在某些 Atari 游戏中 DQN 本身其实也会受到过估计的影响,通过双 Q-学习的引入,就能够处理大规模的函数近似问题。最终的算法不仅仅降低了观察值过估计,而且在某些游戏中有着相当好的表现。

策略梯度方法

尽管现存若干本强化学习相关的书籍,但是对于策略梯度部分的介绍确实不够的。已有的强化学习(RL)课本没有给出足够的关于如何使用函数近似的指导;基本上都是聚焦在离散状态空间的领域。而且,现有 RL 课本并没有对无导数优化和策略梯度方法给出充分讲述,而这些技术在很多的任务上都是相当重要的.

策略梯度算法通过梯度下降进行优化。就是说,通过重复计算策略的期望回报梯度的噪声估计,然后按照梯度方向来更新策略。该方法比其他 RL 方法(如 Q-学习)更有利,原因是我们可以直接优化感兴趣的量——策略的期望总收益。该类方法由于梯度估计的高方差长期被认为不太实用,直到最近,Schulman 等人和 Mnih 等人的工作展示了神经网络策略在困难的控制问题上的采用策略梯度方法的成功应用。

你可能比较熟悉概率模型的监督学习,其中目标是最大化给定输入 时的输出 的对数概率:

策略梯度方法通常需要假设一个随机策略,该策略给出了对每个状态 的行动 上的概率分布;我们将此分布写作

如果我们知道对每个状态正确的行动 ,我们可以简单地最大化监督学习的目标函数:

然而,我们并不知道正确的行动。相反,我们会尝试对行动好坏进行粗略的猜测,试着去增加好的行动的概率。更加具体地讲,假设我们刚收集完 agent 和环境一个 agent 和环境回合的交互,所以我们有了一个状态、行动和收益的序列:

表示收益的和:

最简单的策略梯度公式就是:

使用这个梯度的估计,我们可以用一个梯度上升的步骤, 进行策略的更新,其中 为学习率,我们会收集所有的回合,对那个回合中所有的行动的对数概率按照回合的总收益 为比例进行增加。换言之,如果我们收集了大量的回合数据,其中一些是好的(凭借运气),另外一些是差的。我们本质上是在进行监督学习——最大化好的回合的概率。

尽管我们现在还没有给出对上述策略梯度公式的数学上的验证,但实际上已经给出了一个对策略梯度的无偏估计.

策略梯度定义为右式的策略期望总收益的梯度.

如果我们用充足的样本(充足的回合),那么就可以任意精度计算出策略梯度。然而,估计量通常噪声很大,即有很高的方差。你可以想象,这里存在很大的提升空间。与其提高好的轨迹(trajectory)的概率,我们应该提高好的行动的概率,也就是说,我们应试着去推断哪些行动影响轨迹的好坏.

有一系列形如下式的策略梯度估计量:


其中是行动的有利度 (advantage)的估计——比平均值好还是坏的程度.

下面的有利度估计量更有效率,也更常见:

其中 是折扣因子,是状态-值函数的近似. 用来定义一个有效时间区域,其中你忽略所有可能的超过未来的时间步的影响。

我们的策略其实是 ,那么我们如何使用一个神经网络进行表示?实际上,我们仅仅需要将 映射到某个向量 上,向量描述了行动 上的分布。例如,如果 来自一个离散的集合,那么我们设计一个神经网络将 到一个概率向量上。(我们一般在神经网络的最后层使用一个 softmax 函数)这完全就是我们用来进行分类器学习的形式.如果 是连续的,那么我们可以将 映射到一个高斯分布的均值和方差上。一般情况我们使用一个不依赖于 的对角协方差.如果 是二值的,那么我们可以使用一个单个输出的网络,表示输出 的概率.

DDPG 深度确定型策略梯度方法

http://www0.cs.ucl.ac.uk/staff/d.silver/web/Publications_files/ddpg.pdf

这是 DPG 确定型策略梯度方法的深度学习化,利用 DQN 的思想将 DPG 进行改造。DDPG 可以解决连续行动空间上的强化学习问题。在实验中,DDPG 给出了稳定的表现,并且在不同环境上都不需要做出改动。另外,DDPG 在所有实验中都是以比 DQN 学习使用更少时间步的经验发现 Atari 游戏的解的,大概是性能 20 倍的差距。给定更多模拟时间,DDPG 可能解决比现在 Atari 游戏更加困难的问题。DDPG 的未来方向应该是利用基于模型的方法来减少训练的回合次数,因为模型无关的强化学习方法通常需要大量的训练才能找到合理的解。

DDPG 实际上是 Actor-Critic 结构,融合了策略和值函数两者信息进行学习。对 Actor 和 Critic 均使用深度神经网络进行近似。

使用一个权重为 的深度神经网络 来表示策略,定义目标函数为总折扣奖励:

然后使用 SGD 来端对端优化目标函数,也即是说调整策略参数 来达到更大的奖励.

确定型策略梯度是 David Silver 在 2014 年的工作,刚好为此铺垫,他们证明了确定型策略梯度算法给出的期望恰好就是策略梯度(这里可以参考 DPG 论文中的证明),策略的梯度由下式给出

策略梯度是最大化提升 的方向,确定型 Actor-Critic,使用两个网络,Actor 是参数为 的策略

Critic 是参数为 的值函数

Critic 为 Actor 提供损失函数,

梯度从 Critic 到 Actor 反向传播,

Critic 通过 Q-学习估计当前策略的值

而 Actor 按照提升 Q 的方向更新策略

确定型深度策略梯度(DDPG)由于基本的 actor-critic 使用神经网络会振荡或者发散,DDPG 给出了稳定解,采取了 DQN 中的技巧对 actor 和 critic 均使用经验回放并冻结目标网络来避免振荡

基于记忆的 DRL 架构

http://arxiv.org/abs/1605.09128

近期 Michigan 大学的研究组一篇论文提出了一种基于记忆的深度强化学习架构,专门设计了可控制的机制来处理第一人称视角的场景、延迟奖励及高维视觉信息,并引入主动感知能力,从而能够较好地完成既定任务。上面提到的问题或者要求同时具备是现有的深度强化学习架构并不能完全应付。这个新框架在实验中相比其他的深度强化学习模型表现出了较好的泛化能力。

其结构示例如图:

这两幅图展示了记忆操作的过程和不同的网络整体结构.

MQN 仅仅依赖当前观察,除了当前输入用来做强化学习问题中的时态上下文的内存检索类似于 MemNN,是一个单纯的前驱网络结构构造了上下文环境;RMQN 则是循环结构使用 LSTM 从观察的历史信息中刻画了空间和时间信息,保证能够从 LSTM 和外部记忆中获得时态信息;FRMQN 则包含了一个从检索得到的记忆中反馈到上下文向量的链接。如图

最终使用的 FRMQN 网络架构包含了用来抽取图像特征的卷积网络、获取历史观察的记忆单元和一个上下文向量用于记忆查询和行动值的估计。其中提及的 FRQMN 对于未曾见过的环境在学习值函数的时候能够表现出更好的泛化能力.

https://sites.google.com/a/umich.edu/junhyuk-oh/icml2016-minecraft

可以看到在实际的 Minecraft 中的 agent 行为的效果视频.

大规模离散行动空间上的深度强化学习

https://arxiv.org/pdf/1512.07679.pdf

这项工作建立在 DeepMind 之前的 DDPG 等工作之上,杂糅了若干模型,并使用嵌入的方式来大幅度降低行动空间的维数,其主要过程在下图中给出:

博弈均衡求解的深度强化学习方法

https://arxiv.org/pdf/1603.01121.pdf

NFSP 就是引入神经网络近似函数的 FSP,是一种利用强化学习技术来从自我博弈中学习近似纳什均衡的方法,解决了三个问题:

  1. 无先验知识 NFSP agent 学习

  2. 运行时不依赖局部搜索

  3. 收敛到自我对局的近似纳什均衡

这是一般的不完美信息二人零和博弈。虚拟对弈同样也会收敛到合作、势力场博弈的纳什均衡。所以 NFSP 也能够成功应用在这些博弈上。另外,近期的研究关于连续空间行动的强化学习(Lillicrap et al. 2015)也能够应用在连续行动博弈中,目前的博弈论方法并不能直接处理这样的情形。所以说,这系列工作是具有重要的意义的,揭示了可以完成部分真实场景博弈的均衡求解。

用于对话生成的深度强化学习

http://arxiv.org/pdf/1606.01541.pdf

循环神经网络在对话生成上的应用确实有所进展,可以为对话机器人生成回应的语句,但是这些反应相当地短视,常常就忽略了对未来产生的后果。为对话的未来方向进行建模是产生连贯有趣的对话的关键,这也是传统 NLP 对话模型要采用强化学习的缘故。这个工作,将这些目标进行整合,应用深度强化学习来建模机器人对话的未来奖励。这个对话模型模拟了两个虚拟 agent 之间的对话,使策略梯度方法在包含三个有用的对话属性(信息量、连贯性和易答性)的奖励序列上。实验在 diversity、长度和人类评判上进行,结果表明算法产生了更具交互性的答复并刺激出更加持久的对话模拟。这也是基于对话长期成功的学习神经网络对话模型的第一次尝试。

results matching ""

    No results matching ""