资讯详情

VQA系列论文(六)

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

标题:抽象学习:神经状态机 来源:NeurIPS 2019 https://proceedings.neurips.cc/paper/2019/hash/c20a7ce2a627ba838cfbff082db35197-Abstract.html 代码:暂无 (本项目为网友复现,不全面–> https://github.com/ceyzaguirre4/NSM )

一、提出问题

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

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

与一些旨在紧密交互多模态数据的神经网络结构不同,神经状态机定义了一组语义概念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​。

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

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=1L​Ci​ eg:颜色、形状、材质

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

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

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

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

场景图的组成:

(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=ck​∈Cj​∑​Pj​(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′=ck​∈CL+1​∑​PL+1​(k)ck​ 补充:

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

将问题翻译为推理指令。

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(wiT​WC) 其中,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(hi​VT)V 该步骤使用注意力机制生成了一系列推理指令,其可以有选择性给关注问题中的各个部分,达到循序渐进找答案的效果。

补充: r i r_i r 标签: eak系列连接器的分类

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台