李飞飞发表研究新成果:视觉推理的推断和执行程序(HR)

2023-05-16

原文

论文导读:目前进行视觉推理的方法都是通过黑箱结构将输入直接映射到输出,而不是对潜在的推理过程进行明确建模。这样一来,黑箱模型学习到的是利用数据内的偏置而不是学习进行视觉推理的过程。受到模块化网络的启发,本文提出了一个视觉推理模型,由一个程序产生器和一个执行引擎构成,程序产生器用来构造进行推演的推理过程的明确表示,执行引擎能够执行生成的程序来产生答案。程序产生器和执行引擎都是通过神经网络实现的,并且用后置算法和增强算法结合进行训练。作者使用CLEVR基准来评测视觉推理,实验证明该模型显著优于强基准,并且各种设置下泛化能力更强。


问题导入:在很多应用中,计算机视觉系统需要通过对视觉世界的推理来回答复杂的问题。为了处理新的物体之间的相互作用,或者物体属性的组合,视觉推理需要是组合型的:即使一个模型没有人在摸自行车的先验知识,它也应该能通过把它对自行车的意思结合起来理解这个短语。这样的组合推理是人类智慧的一个标志,它能让人们用有限的基本技能解决大量的问题。

 


组合推理是实际应用中遇到的需要理解复杂视觉场景不可或缺的一部分,例如机器导航,自动驾驶,以及监控。目前的模型都无法完成这样的推理。


主要算法

 

作者提出了一个用于视觉提问回答的可学习的组合模型。该模型将图像和关于图像的视觉问题作为输入。模型从固定的可能答案集中选择出对应问题的一条回答。在其内部,模型预测出一个程序来表示需要回答该问题的推理步骤。然后,该模型在图像上执行预测的程序,产生一个答案分布。

 


系统框图:程序产生器是一个序列到序列模型,将问题作为一序列单词输入,然后输出一个函数序列作为程序,其中,序列可视为为程序抽象语法树的前缀遍历。执行引擎在图像上执行程序,通过组合一个模块化的神经网络来镜像预测程序的结构。


程序

作者通过一个预先设置的函数集F来定义语法。由于作者感兴趣的地方在于视觉问题回答,他们将场景常量包括在词典中,代表图像的视觉特征。我们用语义树来表示有效的程序,每个节点都包含一个函数,在其中每个节点的子代和函数的参数数量一样多。


程序产生器

程序产生器从以词序列来表示的自然语言问题中预测程序。作者使用前缀遍历来序列化语义树,它本来是一个非连续离散结构,将其转换为函数序列。然后便可以使用标准LSTM序列到序列模型来实现程序产生器。


执行引擎

给定一个预测程序和输入图像,执行引擎在图像上执行程序,来预测答案。执行引擎通过模块化的神经网络来实现:用生成的程序来组合针对该问题的神经网络,网络通过一系列模块组成。对于每个函数集中的函数f,执行引擎都含有一个神经网络模块mf。给定程序z,执行引擎按程序定义的顺序将每个函数f映射到其对应的模型mf,来产生一个神经网络m(z)子模块的输出作为相应父模块的输入。


实验内容


强监督及半监督学习

 


CLEVR数据集上基准模型,人工和我们的模型的三个变体的问题回答准确率对比。我们模型的强监督版本使用了所有的700000真实值程序进行训练,而半监督版本分别使用了900018000真实值程序进行训练。人工表现通过CLEVR的一个5500的子集进行测量。结果显示使用强监督,我们的模型在CLEVR数据集上可以达到近乎完美的准确率。(甚至比亚马逊的Mechanical Turk的人工还要准确)。


预测程序(左)和答案(右)的准确率与真实值程序数量的关系图。蓝色和绿色分别给出了微调之前和之后的准确率。点线表示强监督模型的准确率。


模型学到了什么?


CLEVR-CoGenT数据集是用来研究VQA模型进行组合泛化的能力。该数据集包含两个情况下的数据:Condition A中,所有的立方体都是灰色,蓝色,棕色或黄色的,所有的圆柱体都是红色,绿色,紫色或青色的。Condition B中,立方体和圆柱体交换了颜色模式。

 


