欢迎来到985免费论文网-论文免费参考网!
当前位置: 首页 > 计算机论文 >

英语翻译Cootes,T.F.,Edwa

来源:985免费论文网  | 时间:2024-11-20 04:25:11 |

英语翻译Cootes,T.F.,Edwa

这是参考文献常用格式.
Cootes,T.F.,Edwards,G.J.和Taylor,C.J(作者人名,皆可不译),1998年(合撰),《主动表观模型》,(已收入)《欧洲第5届计算机视觉大会论文汇编》第2、第3卷(会议时间1998.6.2-6.6)
H.Burkhardt、B.Neumann,Eds(合著),《计算机科学讲义》,第1,407卷,伦敦Springer Verlag出版公司(出版),第484-498页

视觉传达设计专业的学生通常需要写毕业论文。毕业论文是大学生的一项重要任务,不仅是对所学知识的一个归纳总结,也是检验学生综合能力的一种。在视觉传达设计专业中,毕业论文通常会涉及设计原理和方法、品牌形象设计、网页和APP设计、创意广告设计、动画和视频制作等内容。学生需要运用所学知识和技术,完成一份自己的设计作品,并对这个设计作品进行分析、评价和总结。这一过程不仅需要学生具备扎实的设计功底和创意能力,还需要学生具备独立思考、调研能力和表达能力。

在写毕业论文时,学生需要遵守一定的规范和要求。例如,论文题目要简明、具体、确切,避免使用非公知公用的缩略语、字符、代号等。中文摘要应简捷明了,包含本项毕业设计工作的目的、意义、设计方法、设计过程、设计成果及结论等,并列出3~6个关键词。外文摘要应与中文摘要一一对应,要求用词准确、语法规范、意思完整。此外,毕业论文的总字数要求一般在3000~5000字之间,写作内容可因选题的性质不同而变化。

总之,写毕业论文是视觉传达设计专业学生的一项必要任务,通过完成毕业论文,学生可以更好地掌握所学知识和技能,提高自己的综合素质和能力。

首先来看下好奇号拍摄的火星蘑菇照片:

其实,从照片上面来看,这些图片里面的物体并不像“蘑菇”,反而像某种圆球状的物体。如果你经常和纳米材料打交道,经常做扫描电镜(SEM)或者(TEM),那么机会发现这些图片和电镜下某些胶束的结构很像,都是这种圆圆的样子:

上图放大之后和好奇号发现的火星“蘑菇”几乎一样,不过这些白色圆点不过就是脂质体形成的胶束纳米结构而已,呈现为圆形。而好奇号拍摄的物体,应该也是圆形球形,这样对应的就是某种矿石,而科学家猜测就是赤铁矿。

有些人认为这些白色圆点是“蘑菇”,是火星真菌。但火星表面环境如此恶劣,想要拥有生命几乎是不可能。所以,这些个“蘑菇”是火星生命的可能性基本不用考虑。

过去,神经网络架构大部分都是由人类研究者手动开发的,这个过程非常耗时且容易出错。神经架构自动搜索(NAS)技术解放了人类工作,也让模型效率有了提升。在大规模图像分类问题上,自动算出的模型已经超越了人类设计的模型。

近日,斯坦福大学李飞飞组的研究者提出了 Auto-DeepLab,其在图像语义分割问题上超越了很多业内最佳模型,甚至可以在未经过预训练的情况下达到预训练模型的表现。Auto-DeepLab 开发出与分层架构搜索空间完全匹配的离散架构的连续松弛,显著提高架构搜索的效率,降低算力需求。

深度神经网络已经在很多人工智能任务上取得了成功,包括图像识别、语音识别、机器翻译等。虽然更好的优化器 [36] 和归一化技术 [32, 79] 在其中起了重要作用,但很多进步要归功于神经网络架构的设计。在计算机视觉中,这适用于图像分类和密集图像预测。

表 1:本研究提出的模型 Auto-DeepLab 和其它双层 CNN 架构的对比。主要区别有:(1) Auto-DeepLab 直接搜索用于语义分割的 CNN 架构;(2) Auto-DeepLab 搜索网络级架构和单元级架构;(3) Auto-DeepLab 的高效搜索在一个 P100 GPU 上仅需 3 天。

