深度强化学习领域近期有什么新进展?( 三 )


深度强化学习领域近期有什么新进展?

文章插图
然后使用 DDPG 的一种变体在这些动作、新目标和环境奖励 R 上训练高层策略 。
HIRO 当然不是唯一一种 HRL 方法 。FeUdal 网络是一种更早的相关研究(https://arxiv.org/pdf/1703.01161.pdf) 。其使用了一个学习到的「目标」表征而不是原始的状态观察 。实际上 。研究中的很多变体都源自学习有用的低层子策略的不同方法;很多论文都使用了辅助的或「代理的」奖励 。还有一些其它研究实验了预训练或多任务训练 。不同于 HIRO 。这些方法中很多都需要某种程度的人工设计或领域知识 。这从本质上限制了它们的通用性 。近期也有研究在探索使用基于群体的训练(PBT 。https://arxiv.org/abs/1711.09846) 。这是另一个我个人很喜欢的算法 。本质上讲 。内部奖励被当作了附加超参数进行处理 。通过在训练过程中「演进」群体 。PBT 能学习到这些超参数的最优演化 。
HRL 是当前一个非常受欢迎的研究领域 。而且也非常容易与其它技术组合到一起 。比如这篇论文将 HRL 与模仿学习结合了起来:https://arxiv.org/pdf/1803.00590.pdf 。但是 。HRL 的核心只是一个非常直观的思想 。HRL 是可扩展的 。具备神经解剖学上的相似性 。能解决强化学习领域内的一些基本问题 。但和其它优秀的强化学习方法一样 。它的训练难度颇高 。
记忆和注意
现在来谈谈用于解决长期信用分配和稀疏奖励信号问题的其它方法 。具体而言 。我们要说的是最明显的方法:让智能体真正擅长记忆事物 。
深度学习中的记忆总是很有意思 。因为不管研究者怎样努力(而且他们确实非常努力) 。很少有架构能胜过经过精心调节的 LSTM 。但是 。人类记忆的工作方式却与 LSTM 完全不同 。当我们在处理日常生活中的任务时 。我们会回忆和关注与场景相关的特定记忆 。很少有其它内容 。比如当我回家并开车到当地的杂货店时 。我会使用我在这条道路上驾驶了数百次的记忆 。而不是如何从 Camden Town 驱车到伦敦的 Piccadilly Circus 的记忆——即使这些记忆刚刚才加入我的经历 。仍然活灵活现 。就此而言 。人类的记忆基本都是根据场景进行查询的——取决于我们在哪里以及做什么 。我们的大脑知道哪些记忆对我们有用 。
在深度学习中 。这一观点催生了外部的基于关键值的记忆 。这并不是一个新思想;神经图灵机(https://arxiv.org/pdf/1410.5401.pdf 。这是我读过的第一篇而且是最喜欢的论文)使用了一种可微分的外部记忆存储来增强神经网络 。可以通过指向特定位置的向量值的「读」和「写」头来访问 。我们可以很容易想到将其扩展到强化学习领域——在任意给定时间步骤 。智能体都会获得其环境观察和与当前状态相关的记忆 。这就是近期的 MERLIN 架构的所做的事情:https://arxiv.org/pdf/1803.10760.pdf 。
【深度强化学习领域近期有什么新进展?】MERLIN 有两个组件:一个基于记忆的预测器(MBP)和一个策略网络 。MBP 负责将观察压缩成有用的低维「状态变量」 。从而将其直接存储到键值记忆矩阵中 。它也会负责将相关的记忆传递给策略网络 。然后策略网络会使用这些记忆和当前状态来输出动作 。
深度强化学习领域近期有什么新进展?

文章插图
这个架构可能看起来有些复杂 。但要记住 。其策略网络只是一个输出动作的循环网络 。而 MBP 也仅做三件事:
将观察压缩成有用的状态变量 z_t 。从而传递给策略 。
将 z_t 写入记忆矩阵
获取其它有用的记忆并传递给策略
其工作流程看起来是这样的:输入的观察首先被编码并被输入一个 MLP 。这个 MLP 的输出会被添加到下一个状态变量的先验分布上 。从而得到后验分布 。这个后验分布基于所有之前的动作/观察以及新的观察 。然后会被采样以产生一个状态变量 z_t 。接下来 。z_t 会被输入 MBP 的 LSTM 。其输出会被用于更新先验分布以及通过向量值的「读取键」和「写入键」来对记忆进行读取/写入——这两者是以作为 LSTM 的隐藏状态的线性函数得到的 。最后 。下游的工作是策略网络使用 z_t 以及从记忆读取的输出来得出一个动作 。
其中一个关键细节是:为了确保状态表征有用 。MBP 也经过了训练以预测当前状态 z_t 的奖励 。这样所学习到的表征就与当前任务存在关联 。
MERLIN 的训练有一些复杂;因为 MBP 的目标是用作一种有用的「世界模型」 。这是一个难以实现的目标 。所以它实际上的训练目标是优化变分下界(VLB)损失 。(如果你不熟悉 VLB 。可以参考这篇文章:https://xyang35.github.io/2017/04/14/variational-lower-bound/ ;但就算你不理解 。也不妨碍你理解 MERLIN 。)这个 VLB 损失包含两个成分: