22-CVPR-Fine-Grained Predicates Learning for Scene Graph Generation 学习笔记

Abstract

目前场景图的生成模型的效果受到一些难以预测的关系的阻碍。例如“woman-on/standing on/walking on-beach” 或者“woman-near/looking at/in front of-child”。目前的SGG方法会倾向于预测头部关系(这里应该指的是on和near),然后现有的re-balancing战略则是更倾向于尾部类别,以上两种方法都没有办法很好的处理难以区分的关系。受到精细化图像分割的启发,这种精细化图像分割的方法专注于在难以区分的对象类别之间进行区分。因此本文提出了FGPL模型,该模型专注于区分难以区分的关系

首先我们提出了一个Predicate Lattice来帮助场景图模型识别精细化的谓词对。然后,我们提出了Category Discriminating Loss和Entity Discriminating Loss,二者既有助于区分精细的谓词,又能保持对可识别谓词的学习判别能力。该模型对多个backbone的效果进行了明显的提升。

Introduction

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这一张图说明了在Transformer这种backbone下,传统的方法没有办法很好的预测难以分类的类别。然后rebalance的方法(re-weight Transformer)更倾向于预测tail类别(文中原话,但我没从图像中看出来为什么这么说)。

问题的根源在于,区分难以区分的谓词需要探索它们之间的关联性。 由于低估了谓词之间的关联性,现有的方法无法选择难以区分的谓词进行充分的惩罚。为了获得完整的语义关系,我们考虑背景信息,因为一对谓词之间的相关性可能会随着背景的不同而发生巨大的变化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以watching和playing的关系分析为例,上图中第一幅图中watch和play是强烈相关的并且难以区分的;但在第二幅图中则是弱相关且容易区分的。

因此本文提出的FGPL模型专注于探索predicate corelations。我们首先介绍了一个predicate Lattice,以帮助理解关于所有场景的无处不在的谓词相关关系。同时提出了两种损失,使得模型既能区分难以区分的谓语,又能保持对可识别的谓语的学习区分能力。 **Category Discriminating Loss (CDL)的主要工作是识别和区分难以区分的关系,此外,由于谓词的相关性随实体的上下文而变化,Entity Discrimination Loss(EDL)会根据对实体的预测来适应性地调整判别过程。**有这两种损失,我们的模型可以区分一个predicate pairs是否是难以区分的,这保证了不同类别之间的学习过程比以前的方法更加平衡。

Contribution

  • 我们提出了一个新颖的即插即用的细粒度谓词学习(FGPL)框架,以区分用于场景图生成的难以区分的谓词。
  • 提出了两种损失
  • 有效的提高了几种backbone的效果。

Fine-Grained Predicates Learning

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Problem Formulation

如上图所示,我们首先构造一个Predicate Lattice来理解predicate之间无处不在的关联性,然后通过Predicate Lattice我们建立两个损失。

Predicate Lattice Construction

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们基于背景信息来学习predicate之间的融合信息,构造过程如上图所示。

Context-Predicate Association:我们首先在predicate nodes和context nodes之间构建一个Context-Predicate连接。由于背景决定了谓词之间的关联性,谓词的关联性被构建为一个包含predicate和相关背景的Lattice。这个Lattice中有两种节点,第一种是Predicate node,表示的是predicate的类别;第二种是Context node,表示的是subject-object pair的标签。有一些predicate node会和相同的context node相连,这表示一些predicate可以描述同一个背景中的relationships。我们采用频率模型来推导出每个主客体对来作为每个predicate的context。此外,predicate和context节点之间的连线的权重表示每一个subject-predicate-object的出现的频率。以上是构建Lattice的方法。

问题:这个Lattice是在整个数据集上构建的嘛?节点的特征用什么表示?

是在整个数据集上进行构建,节点不需要特征表示,仅仅是一个索引标签。

Biased Predicate Prediction: 为了在下一步使用predicate correlation来联系predicate pairs,我们获取到场景图当中的有偏的Predicate Prediction。计算方法为 P r ( r i j ∣ o i , o j , b i , b j , x i , x j ) Pr(r_{ij}|o_i, o_j, b_i, b_j,x_i,x_j) Pr(rijoi,oj,bi,bj,xi,xj)其中b表示bbox,有了背景信息,我们通过对SGG数据集的训练集进行推断,得出预训练过的SGG模型的偏误预测,涉及所有的场景。因此可以得到每一个predicate pairs的可能的预测。上图b所示,就是获得预训练的SGG在所有场景中 “person-racket” and “person-bag”上的playing 和 holding的可能性。

这里的可能性是怎么得到的,加入person和bag中一共出现了100次,其中90次预测成了holding,那holding的可能性是90嘛?还是说需要乘上预测的holding的可能性的权重。

Predicate-Predicate Association:最后我们要基于context-based correlations建立一个Predicate-Predicate Association。例如,如果大多数samples被预测成 j j j,但实际上它的标签是 i i i,那predicate i i i和predicate j j j在大多数背景下都是关联的。我们聚合每一个背景下的结果来获得两个predicate的一个整体的关系融合。如上图所示,给出一个关系对“playing-holding”,我们会计算它们在所有context下的融合关系。因为此我们normalize获得的predicate correlations as S = { s i j } S=\{s_{ij}\} S={sij},其中** s i j ∈ [ 0 , 1 ] s_{ij}\in[0,1] sij[0,1]表示samples中实际标签为 i i i但是预测成 j j j的比例**。更高的 s i j s_{ij} sij意味着更强的关联性,最后我们用 s i j s_{ij} sij来联系相关的predicate。

Category Discriminating Loss

Limitation of Re-weighting Methods: 目前的Re-weighting方法大多采用通过增强对head classes的惩罚并缩减对tailed class的惩罚来实现。举例来讲,目前的sota文章采用的就是在CrossEntropy损失函数上调整每一个类别的权重。

其中 η = [ η 1 , η 2 , . . . , η C ] \eta=[\eta_1, \eta_2,...,\eta_C] η=[η1,η2,...,ηC]表示predicted logits, ϕ ^ = [ ϕ ^ 1 , ϕ ^ 2 , . . . , ϕ ^ C ] \hat{\phi}=[\hat{\phi}_1, \hat{\phi}_2,...,\hat{\phi}_C] ϕ^=[ϕ^1,ϕ^2,...,ϕ^C]表示重加权的probability, w i j w_{ij} wij表示根据positive class i i i 和 negative class j j j 数量分布的权重。

从梯度角度看,对于每一个数量少于positive i i i 的negative j j j都会增强它惩罚,相反则不会增加。

这里其实可以理解成重加权的交叉熵:对于那些小样本类,通过重加权来降低它的predicate,这样子就会导致损失函数提高,因此模型也就会更倾向于预测那些小样本的类别,这也就是说为什么这种re-weighting的方法倾向于预测。

文章认为这种方法是低效的,因为这种方法只是粗糙的将所有的在采样数量上少于positive predicate的negative predicate的negative梯度减小,并没有考虑predicate之间的关联性。这种把决策边界从head推向tailed的方法容易过度压制弱相关的谓词对,并降低了可识别的谓词的学习判别能力。举例如下:例如“on/has/standing on”,其中on和standing on是强相关的,但是has和standing on是弱相关的,但re-weighting 的方法为了防止standing on被过度压制,它会同时减少“on”和“has”的negative梯度。这样做虽然可以增加模型对on和standing on的区别能力,但是会减少“has”和standing on的区别能力

这一块主要是因为论文认为这种损失函数会无差别的压制所有大样本的关系类别的预测能力,但实际上对于standing on来讲,影响它预测性能的主要因素是on关系,has关系的影响其实很小,因此这时如果把has也压制了是不合理的。

Formulation of CDL: 因此我们应该同时考虑类的分布和predicate之间的关联性来区分难以区分的predicate。因此我们采用re-weighting的损失函数构造方法并利用predicate correlation s i j s_{ij} sij来作为调节predicate i 和predicate j的信号。我们通过设置公式1中的 w i j w_{ij} wij,来减轻弱相关谓词的重权幅度,同时加强强相关谓词的重权幅度。我们保持了在可识别的谓语中获得的判别能力,并进一步加强了在难以区分的谓语中的判别能力。

其中如果 μ i j ≥ 1 \mu_{ij}\geq 1 μij1并且 φ i j > ξ \varphi_{ij}>\xi φij>ξ的话,说明两种关系时紧密连接(经常把i预测成j)的并且j关系的数量多于i关系的数量,这个时候就需要对其进行一个punishment。但如果此时 φ i j > ξ \varphi_{ij}>\xi φij>ξ,则减轻对negative predicate的惩罚程度。这是因为对弱相关的predicate i和j 并不需要加强惩罚。如果二者都小于1的时候则设权重小于1来减轻head对tailed predicate的惩罚。

Entity Discriminating Loss

CDL有它自身的limitation:权重在训练过程中是固定的,它既不能在训练中适应模型逐渐获得的鉴别能力,也不能适应当samples的context和训练集不同的情况。因此,我们分别将每个样本的预测结果作为调整决策边界的信号。

其中 V i V_i Vi表示节点 i i i中以 s i j s_{ij} sij进行排序的前M个强关联的predicate对(i,j)。 ϕ i \phi_i ϕi表示预测成i的probability, ϕ j − ϕ i \phi_j-\phi_i ϕjϕi表示在训练过程中模型学习到的鉴别二者的能力。 δ \delta δ是一个超参数,表示需要的鉴别能力的边界。一旦模型的鉴别能力足够,这一块的损失就会到0。同时还加入了平衡参数 n j n i \frac{n_j}{n_i} ninj来防止类数量上的不平衡。最后我们将二者结合在一起。

Experiment

**Dataset:**使用的是Visual Genome数据集,70%training,30%testing,5k个images

**Model Configuration:**我们的模型是model-agnostic的,因此被用于VCTree、Motif和Transformer等benchmark中

**Evaluation Metics:**介绍了一个新的指标DP@K(%)来表示模型区分top-k个难以区分的predicate。DP@K是指正确预测为 i i i的样本比例与被误判为难以区分的谓语的样本 j j j j ∈ V i ‘ j\in V^`_i jVi)比例之间的比例,其中 V i ′ V'_i Vi表示top-k个难以区分的predicate i i i。为了确定哪些是hard-to-distinguish predicate,我们从模型的预测结果中获取到混淆矩阵 S ′ ∈ R C × C S'\in R^{C\times C} SRC×C,其中 s i j ′ ∈ [ 0 , 1 ] s_{ij}'\in [0,1] sij[0,1]表示谓语对 i i i j j j之间的混淆程度。对于每个谓词类别 i i i,选择具有最高 s i j ′ s^′_{ij} sij的k个谓词来构建 V i ′ V^′_{i} Vi。换句话说,DP@K的分数越高,意味着对难以区分的谓词具有更强的判别能力。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ablation Study

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值