最近,在 AutoML 和 AI 民主化的影响下,人们对自动化设计神经网络架构产生了极大兴趣,自动化设计神经网络无需严重依赖专家经验和知识。更重要的是,去年神经架构搜索(NAS)成功找到了在大规模图像分类任务上超越人类设计架构的网络架构 [92, 47, 61]。

图像分类对 NAS 来说是一个很好的起点,因为它是最基础且研究最深入的高级识别任务。此外,该研究领域存在具有规模相对较小的基准数据集(如 CIFAR-10),从而减少了计算量并加快了训练速度。然而,图像分类不应该是 NAS 的终点,现下的成功表明它可以扩展至要求更高的领域。在本文中,作者研究了用于语义图像分割的神经架构搜索。这是一项重要的计算机视觉任务,它为输入图像的每个像素分配标签,如「人」或「自行车」。

简单地移植图像分类的方法不足以进行语义分割。在图像分类中,NAS 通常使用从低分辨率图像到高分辨率图像的迁移学习 [92],而语义分割的最佳架构必须在高分辨率图像上运行。这表明,本研究需要:(1) 更松弛、更通用的搜索空间,以捕捉更高分辨率导致的架构变体;(2) 更高效的架构搜索技术,因为高分辨率需要的计算量更大。

作者注意到,现代 CNN 设计通常遵循两级分层结构,其中外层网络控制空间分辨率的变化,内层单元级架构管理特定的分层计算。目前关于 NAS 的绝大多数研究都遵循这个两级分层设计,但只自动化搜索内层网络,而手动设计外层网络。这种有限的搜索空间对密集图像预测来说是一个问题,密集图像预测对空间分辨率变化很敏感。因此在本研究中,作者提出了一种格子状的网络级搜索空间,该搜索空间可以增强 [92] 首次提出的常用单元级搜索空间,以形成分层架构搜索空间。本研究的目标是联合学习可重复单元结构和网络结构的良好组合,用于语义图像分割。

就架构搜索方法而言,强化学习和进化算法往往是计算密集型的——即便在低分辨率数据集 CIFAR-10 上,因此它们不太适合语义图像分割任务。受 NAS 可微分公式 [68, 49] 的启发,本研究开发出与分层架构搜索空间完全匹配的离散架构的连续松弛。分层架构搜索通过随机梯度下降实施。当搜索终止时,最好的单元架构会被贪婪解码,而最好的网络架构会通过维特比算法得到有效解码。作者在从 Cityscapes 数据集中裁剪的 321×321 图像上直接搜索架构。搜索非常高效,在一个 P100 GPU 上仅需 3 天。

作者在多个语义分割基准数据集上进行了实验,包括 Cityscapes、PASCAL VOC 2012 和 ADE20K。在未经 ImageNet 预训练的情况下,最佳 Auto-DeepLab 模型在 Cityscapes 测试集上的结果超过 FRRN-B 8.6%,超过 GridNet 10.9%。在利用 Cityscapes 粗糙标注数据的实验中,Auto-DeepLab 与一些经过 ImageNet 预训练的当前最优模型的性能相近。值得注意的是,本研究的最佳模型(未经过预训练)与 DeepLab v3+(有预训练)的表现相近,但在 MultiAdds 中前者的速度是后者的 2.23 倍。另外,Auto-DeepLab 的轻量级模型性能仅比 DeepLab v3+ 低 1.2%,而参数量需求却少了 76.7%,在 MultiAdds 中的速度是 DeepLab v3+ 的 4.65 倍。在 PASCAL VOC 2012 和 ADE29K 上,Auto-DeepLab 最优模型在使用极少数据进行预训练的情况下,性能优于很多当前最优模型。

本论文主要贡献如下:

  • 这是首次将 NAS 从图像分类任务扩展到密集图像预测任务的尝试之一。

  • 该研究提出了一个网络级架构搜索空间,它增强和补充了已经得到深入研究的单元级架构搜索,并对网络级和单元级架构进行更具挑战性的联合搜索。

  • 本研究提出了一种可微的连续,保证高效运行两级分层架构搜索,在一个 GPU 上仅需 3 天。

  • 在未经 ImageNet 预训练的情况下,Auto-DeepLab 模型在 Cityscapes 数据集上的性能显著优于 FRRN-B 和 GridNet,同时也和 ImageNet 预训练当前最佳模型性能相当。在 PASCAL VOC 2012 和 ADE20K 数据集上,最好的 Auto-DeepLab 模型优于多个当前最优模型。