根据最终特征图,对预测的答案分数总和的梯度范数可视化结果。从左到右,每个问题都为程序添加了一个模块,新的模块是问题中的下划线部分。可视化结果说明了模型在对哪个目标进行问题回答的推理过程。图像来自验证集。

 

结果显示,我们的模型仅用10000个问题和1000张图片就可以学习到新属性的组合,并且优于同样训练的基准线。我们认为这是由于模型的组合特性使其能从很少的训练数据中快速学习属性的新语义,例如红色


对新的属性组合的泛化能力



CLEVR-CoGenT数据集上的问题回答准确率。上:我们在Condition A数据上训练模型,然后分别在Condition ACondition B上对模型进行测试。然后我们使用3000张图片和30000个问题,在Condition B上对模型进行微调,然后再次对两个Condition分别进行测试。在Condition A上训练时,该模型使用了18000个程序,但是在Condition B上进行微调时没有使用任何程序。下:我们研究了使用不同数量数据在Condition B上进行微调的影响。我们展示了整体的准确率以及对颜色提问和对形状提问的准确率。


对新问题类型的泛化能力

 


分别在短的和长的CLEVR问题上的回答准确率。左列:仅在短问题上训练的模型。模型使用了25000个真实值短程序进行训练。右列:在短问题和长问题上进行的训练。模型在短问题上进行训练,然后在整个数据集上进行微调。微调时没有用任何实值程序。

 


模型在短问题上训练时,程序和答案预测不正确的长问题示例,但是在模型在长问题上微调之后,程序和答案都能正确预测。


对人提出问题的泛化能力

 


CLEVR-Humans数据集的问题示例,以及模型预测的程序和答案。CLEVR数据库中没有出现的问题答案进行了下划线。一些预测的程序能和问题的语义进行准确匹配(绿色),一些程序和问题语义紧密匹配(黄色),而一些程序和问题似乎没有关系(红色)。

 


四个模型只在CLEVR数据集(左)训练,以及在CLEVR-Humans数据集的微调(右),在CLEVR-Humans数据测试集的问题回答准确率。

 

结论

本文通过一个长线工作,将符号表示整合入(神经)机器学习模型。我们的结果显示,清晰的程序表示可以使用来回答关于图像的新问题的组合程序变得更简单。作者提出的整体程序表示,可学习程序产生器和模块化统一设计让模型比神经模块网络更具灵活性,并且更容易扩展到新的问题和领域。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

