Learning to Reason: End-to-End Module Networks for Visual Question Answering阅读笔记

    技术2023-03-28  94

    本文提出了端到端模块网络(N2NMNs),它通过直接预测特定于实例的网络布局来学习推理,而无需借助解析器。N2NMNs模型学习生成网络结构,同时学习网络参数(使用下游任务损失)。 一、文章引入 视觉问答(VQA)需要图像和文本的共同理解。这种理解通常依赖于合成推理,例如在场景中定位多个对象并检查它们的属性或将它们相互比较(图1)。 图1:对于每个实例,本文的模型预测一个计算表达式和一系列关注的模块参数化。它利用这些构造出一个具体的网络结构,然后执行组装后的神经模块网络输出一个答案,用于可视化问答。 本文提出了端到端模块网络(N2NMNs):一类能够直接从文本输入预测新的模块化网络结构并将其应用于图像以解决问答任务的模型。与以前的工作相比,本文的方法将语言解析为语言结构,并将它们组合成适当的布局。 本工作综合并扩展了两个用于视觉问题解决的最新模块化体系结构。 标准神经模块网络(NMN)已经提供了一种根据可组合模块的集合构建动态网络结构的技术。 但是,以前的工作依赖于外部解析器来处理输入文本并获得模块布局。 这是一个严重的局限性,因为现成的语言解析器不是为语言和视觉任务设计的,因此必须使用通常无法预测有效布局的人工规则进行修改。 同时,提出的用于将图像中的引用表达式作为基础的组合模块化网络不需要解析器,而是限于固定的(主体,关系,对象)结构。 二、End-to-End Module Networks 本文提出端到端模块网络(N2NMNs)来解决视觉推理任务的组合性问题。模型由两个主要部分组成:一组共同关注的神经模块,为解决子任务提供参数化函数;一个布局策略,用于预测特定问题的布局,并从中动态组装神经网络。 图2:模型概述。 首先计算问题的深入表示,然后将其用作使用递归神经网络实现的布局预测策略的输入。 此策略既发出一系列结构动作(以逆波兰式表示法指定模块化神经网络的模板),又发出一系列注意动作(从输入语句中提取这些神经模块的参数)。 这两个序列被传递给网络构建器,网络构建器动态实例化适当的神经网络并将其应用于输入图像以获得答案。 给定一个输入问题,例如还有多少其他大小与磨砂球相同的东西,布局策略首先会预测一个粗糙的函数表达式,例如count(relocate(find()),它描述了所需计算的结构, 接下来,此表达式中的某些函数应用程序子集(在此进行重定位和查找)接收从文本预测的参数向量(此处分别为磨砂球和大小的向量表示),然后根据该布局表达式将网络与模块组合在一起,从而输出答案。 2.1 Attentional neural modules 模型包含一组可以动态组合成神经网络的神经模块。神经模块m是一个参数化函数y=fm(a1,a2,……;xvis,xtxt,θm)取0,1或多个张量a1,a2……作为输入,利用其内部参数θm和图像和问题的特征xvis和xtxt对输入进行计算,并输出张量y。在本文中,每个输入张量ai都是卷积图像特征网格上的图像注意映射,输出张量y是图像注意映射,或者答案的概率分布。 表1显示了N2NMNs模型中的一组模块,以及它们的实现细节。根据每个模块的输入和输出类型以及潜在的功能为其分配一个名称(如find或describe)。然而,我们注意到每个模块本身只是一个带参数的函数,并且在训练期间没有限制它的行为。除了输入张量(来自其他模块的输出),模块m还可以使用两个附加的特征向量xvis和x(m)txt,其中xvis是通过卷积神经网络从图像中提取的空间特征映射,x(m)txt是该模块m的文本向量,其中包含从问题q中提取的信息。 另外,and和or以两个图像注意映射为输入,分别返回它们的交集或并集。 表1:模型中神经模块的完整列表。每个模块以0、1或2个注意图(以及视觉和文本特征)作为输入,并输出一个注意力图或一个得分向量y来表示所有可能的答案。 在表1中,find模块在图像上输出一个注意映射,可以用来定位一些对象或属性。重定位模块对输入图像的注意力映射进行变换,输出新的注意映射,用于空间推理或关系推理。此外,filter模块重用find和and,并可以用来简化布局表达式。使用两个类的模块从一个注意映射中推断出一个答案:第一个类具有实例exist和count(实例共享相同的结构,但具有不同的参数)。它们只通过观察注意力映射来进行简单的推断。第二类,describe,用于需要视觉外观的更复杂的推理。类似地,对于两个注意力图的成对比较也有两类可用的模块,可以(比较)或不可以(eq-count,more,less)访问视觉特征。 本文模型使用软注意来获取文本输入。 对于每个模块m,预测在T个疑问词上的注意映射αi(m),并为每个模块获取文本特征xtxt: 其中wi是问题中单词i的单词嵌入向量。在运行时,模块可以按照布局l组装成网络,布局l是由模块组成的计算表达式,例如fm2(fm4(fm1),fm3(fm1,fm1)),其中fm1,···,fm4是表1中的模块之一。 2.2 Layout policy with sequence-to-sequence RNN 想预测最适合每个问题的推理结构。对于输入问题q,例如“What object is next to the table?”,布局策略输出一个概率分布p(l | q),可以从p(l | q)中抽样得到对问题q有效的高概率布局l,如descripe(relocate(find()),然后根据预测的布局l构造神经网络输出答案。 在本文的模型中,布局策略p(l | q;θlayout)预测所有可能布局的空间分布。每个可能的布局l都是一个由神经模块组成的表达式,比如fm2(fm1,fm3(fm1,fm1)),可以用语法树来表示。因此,每个布局表达式都可以使用逆波兰式(语法树上的后置顺序遍历)映射到一个线性化序列l={m(t)}。图3显示了一个表达式及其线性化模块令牌序列的示例。 图3:显示如何将任意布局表达式线性化为一系列模块标记的示例。 在将每个布局l线性化为一个模块标记序列{m(t)}之后,布局预测问题转化为从问题到模块标记的sequence-to-sequence的学习问题。本文使用注意递归神经网络来解决这个问题。首先,将问题中的每个单词i嵌入到一个向量wi中(同样嵌入所有模块符号),并使用多层LSTM网络作为输入问题的编码器。对于有T个字的问题q,编码器LSTM输出一个长度为T的序列[h1,h2,···,hT]。译码器是一个LSTM网络,其结构与编码器相同,但参数不同。在解码器LSTM的每个时间步,预测输入序列上的软注意映射。在译码器时间步t处,输入字在i∈{1,··,t}处的注意权αti预测为 其中hi和ht分别是编码器时间步骤i和解码器时间步骤t处的LSTM输出,v、W1和W2是要从数据中学习的模型参数。然后得到上下文向量ct=下一个模块标记m(t)的概率由ht和ct预测为p(m(t)| m(1),···,m(t−1),q)=softmax(W3ht+W4ct)。从p(m(t)| m(1),···,m(t−1),q)中抽取样本,离散得到下一个标记m(t),并使用等式(3)中的注意权重αti根据等式(1)构造其文本输入x(t)txt。布局l的概率为p(l | q)= 2.3 End-to-end training 训练损失函数: 三、实验结果 表2:模型在SHAPES数据集中的性能。 图4:CLEVR数据集上的问答示例。在左侧,可以看到模型成功地定位了哑光绿色的球,注意到所有其他相同大小的对象,然后正确地识别出有4个这样的对象(不包括初始球)。在右边,可以看到不同的模块类似地假设了直观的语义。特别令人感兴趣的是第二个find模块,它除了金属红色的东西外,还能从右边提取单词:这表明模型可以利用这样一个事实,即下游计算将查找检测到的对象的右侧,将其初始搜索集中在图像的左半部分。 表3:评价本文的方法和以前在CLEVR测试集上的工作。通过克隆后的策略搜索,所有问题类型的准确率都得到了持续的提高,而在某些问题类型上(如比较颜色)有很大的提高。

    四、主要贡献 1)一种学习布局策略的方法,该方法可以在测试时不借助外部语言资源,动态预测每个实例的网络结构; 2)一种新的模块参数化,它使用对问题词的软关注,而不是硬编码的单词分配。

    Processed: 0.009, SQL: 9