论文:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

论文地址:

摘要:近期,在图像分类问题上神经架构搜索(NAS)确定的神经网络架构能力超越人类设计的网络。本论文将研究用于语义图像分割的 NAS,语义图像分割是将语义标签分配给图像中每个像素的重要计算机视觉任务。现有的研究通常关注搜索可重复的单元结构,对控制空间分辨率变化的外部网络结构进行人工设计。这种做法简化了搜索空间,但对于具备大量网络级架构变体的密集图像预测而言,该方法带来的问题很多。因此,该研究提出在搜索单元结构之外还要搜索网络级架构,从而形成一个分层架构搜索空间。本研究提出一种包含多种流行网络设计的网络级搜索空间,并提出一个公式来进行基于梯度的高效架构搜索(在 Cityscapes 图像上使用 1 个 P100 GPU 仅需 3 天)。本研究展示了该方法在较难的 Cityscapes、PASCAL VOC 2012 和 ADE20K 数据集上的效果。在不经任何 ImageNet 预训练的情况下,本研究提出的专用于语义图像分割的架构获得了当前最优性能。

这部分首先介绍了精确匹配上述分层架构搜索的离散架构的连续松弛,然后讨论了如何通过优化执行架构搜索,以及如何在搜索终止后解码离散架构。

4.2 优化

连续松弛的作用在于控制不同隐藏状态之间连接强度的标量现在也是可微计算图的一部分。因此可以使用梯度下降对其进行高效优化。作者采用了 [49] 中的一阶近似,将训练数据分割成两个单独的数据集 trainA 和 trainB。优化在以下二者之间交替进行:

1. 用 ∇_w L_trainA(w, α, β) 更新网络权重 w;

2. 用 ∇_(α,β) L_trainB(w, α, β) 更新架构 α, β。

其中损失函数 L 是在语义分割小批量上计算的交叉熵。

4.3 解码离散架构

单元架构

和 [49] 一样,本研究首先保留每个构造块的两个最强前任者(predecessor),然后使用 argmax 函数选择最可能的 operator,从而解码离散单元架构。

网络架构

公式 7 本质上表明图 1 中每个蓝色节点处的「outgoing 概率」的总和为 1。事实上,β 可被理解为不同「时间步」(层数)中不同「状态」(空间分辨率)之间的「transition 概率」。本研究的目标是从头开始找到具备「最大概率」的的路径。在实现中,作者可以使用经典维特比算法高效解码该路径。

图 1:左图是 L = 12 时的网络级搜索空间。灰色节点表示固定的「stem」层,沿着蓝色节点形成的路径表示候选网络级架构。右图展示了搜索过程中,每个单元是一个密集连接的结构。

图 3:使用本研究提出的分层神经架构搜索方法找到的最优网络架构和单元架构。灰色虚线箭头表示每个节点处具备最大 β 值的连接。atr 指空洞卷积(atrous convolution),sep 指深度可分离卷积(depthwise-separable convolution)。

图 4:在 10 次随机试验中,40 个 epoch 中架构搜索优化的验证准确率。

表 2:不同 Auto-DeepLab 模型变体在 Cityscapes 验证集上的结果。F:控制模型容量的 filter multiplier。所有 Auto-DeepLab 模型都是从头开始训练,且在推断过程中使用单尺度输入。

表 3:Cityscapes 验证集结果。研究采用不同的训练迭代次数(50 万、100 万与 150 万次迭代)和 SDP(Scheduled Drop Path)方法进行实验。所有模型都是从头训练的。

表 4:模型在推断过程中使用多尺度输入时在 Cityscapes 测试集上的结果。ImageNet:在 ImageNet 上预训练的模型。Coarse:利用粗糙注释的模型。

表 5:PASCAL VOC 2012 验证集结果。本研究采用多尺度推理(MS,multi-scale inference)和 COCO 预训练检查点(COCO)进行实验。在未经任何预训练的情况下,本研究提出的最佳模型(Auto-DeepLab-L)超越了 DropBlock 20.36%。所有的模型都没有使用 ImageNet 图像做预训练。