李飞飞发表研究新成果:视觉推理的推断和执行程序(HR) 的相关文章

  • SSH设置超时时间

    转载自 https blog csdn net cheng830306 article details 21796865 ssh连接超时问题解决方案 xff1a 1 修改server端的etc ssh sshd config ClientA
  • Win10+RTX2060安装TensorFlow+Keras

    Win10 43 RTX2060安装TensorFlow 43 Keras Author Gary Date 2019 6 8 参考资料 https blog csdn net qq 32728345 article details 815
  • Radix Tree总结

    Date 2019 6 19 主要转载自 https www cnblogs com mingziday p 3969269 html https blog csdn net qq 22613757 article details 9104
  • HTTP防劫持方案

    DNS污染检测 被改标题 被挂黑链 被入侵 检测网站是否被劫持 网站打开速度检测 网站是否被黑 域名是否被墙 网站监控 http www iis7 com b wzjk inviteCode 61 496 HTTP劫持是在使用者与其目的网络
  • Linux查看已用空间大小

    查看计算机总容量 df 查看指定文件夹 du h max depth 61 lt 层数 gt lt 需要统计的目录 gt
  • Gcc编译时的-w -W -Wall选项

    今天在看一个makefile时看到了gcc W Wall 这句 xff0c 不明其理 xff0c 专门查看了gcc的使用手册 w的意思是关闭编译时的警告 xff0c 也就是编译后不显示任何warning xff0c 因为有时在编译之后编译器
  • Android8添加arm64系统调用

    Author Gary Date 2019 8 7 Android版本 android 8 1 0 r1 内核版本 Linux 4 4 88 参考文章 https blog csdn net rikeyone article details
  • [RTOS]rtthread,freeRTOS,uCOS等系统简单对比

    在上一篇 嵌入式操作系统浅谈 中 xff0c 大概介绍了我自己再工作中使用到的如rt thread xff0c freeRTOS xff0c uCOS xff0c luatos等系统 xff0c 在这一篇文章中 xff0c 我简单说一下这些
  • Mysql授权允许远程访问解决Navicat for MySQL连接mysql问题 1251错误

    Navicat Premium连接MySQL 1251错误 MySQL Installer 8 0 17 出现上述错误的原因是版本MySQL 8 0 17即8 0开始的MySQL版本 因为采用新的保密方式 而Navicat Premium
  • ubuntu突然进不了图形界面解决方案

    1 环境 Ubuntu 20 04 desktopMacOS Big SurVMware Fusion 2 描述 虚拟机一直开着 xff0c 长时间没有用就自动休眠锁屏了 xff0c 但是发现输密码后进不了桌面 xff0c 只好重启 xff
  • 文档-操作手册与用户手册的区别

    背景 我们都已经了解了操作手册和用户手册都是给用户看的 xff0c 那么两者之间的区别是什么呢 xff1f 为什么要产生这两个文档呢 xff1f 详解 1 操作手册是系统级别的文档 xff0c 而用户手册是需求级别的文档 操作手册讲述的是如
  • msOS使用小结

    在做激关打标机的项目的过程中 xff0c 使用msOS遇到了一些问题 xff0c 和解决方法 xff0c 还有一些小体会 xff0c 现在拿出来分享一下 一 代码移植时遇到的问题 xff1a 激光打标机项目用到一块新的板子 xff0c 所以
  • IntelliJ IDEA添加JavaDOC注释 方法 快捷键

    第一种方法 Settings gt Keymap gt Other gt Fix doc comment gt 右键 gt 选择 Add Keyboard Shortcut xff0c 然后输入自定义的快捷键 默认Fix doc comme
  • 关于ElementUI 项目开发的eslint 报错问题的修复

    介绍 使用操作系统为 Win11Win11 使用教程 1 使用 ElementUI 项目进行开发时因为各自的格式化文档不同难免会遇到各种报错 但是大部分都是因为 单引 分号 逗号 的格式存在报错 2 这时我们在项目的根目录下可以新建一个 p
  • CentOS安装lsusb查看设备串号Serial

    安装lsusb span class hljs built in echo span span class hljs string 34 password 34 span span class hljs built in sudo span
  • VMware虚拟机安装CentOS8连不上网问题

    VMware虚拟机安装CentOS8连不上网 改了半天VMware中CentOS的网卡 xff0c 从 桥接模式 改到 NAT模式 34 都不管用 终极解决方案 1 选中你的虚拟机 xff0c 比如我的CentOS8 2 点击菜单栏中的 编
  • Ubuntu更换软件源

    更换 Ubuntu 的软件源 对于Ubuntu系统 xff0c 不同的版本的源都不一样 xff0c 每一个版本都有自己专属的源 而对于 Ubuntu 的同一个发行版本 xff0c 它的源又分布在全球范围内的服务器上 Ubuntu 默认使用的
  • Eclipse本地运行MapReduce

    环境说明 xff1a Linux环境下已搭建好hadoop集群 xff0c windows本地安装Eclipse 远程启动MapReduce任务 1 下载并安装eclipse插件 xff1a hadoop eclipse plugin XX
  • nvm 管理你的node

    1 安装nvm 2 nvm 管理命令 nvm ls remote 可以会列出所有可用的 Nodejs 版本 nvm install v11 0 0 就可以把这个版本的 Nodejs 安装到我们的机器上了 nvm list 可以查看当前已安装

随机推荐