0
点赞
收藏
分享

微信扫一扫

VQA系列论文(六)

仲秋花似锦 2022-04-13 阅读 8
深度学习

论文阅读:《Learning by abstraction: The neural state machine》

一、问题提出

针对神经网络和符号网络各自的优缺点,引入有限自动机的思想,提出一种神经状态机,将各自的互补优势整合到视觉推理任务中。

首先基于给定的图像,使用一个场景图抽取模型,得到对应的概率场景图。其中,对象被转化为节点,并使用属性表示表示特征;关系被转化为边,来捕获对象之间的空间关系和语义关系。此外,对输入的问题进行语义理解,并转化为一系列软指令。在推理过程中,概率场景图被视为一个有限状态机,利用指令集合在其上执行顺序推理,迭代遍历它的节点,以回答一个给定的问题或得出一个新的推理。

不同于一些旨在将多模态数据进行紧密交互的神经网络结构,神经状态机定义了一组语义概念embedding的概念,其描述领域的不同实体和属性,如各种对象、属性和关系。通过将视觉和语言形式转换为基于语义概念的表示,有效地使两种模态可以”说同一种语言“,从而可以在抽象的语义空间中进行综合推理,这使得结构从内容中分离出来,实现模型的模块化,增强模型的透明度和可解释性。

二、主要思想

两个阶段:

  • 建模:构造状态机。将视觉和语言形式都转换成抽象的表示形式:图像被分解成一个表示其语义的概率图——描述的视觉场景中的对象、属性和关系,问题被转换成一系列推理指令,通过执行指令回答问题。
  • 推理:模拟状态机的操作。在问题的指导下对语义视觉场景执行顺序推理:通过迭代地向机器输入指令并遍历其状态来模拟串行计算,以获得答案。

image-20220410082306823

定义:元组 ( C , S , E , r i i = 0 N , p 0 , δ ) (C,S,E,{{r_i}}_{i=0}^N,p_0,\delta) (C,S,E,rii=0N,p0,δ)

(1)C:模型的概念词汇表,由一组属性概念组成。
(2)S:状态集。
(3)E:有向边的集合,指定状态之间的有效转换。
(4) { r i } i = 0 N \{{r_i}\}_{i=0}^N {ri}i=0N:维数为d的指令序列,作为过渡函数 δ \delta δ的输入依次传递。
(5) p 0 p_0 p0:S→[0,1] 初始状态的概率分布。
(6) δ S , E \delta_{S,E} δS,E p i ×   r i →   p i + 1 p_i\times\ r_i\rightarrow\ p_{i+1} pi× ri pi+1是状态转移函数。实例化为神经模块,在每一步中,考虑状态分布 p i p_i pi和输入指令 r i r_i ri,并使用它沿边更新分布概率,产生一个更新的状态分布 p i + 1 p_{i+1} pi+1

Part1:概念词汇表Concept vocabulary C

用于捕获和表示输入图像的语义内容。

L + 2个属性:

一个对象主体 C O = C 0 C_O=C_0 CO=C0 eg:cat

L个属性 C A = U i = 1 L C i C_A=U_{i=1}^LC_i CA=Ui=1LCi eg:颜色、形状、材质

一种关系 C R = C L + 1 C_R=C_{L+1} CR=CL+1 eg:持有、看

每个属性类型定义了一组D维embedding。

Part2:状态集 S 和 边集 E

构建一个概率场景图,提取给定图像中的对象和关系,构建机器的状态图。

此处使用了前人提出的场景图生成模型和Mask R-CNN物体检测器。

image-20220410084116003

场景图的组成:

(1)对象节点 S S S,每个对象包括一个边界框、一个mask遮罩、视觉特性表示和对应于概念词汇表中L个语义属性的离散概率分布 { P i } i = 0 L \{{P_i}\}_{i=0}^L {Pi}i=0L。转化到概率场景图中,每个对象对应一个状态 s ∈   S s\in\ S s S,使用 L + 1 L + 1 L+1的属性变量 { s j } i = 0 L \{{s^j}\}_{i=0}^L {sj}i=0L表示其特征:
s j = ∑ c k ∈ C j P j ( k ) c k s^j=\sum_{c_k \in C_j}{P_j(k)c_k} sj=ckCjPj(k)ck
其中, c k ∈   C j c_k\in\ C_j ck Cj表示第j个属性类型的每个子类属性embedding(比如颜色属性里面的红色), P j P_j Pj表示这些子属性上的概率分布。该公式主要抽取出每个对象的属性特征。

例子:具有”red“属性的对象,其颜色属性会被赋予接近”red“特征的embedding。

(2)对象之间的关系边,每条边都与语义类型 C L + 1 C_{L+1} CL+1上的概率分布 P L + 1 P_{L+1} PL+1相关联。类似,计算每一条边的关系语义embedding:
e ′ = ∑ c k ∈ C L + 1 P L + 1 ( k ) c k e^\prime=\sum_{c_k\in C_{L+1}}{P_{L+1}(k)c_k} e=ckCL+1PL+1(k)ck
补充:

每个对象有 ( L + 1 ) × D (L+1) \times D (L+1)×D维特征;每个边有 D D D维特征。