表 6:PASCAL VOC 2012 测试集结果。本研究提出的 AutoDeepLab-L 取得了可与众多在 ImageNet 和 COCO 数据集上预训练的顶级模型相媲美的结果。

表 7:ADE20K 验证集结果。在推断过程中使用多尺度输入。† 表示结果分别是从他们最新的模型 zoo 网站获得的。ImageNet:在 ImageNet 上预训练的模型。Avg:mIOU 和像素准确率的均值。

图 5:在 Cityscapes 验证集上的可视化结果。最后一行展示了本研究提出方法的故障模式,模型将一些较难的语义类别混淆了,如人和骑车的人。

图 6:在 ADE20K 验证集上的可视化结果。最后一行展示了本研究提出方法的故障模式,模型无法分割非常细粒度的对象(如椅子腿),且将较难的语义类别混淆了(如地板和地毯)。

深度强化学习是近年来人工智能领域内最受关注的研究方向之一,并已在游戏和机器人控制等领域取得了很多耀眼的成果。DeepMind 的工程师 Joyce Xu 近日发表了一篇博客文章,介绍了深度强化学习领域的一些近期进展,其中涉及到分层式强化学习、记忆、注意机制、世界模型和想象等方向。

我觉得,深度强化学习最让人喜欢的一点是它确实实在难以有效,这一点不同于监督学习。用神经网络来解决一个计算机视觉问题可能能达到 80% 的效果;而如果用神经网络来处理强化学习问题,你可能就只能眼睁睁地看着它失败——而且你每次尝试时遭受的失败都各不相同。

强化学习领域内的很多最大的挑战都围绕着两大问题:如何有效地与环境交互(比如探索与利用、样本效率),以及如何有效地从经历中学习(比如长期信用分配、稀疏奖励信号)。在这篇文章中,我希望探讨深度强化学习领域内试图解决这些挑战的几个近期研究方向,并且还会将其与人类认知进行优雅简洁的对比。具体而言,我将谈到:

  • 分层式强化学习

  • 记忆和预测建模

  • 将无模型方法与基于模型的方法组合到一起

本文首先将简要介绍两个代表性的深度强化学习算法——DQN 和 A3C,以为后文提供能够作为参考的直观知识,然后我们会深入探讨几篇近期的论文和研究突破。

DQN 和 A3C/A2C

声明:我假设读者已经对强化学习有一定的基本了解了(因此这里不会提供有关这些算法的深度教程),但就算你对强化学习算法的工作并不完全了解,你应该也能阅读后文的内容。

DeepMind 的 DQN(深度 Q 网络)是将深度学习应用于强化学习的最早期突破性成功之一。其中使用了一个神经网络来学习用于经典 Atari 游戏的 Q 函数,比如《乒乓球》和《打砖块》,从而让模型可以直接根据原始像素输入得出应该采取的动作。

从算法上看,DQN 直接源自经典的 Q 学习技术。在 Q 学习中,一个状态-动作对的 Q 值(即 quality 值)是通过基于经历的迭代式更新来估计的。从本质上讲,对于某个状态下我们可采取的每个动作,我们都可以使用收到的即时奖励和对新状态的价值估计来更新原来的状态-动作对的价值估计:

DQN 的训练是最小化时间差分误差(TD-error)的 MSE(均方误差),如上所示。DQN 使用了两个关键策略来使 Q 学习适用于深度神经网络,而且这两个策略也在后续的深度强化学习研究中得到了成功的应用。这两个策略为:

  • 经历重放(experience replay),其中每个状态/动作转换元组 (s, a, r, s』) 都存储在一个记忆「重放」缓存冲,并会被随机采样以用于训练网络,从而可实现对训练数据的重复使用和去除连续轨迹样本中的相关性。

  • 使用一个单独的目标网络(即上式中的 Q_hat 部分)来实现训练的稳定,所以 TD 误差不是根据源自训练网络的不断变化的目标计算的,而是根据由一个基本固定的网络所生成的稳定目标计算的。

