将 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 损失包含两个成分:在这下一个状态变量上的先验和后验概率分布之间的 KL 距离,其中后验分布还额外有新观察的条件。

最小化这个 KL 距离能确保新状态变量与之前的观察/动作保持一致。状态变量的重构损失;我们试图在这个状态变量中重现输入的观察(比如图像、之前的动作等)并基于该状态变量预测奖励。如果这个损失很小,说明我们就找到了一个能准确表征该观察的状态变量,而且它还可用于产生能得到高奖励的动作。下式就是我们最终的 VLB 损失,其中第一项是重构损失,第二项是 KL 距离:这个策略网络的损失是我们上文讨论过的 A3C 的策略梯度损失的稍微更好的版本;它使用的算法被称为「广义优势估计算法」,其细节超出了本文的覆盖范围(但能在 MERLIN 论文附录的 4.4 节找到),但其看起来就类似于下面给出的标准的策略梯度更新:一旦训练完成,MERLIN 应该就能通过状态表征和记忆来预测性地建模世界,其策略也应该能够利用这些预测来选取有用的动作。

MERLIN 并不是唯一一个使用外部记忆存储的深度强化学习研究。早在 2016 年,就有研究者将这一思想用在了 MQN(记忆 Q 网络)中来解决 Minecraft 中的迷宫问题:https://arxiv.org/pdf/1605.09128.pdf ;但使用记忆作为世界的预测模型的概念具有一些独特的神经科学方面的推动力。

有一篇 Medium 文章(https://goo.gl/cVjQK5)很好地解释了这一思想,所以这里就不再重复了,只说说其关键论点:不同于对大多数神经网络的解释,我们的大脑很可能不是以「输入-输出」机器的方式运作的。相反,其工作方式类似与一个预测引擎,我们对世界的感知实际上只是大脑对于我们的感官输入的原因的最佳猜测。

神经科学家 Amil Seth 对 Hermann von Helmholtz 在 19 世纪提出的这一理论进行了很好的总结:大脑被锁在颅骨中。它所接受的都是模糊和有噪声的感官信号,这些信号仅与世界中的物体存在间接的关联。因此,感知必然是一个推理过程,其中非确定性的感官信号会与对世界的先前预期或「信念」结合起来,以构建大脑对这些感官信号的原因的最佳假设。

MERLIN 的基于记忆的预测器的目标正是实现这种预测推理。它会对观察进行编码,然后将它们与内在的先验结合起来,从而生成一个涵盖输入的某些表征(或原因)的「状态变量」,这些状态会被存储在长期记忆中以便智能体之后能基于它们采取行动。智能体、世界模型和想象有意思的是,大脑类似预测引擎的概念会将我们带回我们想要探究的第一个强化学习问题:如何从环境中有效地学习?如果我们不能直接根据观察得到动作,那么我们又该如何最好地与周遭环境交互并从中学习呢?在强化学习领域,传统的做法要么是无模型学习,要么是基于模型的学习。

无模型强化学习是学习直接将原始的环境观察映射到价值或动作。基于模型的强化学习则是首先学习一个基于原始观察的环境的过渡模型,然后使用该模型来选择动作。图中外圈表示基于模型的强化学习,包含「direct RL」的内圈表示无模型强化学习。比起无模型学习中单纯的试错方法,基于模型进行规划的样本效率要高得多。但是,学习优良的模型往往非常困难,因为模型不完美造成的误差往往会导致智能体表现糟糕。

 6/9   首页 上一页 4 5 6 7 8 9 下一页 尾页

文章TAG:神经网络  深度  现有  突破  
下一篇