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

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

3天内不再提示

COG数据集基于一种编程语言

DPVg_AI_era 来源:未知 作者:李倩 2018-03-23 15:54 次阅读

在认知心理学和神经科学中丰富的视觉推理和记忆传统的启发下,我们开发了一个人工的、可配置的视觉问题和答案数据集(COG),用于在人类和动物中进行平行实验。COG比视频分析的一般问题要简单得多,但它解决了许多与视觉、逻辑推理和记忆有关的问题——这些问题对现代的深度学习架构来说仍然具有挑战性。

可以这样说,人工智能中一个令人烦恼的问题是对发生在复杂的、不断变化的视觉刺激中的事件进行推理,比如视频分析或游戏。在认知心理学和神经科学中丰富的视觉推理和记忆传统的启发下,我们开发了一个人工的、可配置的视觉问题和答案数据集(COG),用于在人类和动物中进行平行实验。COG比视频分析的一般问题要简单得多,但它解决了许多与视觉、逻辑推理和记忆有关的问题——这些问题对现代的深度学习架构来说仍然具有挑战性。此外,我们还提出了一个深度学习架构,它在其他诊断VQA数据集(例如CLEVR)和COG数据集的简单设置上表现得非常出色。然而,一些COG的设置会导致数据集变得越来越难以进行学习。训练结束后,该网络可以零次泛化到许多新任务中。对在COG上训练的网络架构的初步分析表明,该网络以一种人类可解释的方式完成了任务。

图1:来自COG数据集的图像和指令样本序列。COG数据集中的任务对目标识别、关系理解以及记忆的操作和调整以解决问题。每个任务都可以涉及当前图像和之前图像中所显示的目标。 需要注意的是,在最后一个样本中,指令涉及的是“last”,而不是“last b”。前者排除图像中当前的“b”。(白色箭头)显示了每个图像的目标指示响应。为了清晰起见,使用高分辨率图像和适当的英语表示。

人工智能的一个主要目标是建立一个能够强大且灵活地推理出感官环境的系统。视觉提供了一个非常丰富和高度适用的领域,用以锻炼我们建立一个能够对复杂刺激物形成逻辑推理的系统的能力。研究视觉推理的一个途径是视觉问题回答(VQA)数据集,其中,模型学习该如何正确回答关于静态图像的具有挑战性的自然语言问题。虽然在这些多模态数据集的研究上取得了非常显著的成果,但这些数据集突出显示了当前方法所存在的若干局限性。首先,在VQA数据集上进行训练的模型的训练程度无法确定,仅仅是遵循图像中固有的统计信息,而不是对问题的逻辑组成部分进行推理。其次,这些数据集避免了时间和记忆的复杂性,而这两个因素在智能体设计、视频的分析和总结中具有至关重要的作用。

图2:组合型COG数据集的生成。COG数据集基于一组操作符(A),它们被组合以形成各种任务图形(B)。(C)通过指定图形中所有运算符的属性来对任务进行实例化。任务实例用于生成图像序列和语义任务指令。(D)正向执行图形和图像序列以执行常规任务。(E)生成一致的、具有最小偏差的图像序列需要以逆向拓扑顺序反向通过图形,并按逆时间顺序通过图像序列。

为了解决VQA数据集中有关空间关系的逻辑推理所存在的不足,Johnson及其同事最近提出使用CLEVR直接对基本视觉推理模型进行测试,以便与其他VQA数据集一起使用。CLEVR数据集提供了人工的、静态的图像以及有关这些图像的自然语言问题,从而锻炼模型执行逻辑和视觉推理的能力。最近的研究结果表明,网络以接近完美的精确度取得了令人印象深刻的性能表现成绩。

在这项研究中,我们解决了视觉推理中关于时间和记忆的第二个局限性问题。推理智能体必须记住其视觉历史的相关部分,忽略不相关的细节,根据新的信息更新和操作记忆,并在接下来的时间里利用此记忆做出决策。我们的方法是创建一个人工数据集,它具有时间变化数据中所存在的许多复杂性,同时也避免了在处理视频时所遇到的许多视觉复杂性和技术难度性问题(例如,视频解码、跨时间平滑帧的冗余)。特别是,我们从认知心理学(cognitive psychology)和现代系统神经科学(modern systems neuroscience)的几十年研究中获得灵感,在这些领域中,长期以来都是将视觉推理解剖为基于空间和逻辑推理、记忆组合性和语义理解的核心组件。为了实现这一目标,我们建立了一个人工数据集—COG,能够执行与人类认知实验同时进行的视觉推理。

图3:所提出网络的架构图

COG数据集基于一种编程语言,该语言构建一系列任务三元组:一个图像序列、一个语言指令和一系列正确的答案。这些随机生成的三元组在大量任务中进行视觉推理,并需要文本的语义理解、序列中每个图像的视觉感知以及工作记忆,从而确定随时间不同变化的答案(如图1所示)。我们对编程语言中的若干个参数进行了强调,从而使研究人员能够将问题难度按照从容易到具有挑战性进行设置调整。

最后,我们引入了一个多模态循环体系结构,用于进行记忆视觉推理。该网络将语义和视觉模块与状态控制器相结合,对视觉注意力和记忆进行调节,以便正确执行视觉任务。经过一系列的研究,我们证明这个模型在CLEVR数据集上达到了近乎最先进的性能表现。此外,该网络提供了一个强大的基线,可以在一系列设置中的COG数据集上实现良好的性能表现。通过消融研究和网络动力学分析,我们发现该网络采用的是人类可解释的注意力机制来解决这些视觉推理任务的。我们希望COG数据集、相应的体系结构以及相关的基线能够为随时间变化的视觉刺激推理的研究提供有用的基准。