在那之后,DeepMind 的 A3C(Asynchronous Advantage Actor Critic)和 OpenAI 的同步式变体 A2C 也非常成功地将深度学习方法推广到了 actor-critic 方法上。

actor-critic 方法将策略梯度方法与一种学习后的价值函数结合到了一起。对于 DQN 方法,我们仅有学习后的价值函数(即 Q 函数),而我们遵循的「策略」只是简单地在每个步骤取能最大化 Q 值的动作。使用 A3C 和使用其它 actor-critic 方法一样,我们会学习两个不同的函数:策略(即 actor)和价值(即 critic)。策略函数是基于采取该动作的当前估计优势(advantage)来调整动作概率,而价值函数则是基于经历和后续策略收集到的奖励来更新该优势:

从上面的更新可以看出,价值网络会学习一个基线状态值 V(s_i;θ_v),我们可以将其与我们的当前奖励估计 R 进行比较,从而得到「优势」;策略网络则会通过经典的 REINFORCE 算法根据该优势调整动作的对数概率。

A3C 真正的贡献在于其并行化和异步化的架构:多个 actor 学习器被分派到不同的环境实例中;它们全都会与环境进行交互并收集经历,然后异步地将它们的梯度更新推送到一个中心的「目标网络」(一个借用自 DQN 的思路)。之后,OpenAI 的 A2C 研究表明异步实际上对性能没有贡献,而且事实上还会降低样本效率。对这些架构的详细解释已经超出了本文的覆盖范围,但如果你和我一样对分布式智能体感兴趣,那一定要看看 DeepMind 的 IMPALA,这是一种非常有用的设计范式,可用于实现对学习的扩展:。

DQN 和 A3C/A2C 都是非常强大的基线智能体,但是在面对更加复杂的任务、严重的部分可观察性和/或动作与相关奖励信号之间存在较长延迟时,这些智能体往往难以为继。因此,强化学习研究中有一整个子领域在致力于解决这些问题。接下来我们看看其中一些优秀的研究。

分层式强化学习(HRL)

分层式强化学习是一类从多个策略层学习的强化学习方法,其中每一层都负责控制不同层面的时间和行为抽象。最低层面的策略负责输出环境动作,让更高层面的策略可以操作更抽象的目标和更长的时间尺度。

为什么这种方法很吸引人?首先也是最重要的一点是在认知方面,有很多研究都认为人类和动物行为都基于分层式结构。这在日常生活中有直观的体现:当我决定做一顿饭时(实际上我基本从不做饭,但为了合理论述,就假设我是一个负责的人类吧),我会将这一任务分成多个更简单的子任务(切蔬菜、煮面条等),但绝不会忽视我要做饭的总体目标;我甚至还能切换不同的子任务来完成同样的目标,比如不煮面条而是蒸饭。这说明真实世界任务中存在固有的层次结构和组合性质,因此可将简单的基础动作串接、重复或组合起来以完成复杂的工作。近些年的一些研究甚至发现 HRL 组件与前额叶皮质中的特定神经结构之间存在直接的相似性。

从技术方面看,HRL 尤其引人注目,因为它能帮助解决我们前文提到的第二个问题的两大挑战:如何有效地从经历中学习(比如长期信用分配、稀疏奖励信号)。在 HRL 中,因为低层策略是基于高层策略分配的任务从内在奖励中学习的,所以尽管奖励稀疏,基础任务仍可得以学习。此外,高层策略发展起来的时间抽象让我们的模型可以根据时间上延展的经历来处理信用分配问题。

所以 HRL 的工作是怎样的?目前有一些各不相同的方法都能实现 HRL。Google Brain 近期的一篇论文采用了一种尤其清晰和简单的方法,并为数据高效型训练引入了一些很好的离策略修正方法。他们的模型名为 HIRO:。

μ_hi 是高层面的策略,其为低层面的策略输出需要实现的「目标状态」。μ_lo 是低层面的策略,输出环境动作以试图达成其目标状态观察。

其设计思路是有两个策略层。高层策略的训练目标是最大化环境奖励 R。每 c 个时间步骤,高层策略都会采样一个新动作,这是低层策略所要达成的「目标状态」。低层策略的训练目标是选取合适的环境动作,使其能产生类似于给定目标状态的状态观察。

