0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在不更改模型结构和不修改数据的情况下提升智能体

深度学习自然语言处理 来源:复旦DISC 作者:张霁雯 2021-11-09 15:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

2018 年 Anderson 等人提出了视觉语言导航(Vision-and-Language Navigation,VLN)任务和对应的基准数据集(Room-to-Room Dataset)。该任务旨在探究智能体是否能在仿真模拟环境中遵循自然语言指令,因此可以形式化的评估智能体是否具有跨模态的理解能力。先前的工作取得了长足的进步,然而少有工作专注于探究智能体是否充分学习了数据中的信息,或者说,智能体是一个好学生吗?在计算机视觉领域,Hlynsson 等人试图通过衡量数据效率来回答这个问题。具体而言,该工作将模型性能作为数据集大小的函数,并衡量在不同规模数据集上模型的性能。在视觉语言导航领域,Huang 等人开发了基于神经网络的数据鉴别器(discriminator),可以过滤低质量的指令路径对以提升智能体的学习效率。而在本文中,我们试图回答:能否在不更改模型结构和不修改数据的情况下进一步提升智能体?

我们监控了智能体在导航过程中所犯的第一个错误,并在下图中展示了不同错误的比率。我们发现当智能体导航失败时,大约 50% 的错误是由代理错误地预测下一个室内方向引起的。此类错误的比例随着导航任务跨越更多房间而降低,但仍保持在一个较高水平。这些现象表明导航智能体受限于它在一个房间内和两个房间之间导航的能力。因此,我们认为传统学习过程使得智能体不能充分地学习数据中的信息,采用类似范式进行训练的导航智能体很可能被低估了。

02 Methods

智能体在这些简单案例上的糟糕表现激励我们借鉴课程学习的想法。课程学习是一类关注数据集中样本难度的分布的训练范式,由 Bengio 于 2009 年提出,主要思想是模仿人类学习的特点,让模型先从容易的样本开始学习,并逐渐进阶到复杂的样本和知识。本文借鉴了课程学习的理念,首创性地提出了基于课程的 VLN 训练范式。

首先,我们为导航任务设计了合适的课程。从抽象角度看,课程被视为一系列训练准则。每个训练准则都与训练样本上的一组不同的权重相关联,或更普遍地,与训练样本分布的重新加权有关。要定义课程,首先需要定义样本的难度。对于人类来说,很容易在很小的范围内找到特定物体或地点。在经过简单的探索后,人类就可以利用有关环境的知识来完成更艰巨的任务。因此,我们假设路径 可以覆盖的房间数量 主导了导航任务的难度级别。我们建议根据 对基准数据集R2R数据集进行重新划分,划分后的数据集如下表所示:

b679f9d0-412b-11ec-b939-dac502259ad0.png

我们认为从简单到困难的数据集划分方式使得对智能体在这些子集上的学习与玩街机游戏非常相似,因此我们根据子集中样本的难度将训练集的各个子集命名为第一回合(Round 1)至第五回合(Round 5)。从平均路径长度、平均指令长度和全景图覆盖率可以看出,我们划分的数据子集呈现出明显的阶梯特征。这说明我们对数据集难度的划分是合理的。新数据集被称为为课程学习设计的R2R数据集(R2R for curriculum learning dataset,CLR2R dataset)。

有许多方法可以应用在 CLR2R 数据集上。如果我们将每个子集都视为一个课程,则 CLR2R 适用于自动课程学习。如果我们将整个数据集视为一个大课程,则每个回合中的样本应被赋予相同的优先级,因此可以使用自定进度的课程学习。在本文中,我们将重点放在后一种模式上。

由 Jiang 等人提出的自定进度课程学习(Self-Paced Curriculum Learning,SPCL)是一种“师生协作”学习方法,它在统一框架中考虑了训练之前人类对于数据的先验知识和训练过程中智能体对数据的学习进度。具体而言,SPCL 的目标损失函数定义为

其中 表示参数化的导航智能体, 是反映样本重要性的权重变量。 称为控制学习方案的自定进度函数, 是限制学习速度的超参数。 是编码预定课程表(predetermined curriculum)信息的可行区域。本文将 CLR2R 数据集看作一个完整的课程。因此每个回合中的样本应被赋予相同的课程等级。因此,在 CLR2R 数据集上只需 5 个标量就足以定义课程区域的参数向量。Jiang 等人讨论了一些自定进度函数的具体形式,在本文中, 我们主要关注两种较为简单的自定进度函数:二进制方案(binary scheme)和线性方案(linear scheme)。

容易发现,公式(1)中的两个参数是可以交替优化的。具体而言,对于参数 的优化是一个凸优化问题,