图4:通过单个CLEVR样本的注意力和输出,对提出网络的思考过程进行可视化。(A)来自CLEVR验证集的样本问题和图像。(B)每个思考步骤的有效特征注意力图。(C)相对空间注意力图。(D)语义注意力。(E)前五名的语言输出。红色和蓝色分别表示更强和更弱。在同时关注到“小金属球体”的特征注意力和“红色橡胶物体后面”的空间注意力之后,在语言输出中反应了有关物体的颜色(黄色)。后来在思考过程中,网络关注了“大哑光球”的特征注意力,而同时语言输出中出现了正确答案(yes)。

在该项研究中,我们建立了一个合成的、组合型数据集,该数据集需要一个系统能够基于英语指令对图像序列执行各种任务。我们COG数据集中包含的任务,测试了一系列认知推理技能,尤为重要的是,这需要对过去的目标有显式记忆(explicit memory)。该数据集拥有最小偏差和高度可配置性,旨在通过大量的指定性任务生成丰富的性能指标。

我们还构建了一个循环神行网络模型,该模型利用注意力机制和门控机制,以一种自然的,且具有人性化的方式处理COG数据集。除此之外,该模型还在另一个名为CLEVR的视觉推理数据集上实现了近乎最先进的性能表现。该模型使用循环控制器来关注图像和指令的不同部分,并以一种迭代的方式生成语言输出。这些迭代注意力信号为模型的逐步思考过程提供了多个窗口,并为模型该如何将复杂的指令分解为更小的计算提供了线索。最后,该网络可以即刻泛化到完全未经训练的任务上,从而展现出对新任务的零次学习(zero-shot)能力。

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

    关注

    10

    文章

    1936

    浏览量

    34571
  • 人工智能
    +关注

    关注

    1791

    文章

    46736

    浏览量

    237292
  • 数据集
    +关注

    关注

    4

    文章

    1205

    浏览量

    24628

原文标题:纽约大学联合谷歌大脑提出「COG」数据集,可提高系统的「视觉推理」能力

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言编程(免费版)

    C语言编程(免费版)
    发表于 08-20 17:29

    C语言编程技巧程序

    本帖最后由 lee_st 于 2016-11-7 09:59 编辑 C语言编程技巧程序1
    发表于 11-07 09:58

    C语言编程技巧程序

    C语言编程技巧程序:dos命令扩充,给硬盘加锁,外设的软锁和解除,DIR功能扩充,鼠标在程序设计中的应用等内容。
    发表于 08-04 15:14 107次下载
    C<b class='flag-5'>语言</b><b class='flag-5'>编程</b>技巧程序<b class='flag-5'>集</b>

    C语言编程

    电子发烧友网为大家提供了C语言编程,希望对您有所帮助,本站资源全是免费,如果您觉得本站不错,请把电子发烧友网推荐给您的朋友!
    发表于 11-07 17:33 0次下载

    基于图形化编程语言Labview的一种虚拟仪器的实现

    基于图形化编程语言Labview的一种虚拟仪器的实现。
    发表于 01-20 16:26 19次下载

    一种数据混合累加电路设计

    一种数据混合累加电路设计_胡浩
    发表于 01-07 20:49 4次下载

    编程能力是一种解决问题的能力

    编程能力是一种解决问题的能力。如果问题没能被很好地解决,知道再多也没用。 编程能力是一种运用机器解决问题的能力。首先是要判断问题在什么程度上可被机器解决,比如理论计算机科学会告诉我们什
    发表于 10-12 10:52 0次下载

    arduino用什么语言编程

    Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两语言,C语言一种面向过程的编程
    发表于 11-08 15:21 7w次阅读

    Java编程和c语言一种更有优势_C语言与JAVA的区别是什么

    软件开发编程语言多达600余种,每种都有各自的特点和应用领域。目前,在国内,最热的几门编程语言无外乎Java、C、C++了,Java和C同为面向对象
    的头像 发表于 02-05 17:23 2.5w次阅读

    vb编程语言是做什么用的_VB编程语言有哪些

    编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种
    的头像 发表于 03-13 16:52 8.3w次阅读

    机器学习中最流行的10编程语言

    去学习一种新的编程语言呢?如果作为名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程
    的头像 发表于 01-01 11:02 3922次阅读

    2021年程序员必学的五编程语言

    如果您是编程新手,不知道从哪里开始,这篇文章正好适合您。现在有超过100编程语言(Goolge说有700多种),所以有很多选择。选择第一种
    的头像 发表于 03-01 15:52 8145次阅读

    Python是一种什么语言,它可以用来做些什么

    智慧人生,首选Python Python是一种什么语言? Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程
    发表于 04-12 10:56 1271次阅读

    Python编程语言属于什么语言

    Python编程语言属于高级编程语言中的一种。它是一种通用、面向对象、解释型
    的头像 发表于 11-22 14:31 1358次阅读

    编程语言之间的区别和联系

    、背景和发展 Python:Python由Guido van Rossum于上世纪90年代初开发,以其简洁、易读的语法和丰富的第三方库而受到广泛欢迎。它是一种高级编程语言,尤其擅长数据
    的头像 发表于 02-05 14:16 1406次阅读