举一个简单的例子:假设我们在训练一个机器人以特定的顺序堆叠彩色方块。我们仅有单个奖励 +1 在任务成功最终完成时给出,所有其它时间步骤的奖励都是 0。直观地说,高层策略负责提出所要完成的必要子目标:也许它输出的第一个目标状态是「观察到一个红色方块在你面前」,第二个目标状态可能是「观察到蓝色方块在红色方块旁边」,然后是「观察到蓝色方块在红色方块上面」。低层策略在环境中探索,直到其找到用于产生这些观察结果所必需的动作序列,比如选取一个蓝色方块并将其移动到红色方块之上。

HIRO 使用了 DDPG(深度确定性策略梯度)训练目标的一种变体来训练低层策略,其内在奖励被参数化为了当前观察与目标观察之间的距离:

DDPG 是又一种影响深远的深度强化学习算法,其将 DQN 的思想扩展到的连续动作空间。这也是一种 actor-critic 方法,使用策略梯度来优化策略;但不同于 A3C 中那样根据优势来优化策略,它是根据 Q 值来进行优化。因此在 HIRO 中,所要最小化的 DDPG 邻近误差就变成了:

同时,为了使用离策略的经历,高层策略使用了离策略修正来进行训练。其思想是:为了提升样本效率,我们希望使用某种形式的重放缓存,就像 DQN 一样。但是,过去的经历不能直接用于训练高层策略。这是因为低层策略会持续学习和改变,所以就算我们设置了与过去经历一样的目标,低层策略还是可能表现出不同的动作/转换。HIRO 中提出的离策略修正是为了回溯性地修改在离策略经历中看到的目标,从而最大化所观察到的动作序列的可能性。换句话说,如果重放经历表明过去的智能体采取动作 (x,y,z) 能达成目标 g,那么我们就寻找一个目标 g̃,使得它能让当前的智能体最有可能采取同样的动作 (x,y,z),即能够最大化该动作序列的对数概率(如下式)的动作。

然后使用 DDPG 的一种变体在这些动作、新目标和环境奖励 R 上训练高层策略。

HIRO 当然不是唯一一种 HRL 方法。FeUdal 网络是一种更早的相关研究(),其使用了一个学习到的「目标」表征而不是原始的状态观察。实际上,研究中的很多变体都源自学习有用的低层子策略的不同方法;很多论文都使用了辅助的或「代理的」奖励,还有一些其它研究实验了预训练或多任务训练。不同于 HIRO,这些方法中很多都需要某种程度的人工设计或领域知识,这从本质上限制了它们的通用性。近期也有研究在探索使用基于群体的训练(PBT,),这是另一个我个人很喜欢的算法。本质上讲,内部奖励被当作了附加超参数进行处理,通过在训练过程中「演进」群体,PBT 能学习到这些超参数的最优演化。

HRL 是当前一个非常受欢迎的研究领域,而且也非常容易与其它技术组合到一起,比如这篇论文将 HRL 与模仿学习结合了起来:。但是,HRL 的核心只是一个非常直观的思想。HRL 是可扩展的,具备神经解剖学上的相似性,能解决强化学习领域内的一些基本问题。但和其它优秀的强化学习方法一样,它的训练难度颇高。

记忆和注意

现在来谈谈用于解决长期信用分配和稀疏奖励信号问题的其它方法。具体而言,我们要说的是最明显的方法:让智能体真正擅长记忆事物。

深度学习中的记忆总是很有意思,因为不管研究者怎样努力(而且他们确实非常努力),很少有架构能胜过经过精心调节的 LSTM。但是,人类记忆的工作却与 LSTM 完全不同。当我们在处理日常生活中的任务时,我们会回忆和关注与场景相关的特定记忆,很少有其它内容。比如当我回家并开车到当地的杂货店时,我会使用我在这条道路上驾驶了数百次的记忆,而不是如何从 Camden Town 驱车到伦敦的 Piccadilly Circus 的记忆——即使这些记忆刚刚才加入我的经历,仍然活灵活现。就此而言,人类的记忆基本都是根据场景进行查询的——取决于我们在哪里以及做什么,我们的大脑知道哪些记忆对我们有用。

