学界 | 抛弃黑箱,斯坦福大学与Facebook提出程序生成式图像推理模型

选自arXiv

作者:Justin Johnson等

机器之心编译

参与:李泽南

去年 12 月,斯坦福大学联合 Facebook 推出了一个用于组合式语言和初级视觉推理的诊断数据集 CLEVR,可用于测试许多视觉推理能力。近日,斯坦福大学李飞飞组与 Facebook FAIR 团队又在这一数据集的基础上取得了进一步的成果,提出了一种新的视觉推理(Visual Reasoning)模型。机器之心在本文中对该研究的部分内容进行了编译介绍。该研究的模型目前已经开源。

深度学习著名学者 Yann LeCun 在社交网络上也分享点评了这项研究:「在为视觉推理和问答学习生成程序上的非常棒的新成果。」

  • 论文链接:https://arxiv.org/abs/1705.03633
  • 研究演示页面:http://cs.stanford.edu/people/jcjohns/iep/
  • GitHub 项目(Pytorch):https://github.com/facebookresearch/clevr-iep

在论文中,研究者称该方法成功摆脱了深度学习黑箱状态的缺陷,从而让模型可以摆脱数据集偏见的影响。在仅接受少量训练后,该模型即可学会产生可用的程序;同时,它比典型的深度学习系统更加透明:通过 LSTM,模型可为不同任务创建可解释的程序,这使我们能够得知系统尝试回答问题的「思路」。此外,该模型能够概括人类提出的问题——而不是仅仅通过搜索训练数据来完成这个任务。

论文:推理和执行视觉推理程序(Inferring and Executing Programs for Visual Reasoning)

摘要

现有的视觉推理方法通常使用黑箱架构将输入映射到输出,而没有对其中的推理过程建模。于是,这些黑箱模型经常在学习过程中受到数据偏差的影响,而导致图像推理的错误。受到网络模块的启发,本论文提出了一种视觉推理模型,其中包括一个程序生成器(program generator)——该组件构造要执行的推理过程的显式表示;以及一个执行引擎(execution engine)——执行生成的程序以产生答案。程序生成器和执行引擎均由神经网络实现,并都使用了反向传播和强化学习的组合进行训练。在 CLEVR 视觉推理基准上,我们展示了新模型具有显著强于其他方法的性能,并在进行设置后具有推广到多种任务上的潜力。

正如前文所述,该模型有两个组件构成:

  • 程序生成器:读取问题文本,输出可执行解答问题的程序。程序生成器是由 LSTM sequence-to-sequence 模型实现的。
  • 执行引擎:负责对图像执行生成出的程序以产生答案,由神经网络模块实现。

它们是互相独立训练的基础功能模块,这些模块根据预测的程序进行组合,为每个问题提供专属的神经网络架构。

图 1. 系统结构示意

图 2. 组合推理是无人机导航、自动驾驶、监视摄像头等应用中在复杂环境下所需的关键功能,然而目前的机器学习方式无法有效实现这样的能力。

图 3. 模型对预测答案最终特征图的分数之和进行了规范化和可视化。从左至右,每个问题都会向程序增加一个模块,在上图中,增加的模块用下划线表示。中间的可视化图说明了当执行问题回答的推理时模型所关注的热点区域。

图 5. 该方法和其他方式在 CLEVR-CoGenT 数据集上的回答问题准确度对比(数字越高越好)。

图 5 上表:研究者们用条件 A 训练了模型,随后在条件 A 和条件 B 下测试模型的性能。然后,研究者们将这些模型在条件 B 中用 3000 个图片和 30,000 个问题进行了微调,再在 A、B 条件中进行了测试。新模型在条件 A 中使用了 18,000 个程序,而在条件 B 的微调中没有使用任何程序。最后,他们研究了在条件 B 上进行微调时使用不同数量的数据的影响。

图 7. CLEVR-Humans 数据集中的问题示例,以及新模型预测的程序和答案。没有出现在 CLEVR 中的问题被加上了下划线。一些预测的程序与问题的语义完全匹配(绿色);一些程序与问题语义非常匹配(黄色);一些程序与问题无关(红色)。

CLEVR-Humans 数据集是有关 CLEVR 数据集中图片的问题组成的数据集,目前由包含 17,817 个问题的训练集,7,202 个问题的验证集和 7,145 个问题的测试集组成。斯坦福大学表示将在最近将其开源。

研究者们认为,该模型可以通过训练后的模组对新场景生成概括和问题,这些学习模块甚至可以推断自由形式的人类问题。虽然这些结果令人鼓舞,但仍然有许多问题不能使用该方法固定的模块组合来解决。例如,问题「具有独特形状物体的颜色是什么?」需要一个模块来识别相对特殊的形状,目前没有模块可以处理这样的任务。由于该模型通用的模块设计,将模块添加到模型中是很简单的事情,但是在没有监督的情况下自动识别和学习出新模块仍是理论上最好的形式。一个前进的道路是设计一个图灵完整的模块集,这样可以在不学习新模块的情况下表达所有程序。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

Keras 之父讲解 Keras:几行代码就能在分布式环境训练模型

AI研习社按:在今年的谷歌开发者大会 I/O 2017 的讲座中,Keras 之父 Francois Chollet 被请出来向全世界的机器学习开发者进行一场对...

56250
来自专栏大数据文摘

忽悠神经网络指南:教你如何把深度学习模型骗得七荤八素

27750
来自专栏CVer

KDD 2018 | OCR 神器来了

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

67330
来自专栏机器之心

开源 | Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型

项目地址:https://github.com/NervanaSystems/distiller/

52430
来自专栏机器学习之旅

应用:交叉销售算法

最近做了一个交叉销售的项目,梳理了一些关键点,分享如下,希望对大家有所启发 核心目标:在有限资源下,尽可能的提供高转化率的用户群,辅助业务增长 初步效果:商...

7410
来自专栏新智元

基准评测 TensorFlow、Caffe、CNTK、MXNet、Torch 在三类流行深度神经网络上的表现(论文)

【新智元导读】新年伊始,新智元向你推荐香港浸会大学计算机学院褚晓文团队最新论文《基准评测当前最先进的深度学习软件工具》,评测了 Caffe、CNTK、MXNet...

79980
来自专栏BestSDK

深度学习 VS 深度克隆,谁才是解决聊天机器人的最佳方法?

对话式 AI (聊天机器人)涉及到三个维度的问题:(1)语言技能(2)知识获取(3)对话行为。 这三者虽然强相关,但人类大脑通过单独的实验,在不同的时间段内,可...

32550
来自专栏CDA数据分析师

R语言中的情感分析与机器学习

利用机器学习可以很方便的做情感分析。本篇文章将介绍在R语言中如何利用机器学习方法来做情感分析。在R语言中,由Timothy P.Jurka开发的情感分析以及更一...

23390
来自专栏ATYUN订阅号

谷歌开源基于TensorFlow的通用框架AdaNet,快速且易于使用

Ensemble learning结合不同机器学习模型预测,被广泛用于神经网络以实现最先进的性能,得益于丰富的历史和理论保证,成功的挑战,如Netflix奖和各...

8620
来自专栏深度学习之tensorflow实战篇

机器学习人群扩散(LPA算法) R实现

1、 业务场景说明: 2、 从业务映射到机器学习: 3、 友商应用资料: 4、 LPA方法原理:[1][3] 5、 特征过滤的解决方案:[4] 6、 R语言试验...

66070

扫码关注云+社区

领取腾讯云代金券