在 和简单自定进度函数的条件下具有封闭解。本质上公式(2)是一个线性约束凸优化问题。对于一般的课程区域 我们可以应用投影梯度下降法(Projected Gradient Descent,PGD)来获得最优权重 。

通常, 公式(1)中的优化问题可以采用交替凸搜索算法(Alternative Convex Search,ACS)求解。原始算法的主要问题是在第 4 步,其中使用固定的最新权重向量 来学习最佳模型参数 。在基于神经网络的导航智能体的训练中,由于梯度下降方法优化的神经网络缺乏全局最优保证以及计算复杂度问题,我们不可能计算的确切最优值。因此本文建议无需计算确切的最小值,将原算法中的第 4 步替换为机器学习训练范式中的多个梯度下降更新步骤。这样做能使算法的速度加快,并且此时权重向量 实际上是通过考虑 “当前”学习进度而不是 “最终” 学习进度来更新的。

03 Experiments

3.1 Setup

在实验中,我们采用了三种训练范式

机器学习: 对训练数据集进行一致采样(Uniform Sampling),采样得到的数据作为批数据(mini-batch)呈递给模型进行学习。

朴素课程学习(Naïve Curriculum Learning):对训练集中的样本从易到难进行排序,按照从易到难的顺序将样本呈递给模型进行学习。具体而言, 智能体首先在 CLR2R 数据集的 Round 1 子集上进行学习, 然后在 Round 1~2 子集上进行学习, 最终在集合 Round 1~5 (也就是 R2R 的训练集) 上进行学习。

自定进度课程学习(Self-Paced Curriculum Learning):如前所述,为了应用 SPCL 算法,我们需要首先确定课程区域和自定进度函数。对于课程区域,我们假设 CLR2R 数据集中每个 Round 子集中的样本都具有相同的难度,因此我们设置 Round 。对于自定进度的函数,由于在导航任务中每个样本对于的损失 是不受限的,因此我们选择二进制方案和线性方案。

3.2 Results

主要结果:下表提供三个 SOTA 智能体在不同的训练设置下在验证集的上的实验结果。实验表明,采用自定进度课程学习训练的智能体在已见和未见的验证划分上都可以达到最佳性能。

学习速率:整体而言,相比于传统机器学习,采用自定进度课程学习训练的智能体在迭代相同的次数之后可以获得更优的性能表现。相同精度的结果,采用自定进度课程学习所需要的循环次数大大减少。这说明自定进度课程学习不仅可以提升模型的性能,还可以优化模型的训练效率。

SPCL 超参数鲁棒性:为了理解权重 初始化和步长 的选择对自定进度课程学习的影响,我们对这两个超参数进行网格搜索,结果如图所示。下图表明,自定进度课程学习对权重初始化和步长选择并不敏感,在大多数情况下采用自定进度课程学习训练的导航智能体在验证集上的结果都要优于机器学习基准。

损失地形:为了探究自定进度课程学习为何能够提升导航智能体的性能,我们遵循计算机视觉分析批归一化采用的方法,通过计算最大和最小损失之间的距离来研究智能体训练期间的损失地形。结果如图所示。一般而言,我们的实验结果与理论结果一致,即课程学习可以有效地平滑优化环境、改善损失地形。

迁移学习:使用课程学习训练 的智能体既可以保持在 R2R 数据集上的导航性能,也能够迁移到 RxR-en 数据集上完成更难的导航任务。

b9401ff0-412b-11ec-b939-dac502259ad0.png

与预训练方法结合:为了探究采用课程学习范式训练的导航智能体是否也可以从预训练方法中受益,我们将智能体与基于视觉语言 Transformer 的模型 VLN-BERT(Majumdar 等,2020)相结合。我们将束搜索大小限制为 5,并纯粹使用 VLN-BERT 模型来评分和选择路径-指令对。在未见验证划分上的结果如图所示。Beam search 和 VLN-BERT 都可以提高智能体的导航性能。通过基于课程的方法训练的导航智能体获得更多改进。

04 Conclusion

我们首先建议将有关训练样本的人类先验知识整合到导航智能体的训练过程中,首先提出采用课程学习对导航智能体进行训练。

我们为视觉语言导航任务设计了第一个课程,并基于 Room-to-Room ( ) 数据集构建了可用于课程学习的第一个 VLN 数据集。

我们采用自定进度课程学习提出了一种导航智能体的训练范式。这种训练范式能在不增加模型复杂度的前提下提高智能体的训练效率和性能。

我们验证了课程学习的作用是平滑损失函数 (smooth loss landscape),从而加速学习进度、使智能体收敛到更好的局部最优点。

我们进一步的实验表明,课程学习适用于迁移学习,并能与预训练方法相结合。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器视觉
    +关注

    关注

    163

    文章

    4728

    浏览量

    125008
  • 导航
    +关注

    关注

    7

    文章

    570

    浏览量

    43725