在深度学习中,这一观点催生了外部的基于关键值的记忆。这并不是一个新思想;神经图灵机(,这是我读过的第一篇而且是最喜欢的论文)使用了一种可微分的外部记忆存储来增强神经网络,可以通过指向特定位置的向量值的「读」和「写」头来访问。我们可以很容易想到将其扩展到强化学习领域——在任意给定时间步骤,智能体都会获得其环境观察和与当前状态相关的记忆。这就是近期的 MERLIN 架构的所做的事情:。

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,可以参考这篇文章:-lower-bound/ ;但就算你不理解,也不妨碍你理解 MERLIN。)这个 VLB 损失包含两个成分:

  1. 在这下一个状态变量上的先验和后验概率分布之间的 KL 距离,其中后验分布还额外有新观察的条件。最小化这个 KL 距离能确保新状态变量与之前的观察/动作保持一致。

  2. 状态变量的重构损失;我们试图在这个状态变量中重现输入的观察(比如图像、之前的动作等)并基于该状态变量预测奖励。如果这个损失很小,说明我们就找到了一个能准确表征该观察的状态变量,而且它还可用于产生能得到高奖励的动作。

下式就是我们最终的 VLB 损失,其中第一项是重构损失,第二项是 KL 距离:

这个策略网络的损失是我们上文讨论过的 A3C 的策略梯度损失的稍微更好的版本;它使用的算法被称为「广义优势估计算法」,其细节超出了本文的覆盖范围(但能在 MERLIN 论文附录的 4.4 节找到),但其看起来就类似于下面给出的标准的策略梯度更新:

一旦训练完成,MERLIN 应该就能通过状态表征和记忆来预测性地建模世界,其策略也应该能够利用这些预测来选取有用的动作。

MERLIN 并不是唯一一个使用外部记忆存储的深度强化学习研究。早在 2016 年,就有研究者将这一思想用在了 MQN(记忆 Q 网络)中来解决 Minecraft 中的迷宫问题: ;但使用记忆作为世界的预测模型的概念具有一些独特的神经科学方面的推动力。有一篇 Medium 文章()很好地解释了这一思想,所以这里就不再重复了,只说说其关键论点:不同于对大多数神经网络的解释,我们的大脑很可能不是以「输入-输出」机器的运作的。相反,其工作类似与一个预测引擎,我们对世界的感知实际上只是大脑对于我们的感官输入的原因的最佳猜测。神经科学家 Amil Seth 对 Hermann von Helmholtz 在 19 世纪提出的这一理论进行了很好的总结:

大脑被锁在颅骨中。它所接受的都是模糊和有噪声的感官信号,这些信号仅与世界中的物体存在间接的关联。因此,感知必然是一个推理过程,其中非确定性的感官信号会与对世界的先前预期或「信念」结合起来,以构建大脑对这些感官信号的原因的最佳假设。

MERLIN 的基于记忆的预测器的目标正是实现这种预测推理。它会对观察进行编码,然后将它们与内在的先验结合起来,从而生成一个涵盖输入的某些表征(或原因)的「状态变量」,这些状态会被存储在长期记忆中以便智能体之后能基于它们采取行动。

智能体、世界模型和想象

有意思的是,大脑类似预测引擎的概念会将我们带回我们想要探究的第一个强化学习问题:如何从环境中有效地学习?如果我们不能直接根据观察得到动作,那么我们又该如何最好地与周遭环境交互并从中学习呢?

在强化学习领域,传统的做法要么是无模型学习,要么是基于模型的学习。无模型强化学习是学习直接将原始的环境观察映射到价值或动作。基于模型的强化学习则是首先学习一个基于原始观察的环境的过渡模型,然后使用该模型来选择动作。

图中外圈表示基于模型的强化学习,包含「direct RL」的内圈表示无模型强化学习。

比起无模型学习中单纯的试错方法,基于模型进行规划的样本效率要高得多。但是,学习优良的模型往往非常困难,因为模型不完美造成的误差往往会导致智能体表现糟糕。因为这个原因,深度强化学习领域内很多早期的成功研究(比如 DQN 和 A3C)都是无模型的。