Part3:推理指令Reasoning instructions { r i } i = 0 N \{{r_i}\}_{{i}={0}}^{N} {ri}i=0N

将问题翻译为推理指令。

Step1:

使用NLP领域的GloVe对问题进行词嵌入,之后将每个词翻译为词汇表中最相近的概念(即和图片映射到同一个语义空间),如果词汇表没有就保留。

针对每个词向量 w i w_i wi,首先计算和词汇表中属性的相似度的分布:
P i = s o f t m a x ( w i T W C ) P_i=softmax(w_i^TWC) Pi=softmax(wiTWC)
其中,C为所有子属性的embedding,该矩阵中还包括一个额外的embedding c ′ c^\prime c,表示非内容词汇。

之后,将每个词转变为基于词汇表C的特征表示:
v i = P i ( c ‘ ) w i + ∑ c ϵ C \ { c ‘ } P i ( c ) c v_i=P_i(c^`)w_i+\sum_{c \epsilon C \backslash \{c^`\}}{P_i(c)c} vi=Pi(c)wi+cϵC\{c}Pi(c)c
基于该变换,问题中属性词会被词典中的对应属性替代;而其余功能词等报错原始embedding。最终得到M个转换之后的词序列 V M × d = { v i } i = 1 M V^{M\times d}=\{{v_i}\}_{i=1}^M VM×d={vi}i=1M

Step2:

使用一个基于注意力的encoder-decoder结构处理词序列:

encoder部分为一个LSTM循环神经网络,最终状态 q q q作为问题特征表示;

decoder部分为固定步数( N + 1 N+1 N+1)的循环decoder,其产生 N + 1 N+1 N+1个隐藏状态 h i h_i hi,每一步decoding时计算对词序列的注意力,并转换为对应的推理指令:
r i = s o f t m a x ( h i V T ) V r_i=softmax(h_iV^T)V ri=softmax(hiVT)V
该步骤使用注意力机制生成了一系列推理指令,其可以有选择性给关注问题中的各个部分,达到循序渐进找答案的效果。

补充: r i r_i ri为1*d维向量

Part4:模型推理

已求得:

概念词汇表 C = U i = 0 L + 1 C i C=U_{i=0}^{L+1}C_i C=Ui=0L+1Ci

图的状态S 每个状态: { s j } i = 0 L \{{s^j}\}_{i=0}^L {sj}i=0L

边E 每一条边: e ′ e^\prime e

指令序列 { r i } i = 0 N \{{r_i}\}_{i=0}^N {ri}i=0N

自动机初始化:场景图上对象的初始概率分布 p 0 p_0 p0

每个推理步 i i i:读取指令 r i r_i ri,并通过其沿着边更新概率,将注意力重新分配给状态。
δ S , E : p i ×   r i →   p i + 1 \delta_{S,E}:p_i\times\ r_i\rightarrow\ p_{i+1} δS,E:pi× ri pi+1
Step1:理解指令的含义,即找到与指令 r i r_i ri最相关的属性类型。

D D D为词汇表中 L + 2 L+2 L+2个属性,先求出指令和各属性相关的程度:

R i = s o f t m a x ( r i T ⋅ D ) R_i=softmax(r_i^T \cdot D) Ri=softmax(riTD)

比如 R i ( L + 1 ) ∈ [ 0 , 1 ] R_i(L+1)\in[0,1] Ri(L+1)[0,1]表示为 r i ′ r_i^\prime ri,代表着该指令和语义关系的相关性程度。

Step2:得到指令的内容,将其与所有的状态和边进行比较,计算节点和边的相关性分数:

image-20220410152701134

Step3:将模型的注意力从现有状态转移到最相关的邻居状态(即下一个状态):

image-20220410153011300

(3)计算基于每个状态自身属性潜在转移的概率,(4)则考虑到相对于当前状态、转移到下一状态的上下文相关性。最终通过加权平均概率得到下一状态的概率分布。

image-20220410154603301

通过将该过程重复执行N步,模拟神经状态机的推理步骤。

Part5:分类

为了预测问题,使用两次全连接层的softmax分类器,接收LSTM输出的问题特征和最终指令 r N r_N rN引导下提取到的最终状态聚合得到的信息m:

image-20220410155130873

(6)先按照指令类型求平均值,之后加上了对最终状态的注意力 p N p_N pN

三、实验

数据集:GQA VQA-CP

结果:

GQA:

image-20220410155457854

VQA-CPv2:

image-20220410155528066

模型泛化性能:

对GQA数据集进行修改,泛化了内容以及语法结构:内容泛化:测试机包括训练集不存在的种类;结构泛化:同中问题语法表达修改。

image-20220410160042518

image-20220410160052864

可视化推理过程:

image-20220410160115880

四、总结

本文提出了神经状态机NSM,其从图像中抽取出一个图结构,并模拟有限自动机的推理步骤,来执行视觉推理任务。通过实验,证明了其有效性、鲁棒性和很好的泛化性能,此外也提高了可解释性。

通过将有限状态机的概念融入神经网络结构,使得符号和连接主义方法更加紧密的整合在一起,从而将神经模型从感官和知觉任务提升到更高层次的抽象、知识表征、组合性和推理领域。

举报

相关推荐

0 条评论