原文标题:NeurlPS2021 | 视觉语言导航的课程学习

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么建议用匿名结构

    说起匿名结构,想必大家第一感觉就是看着好高大上的名字,但实际上也就那样。 typedef struct { union { struct { uint8_t bit_0:1
    发表于 12-04 07:39

    C语言结构使用

    有时候需要将不同类型的数据组合为一个整体,以便于引用。例如,一名学生有学号、姓名、性别、年龄等属性,如果针对每个属性都单独定义一个变量,那么当有多名学生时变量就难以分清。结构就是用来管理不同类
    发表于 11-12 08:30

    灌封胶导热粉绝缘情况下、对电阻率有没有提升

    确保使用绝缘类导热粉且分散良好的前提下,灌封胶的电阻率不仅不会下降,反而可能得到显著的维持、稳定甚至间接提升。 这是一个看似矛盾但至关重要的概念。许多人担心添加任何填料都可
    的头像 发表于 10-30 14:55 177次阅读

    当不同的数据放在同一个Flash页面上时,请问如何在不影响其他数据情况下更改一些单独的数据

    当不同的数据放在同一个Flash页面上时,如何在不影响其他数据情况下更改一些单独的数据
    发表于 08-22 06:25

    CX3 Vsync Hsync时序参数如何修改

    请问关于CX3 max96705 接max9296,可以修改MAX96705 的VS 讯号达到CX3 可以解出VS 跟HS,但如果不修改MAX96705 的情况下,我可以改什么参数上CX3 可以一样也出VS 跟HS 。
    发表于 07-24 07:00

    操作说明|修改DJZ1226直流电能表通讯地址

    非必要,不修改
    的头像 发表于 07-11 14:58 424次阅读
    操作说明|<b class='flag-5'>修改</b>DJZ1226直流电能表通讯地址

    请问CYW20835sleep mode的情况下,不进入SDS或HIDOF的情况下,底电流最低是多少?

    请问CYW20835sleep mode的情况下,不进入SDS或HIDOF的情况下,底电流最低是多少?
    发表于 07-07 07:54

    IAR Arm开发工具链中--function_sections编译选项的使用

    本文主要介绍IAR Arm开发工具链中不修改源代码的情况下使用‑‑function_sections编译选项把函数放到单独的section。
    的头像 发表于 06-13 13:53 1513次阅读
    <b class='flag-5'>在</b>IAR Arm开发工具链中--function_sections编译选项的使用

    在外部实质信号突变的情况下,经过AD9278采集到的数据突然变小,为什么?

    应用场景:使用AD9278采集超声信号 问题:在外部实质信号突变的情况下,经过AD9278采集到的数据突然变小!!!为什么??? 如果将TGC减小,这个突然变暗的点会往下移, 但是通过FPGA抓到
    发表于 06-10 06:39

    FX2LP如何在更改硬件的情况下对其进行重新编程?

    我正在使用 FX2LP/ CY7C68013A-128AXC设备(定制板),我有一些问题需要您的帮助。 1如果我的 EEPROM 已经有固件并且正在运行,如何在更改硬件的情况下对其进行重新
    发表于 05-06 11:16

    LT35805V出入的情况下,如何修改匝数比和反馈电阻,输出200V电压?

    LT35805V出入的情况下,如何修改匝数比和反馈电阻,输出200V电压
    发表于 04-24 06:12

    学习智能开发

    智能是大模型的应用落地,正在学习中,这本书太及时了,非常想看看。
    发表于 03-27 15:48

    基于液压系统模型的电机控制

    、多个阶段的响应问题以及难以调整的问题上表现得并不理想。因此,我们发现在某些情况下,甚至比开环控制更差。而如果单纯使用开环控制就要求液压系统非常精确地控制模型,这在工程上是很难做到的。本研究基于直流无刷
    发表于 03-07 14:52

    ADS1298在用3.0V供电的情况下,是不是要在输入的INP、INN上分别加一个共模电压1.5V(提升电平)和信号输入?

    ADS1298使用模拟单电源供电,根据数据手册Figure 26,在用3.0V供电的情况下,意思是不是要在输入的INP、INN上分别加一个共模电压1.5V(提升电平)和信号输入?这样才能是电平
    发表于 02-11 07:52

    VDD1没有供电的情况下,VDD2正常供电的情况下,AMC1200的输出应该是什么状态?

    请教一,在前端VDD1没有供电的情况下,VDD2正常供电的情况下,AMC1200的输出状态为什么P端是3.8V ,N端是1.2V ,每一次都是这样子, 请问,VDD1没有供电的
    发表于 12-17 07:37