话虽如此,1990 年的 Dyna 算法()就已经模糊了无模型和基于模型的强化学习方法之间的界线,其中使用了一个学习后的模型来生成模拟的经历,以帮助训练无模型策略。现在,已有研究将这两种方法直接组合到了一起,即「想象力增强的智能体」算法(I2A,)。

在 I2A 中,最终策略是一个与无模型组件和基于模型的组件相关的函数。基于模型的组件被称为该智能体对世界的「想象」,其由该智能体内部的学习后的模型所产生的想象轨迹组成。但是,其关键的地方在于基于模型的组件的末端还有一个编码器,它会将想象轨迹聚合到一起并解读它们,使得智能体能学习在有必要时忽略自己的想象。也就是说,如果智能体发现其内部模型投射的轨迹是无用的和不准确的,那么它就可以学会忽视该模型并使用其无模型分支进行处理。

上图展示了 I2A 的工作。观察一开始就会被传递给无模型组件和基于模型的组件。在基于模型的组件中,会根据在当前状态可能采取的 n 个动作来想象 n 个不同的轨迹。这些轨迹是通过将动作和状态输入其内部环境模型而得到的,从而能够过渡到新的想象状态,然后取其中能得到最大化结果的动作。一个蒸馏后的想象策略(与通过交叉熵损失的最终策略相似)选择下一个动作。经过固定的 k 个步骤之后,这些轨迹会被编码并被聚合到一起,然后会与无模型组件的输出一起输入策略网络。关键的地方在于,这种编码能让策略以最有用的解读想象轨迹——如果不合适就忽视它们,在可用时就提取出其中与奖励无关的信息。

I2A 的策略网络是通过一个使用优势的标准策略梯度损失训练的,类似于 A3C 和 MERLIN,所以这应该看起来很眼熟:

此外,在实际策略和内部模型的想象策略之间还添加了一个策略蒸馏损失,以确保想象策略选择的动作接近当前智能体会选择的动作:

I2A 的表现优于包含 MCTS(蒙特卡洛树搜索)规划算法在内的很多基准。即使在其基于模型的组件被故意设计得预测结果很差时,它也能在实验中得到出色的表现,这说明它能权衡所要使用的模型——在有必要时也会使用无模型方法。有意思的是,内部模型较差的 I2A 的表现实际上还稍微优于有较好模型的 I2A——研究者将其归因于随机初始化或有噪声的内部模型能提供某种形式的正则化,但很显然这还是一个有待进一步研究的领域。

不管怎样,I2A 都很出色,因为它在某些方面也体现了人类在世界中的运作。我们总是在根据对我们所处的环境的某个心智模型来规划和预测未来,但我们也都清楚我们的心智模型并不完全准确——尤其是当我们处在新环境中或遇到我们未曾见过的情形时。在这种情况下,我们会进行试错,就像是无模型方法一样,但我们也会使用新的经历来更新我们内在的心智模型。

目前有很多研究者都在探索如何有效结合基于模型的方法和无模型方法。Berkeley AI 提出了一种时间差分模型:;其也有一个非常有趣的前提。其思想是让智能体设置更多时间上抽象的目标,即「在 k 个时间步骤内处于 X 状态」,然后在保证最大化每 k 个步骤所收集到的奖励的同时学习这些长期的模型过渡。这能为我们提供对动作的无模型探索和在高层目标上的基于模型的规划之间的平滑过渡——如果思考一下这种方法,你会发现这又会将我们带回分层式强化学习。

所有这些研究论文都关注的是同样的目标:实现与无模型方法同样(或更优)的表现,同时达到基于模型的方法那样的样本效率。

总结

深度强化学习模型确实很难训练,这一点毫无疑问。但正是由于这样的难度,我们才被迫提出了那么多的策略、方法和算法,以便能借助深度学习的强大力量来解决经典(或非经典)的控制问题。

这篇文章对深度强化学习的近期研究进行了不全面的介绍——还有大量研究没有提及,甚至还有很多研究我根本就不知道。但是,希望这里介绍的一些记忆、分层和想象方向的研究能够帮助读者了解我们着手解决强化学习领域内一些长期挑战和瓶颈的途径。


《英语翻译Cootes,T.F.,Edwa》由:互联网用户整理提供;
链接地址:/show/302637.html
转载请保留,谢谢!
推荐专题
相关文章