选自arXiv
作者:Justin Johnson等
机器之心编译
参与:李泽南
去年 12 月,斯坦福大学联合 Facebook 推出了一个用于组合式语言和初级视觉推理的诊断数据集 CLEVR,可用于测试许多视觉推理能力。近日,斯坦福大学李飞飞组与 Facebook FAIR 团队又在这一数据集的基础上取得了进一步的成果,提出了一种新的视觉推理(Visual Reasoning)模型。机器之心在本文中对该研究的部分内容进行了编译介绍。该研究的模型目前已经开源。
深度学习著名学者 Yann LeCun 在社交网络上也分享点评了这项研究:「在为视觉推理和问答学习生成程序上的非常棒的新成果。」
在论文中,研究者称该方法成功摆脱了深度学习黑箱状态的缺陷,从而让模型可以摆脱数据集偏见的影响。在仅接受少量训练后,该模型即可学会产生可用的程序;同时,它比典型的深度学习系统更加透明:通过 LSTM,模型可为不同任务创建可解释的程序,这使我们能够得知系统尝试回答问题的「思路」。此外,该模型能够概括人类提出的问题——而不是仅仅通过搜索训练数据来完成这个任务。
论文:推理和执行视觉推理程序(Inferring and Executing Programs for Visual Reasoning)
摘要
现有的视觉推理方法通常使用黑箱架构将输入映射到输出,而没有对其中的推理过程建模。于是,这些黑箱模型经常在学习过程中受到数据偏差的影响,而导致图像推理的错误。受到网络模块的启发,本论文提出了一种视觉推理模型,其中包括一个程序生成器(program generator)——该组件构造要执行的推理过程的显式表示;以及一个执行引擎(execution engine)——执行生成的程序以产生答案。程序生成器和执行引擎均由神经网络实现,并都使用了反向传播和强化学习的组合进行训练。在 CLEVR 视觉推理基准上,我们展示了新模型具有显著强于其他方法的性能,并在进行设置后具有推广到多种任务上的潜力。
正如前文所述,该模型有两个组件构成:
它们是互相独立训练的基础功能模块,这些模块根据预测的程序进行组合,为每个问题提供专属的神经网络架构。
图 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 个问题的测试集组成。斯坦福大学表示将在最近将其开源。
研究者们认为,该模型可以通过训练后的模组对新场景生成概括和问题,这些学习模块甚至可以推断自由形式的人类问题。虽然这些结果令人鼓舞,但仍然有许多问题不能使用该方法固定的模块组合来解决。例如,问题「具有独特形状物体的颜色是什么?」需要一个模块来识别相对特殊的形状,目前没有模块可以处理这样的任务。由于该模型通用的模块设计,将模块添加到模型中是很简单的事情,但是在没有监督的情况下自动识别和学习出新模块仍是理论上最好的形式。一个前进的道路是设计一个图灵完整的模块集,这样可以在不学习新模块的情况下表达所有程序。