[CVPR 2018]Discriminative Learning of Latent Features for Zero-Shot Recognition

背景

作者认为当前(2018年前)zero-shot研究的核心主要是在视觉空间和语意空间中学习合适的映射关系,而忽视了学习ZSL问题中 有判别力的表示。几乎所有的模型都有着相似的范式,即通过手工提取图像特征或者通过预训练CNN模型提取图像特征,以及利用人工设计的属性特征作为语意特征。这种范式缺点也很明显,作者归纳出三点。首先,手工图像特征或者预训练CNN模型输出特征可能对于零样本识别任务并不具有高的可区分性,同时用 ImageNet 等数据集预训练等模型与 ZSL 任务的规则也有一定冲突。另外,人工定义的属性在语意上具有描述性,但并不详尽,因此限制了类别间的区分性。最后,现有 ZSL 方法中的低层特征提取和嵌入空间构造是分开进行的,那么用统一框架把他们整合在一起是不是会提升模型效果呢。

作者基于此提出了一个端到端的网络,该网络能够自动识别有判别力的图像区域,在增广空间(定义的语意空间和潜在语意空间)中学习有判别力的图像表示。最后该模型在 CUB 和 AWA 两个数据集上进行测试并取得显著的效果。

贡献

提出了一个端到端的能够识别高判别力特征的 ZSL 模型,并取名为 LDF(Learning Latent Discriminative Features)。

  • 及联的缩放机制来学习以目标对象为中心的区域,大白话就是裁剪。即模型能够自动识别图像中有效区域并进行裁剪和放大。

  • 提出一个框架来共同学习潜在属性特征和人工定义的属性特征。

  • 端到端结构。

大多数模型都通过预训练CNN模型来提取图像特征,该模型通过挖掘潜在高判别力的区域以及端到端训练来提取更有代表性的图像特征。在学习潜在属性特征方面,对于 unseen classes 的潜在属性需要通过其他 seen classes 来获得,也基于此,作者说预测模型应该属于 hybrid models 的范畴,hybrid models 是结合使用可见类来对不可见类图片进行分类。

模型

在这里插入图片描述
如上图所示,该模型为一个多尺度的模型,上图的模型为两个尺度。每个尺度由三个不同的模块组成,1)图像特征网络(FNet)提取图像特征;2)缩放网络(ZNet)定位最具区分性的区域并对该区域进行裁剪和放大;3)嵌入网络(ENet)构造具有视觉和语意联系的嵌入空间。对于第一个尺度,FNet 的输入就是原图,ZNet 则负责对关键区域进行定位;对于第二个尺度,FNet 的输入是上一尺度 ZNet 筛选的区域,从而获得更具辨别力的图像特征。需要注意的是,模型根据数据集的不同可能包好多个尺度,其他尺度依据尺度2的网络进行叠加构造。

The Image Feature Network(FNet)

FNet 就是一般的特征提取网络,作者说该网络可以有两种不同的选择,即 VGG19 网络和 GooLeNet,不知道为啥不用 ResNet。这个过程表示就是
ϕ ( x ) = W I F x \phi(x)=\mathbf{W}_{\mathrm{IF}} * x
其中 W I F W_{IF} 表示 FNet 的所有参数, * 表示 FNe 的一系列操作。需要注意的是,和传统的 ZSL 方法不同,这里的 FNet 和模型其他部分进行共同训练。

The Zoom Network(ZNet)

受一些细粒度分类方法启发,图像的一些区域对图像分类有至关重要的作用。作者猜测图像中同样存在一些特定区域对于零样本学习任务更加重要,这样的区域可能包含物体或者物体的一部分或者带有一些背景的物体区域。作者将这种区域称之为 object-centric region。而 ZNet 网络,就是用来识别这样的区域的。ZNet 的输出是三个参数,分别表示关键区域中心的横坐标、纵坐标以及正方形的变长,这里设定为正方形是为了提高计算效率。

[ z x , z y , z s ] = W Z ϕ ( x ) conv  \left[z_{x}, z_{y}, z_{s}\right]=\mathbf{W}_{\mathbf{Z}} * \phi(x)_{\text {conv }}

ϕ ( x ) conv  \phi(x)_{\text {conv }} 是 FNet 最后一层的输出。 W Z \mathbf{W}_{\mathbf{Z}} 用来表示 ZNet 网络的参数。另外,ZNet 网络是两层全连接神经网络,最后接的是 sigmoid 函数。

下一 scale 的 FNet 的输入即为通过此参数裁剪并放大的图像。

The Embedding Network(ENet)

ENet 学习的是视觉空间到语意空间到映射。一般的方法学习一个 W 来将图像特征映射成语意特征。模型的映射函数通常定义如下:

F ( x , y ; W ) = ϕ ( x ) T W a y F(x, y ; \mathbf{W})=\phi(x)^{T} \mathbf{W} \mathbf{a}^{y}

兼容性损失(the compatibility score)定义如下:

s = W T ϕ ( x ) , a y \mathbf{s}=\left\langle\mathbf{W}^{T} \phi(x), \mathbf{a}^{y}\right\rangle

其中, ϕ ( x ) \phi(x) 是 FNet 输出的 d 维度的图像特征, a y \mathbf{a}^{y} 是类别 y 的 k 维度的属性向量,W 是全连接网络的权重,W 即是将 ϕ ( x ) \phi(x) 映射到属性空间 A \mathcal{A} 的线性投影矩阵。而通常通过 softmax 来学习这个矩阵 W

L = 1 N i n log exp ( s ) c exp ( s c ) , c Y S \mathcal{L}=-\frac{1}{N} \sum_{i}^{n} \log \frac{\exp (\mathbf{s})}{\sum_{c} \exp \left(\mathbf{s}^{c}\right)}, c \in \mathcal{Y}_{\mathcal{S}}

上面是一般的做法,而本文作者除了应用人工定义的空间还加上了潜在的语意空间,两者分别是 UA 和 LA。ENet 通过学习矩阵 W aug  R d × 2 k \mathbf{W}_{\text {aug }} \in \mathbb{R}^{d \times 2 k} 来将图像特征映射到 2k 维度的增广空间的。这个增广空间(2k)就是由人工定义的语意空间(k维)和潜在语意空间(k维)构成。增广的潜入空间用 ϕ e \phi_{\mathrm{e}} 表示,计算如下

ϕ e ( x ) = W a u g T ϕ ( x ) , ϕ e ( x ) R 2 k \phi_{\mathrm{e}}(x)=\mathbf{W}_{\mathrm{aug}}^{T} \phi(x), \quad \phi_{\mathrm{e}}(x) \in \mathbb{R}^{2 k}

而该向量由 UA 和 LA 两部分组成

ϕ e ( x ) = [ ϕ a t t ( x ) ; ϕ l a t ( x ) ] , ϕ a t t ( x ) , ϕ l a t ( x ) R k \phi_{\mathrm{e}}(x)=\left[\phi_{\mathrm{att}}(x) ; \phi_{\mathrm{lat}}(x)\right], \quad \phi_{\mathrm{att}}(x), \phi_{\mathrm{lat}}(x) \in \mathbb{R}^{k}

对于手工定义的属性特征,和传统的 softmax 学习一致

L att  = 1 N i n log exp ( ϕ att  ( x ) , a ) c exp ( ϕ att  ( x ) , a c ) , c Y S \mathcal{L}_{\text {att }}=-\frac{1}{N} \sum_{i}^{n} \log \frac{\exp \left(\left\langle\phi_{\text {att }}(x), \mathbf{a}\right\rangle\right)}{\sum_{c} \exp \left(\left\langle\phi_{\text {att }}(x), \mathbf{a}^{c}\right\rangle\right)}, c \in \mathcal{Y}_{\mathcal{S}}

对于潜在语意特征,因为没有标准值,这属于无监督学习的范畴。这里用三元组损失(the triplet loss)来调节潜在属性特征之间的类间距离来学习潜在语意属性。

L l a t = max ( 0 , m + d ( ϕ l a t ( x i ) , ϕ l a t ( x k ) ) d ( ϕ l a t ( x i ) , ϕ l a t ( x j ) ) ) \mathcal{L}_{\mathrm{lat}}=\max \left(0, m+d\left(\phi_{\mathrm{lat}}\left(x_{i}\right), \phi_{\mathrm{lat}}\left(x_{k}\right)\right)-d\left(\phi_{\mathrm{lat}}\left(x_{i}\right), \phi_{\mathrm{lat}}\left(x_{j}\right)\right)\right)

其中, x i x_i x k x_k 是来自同一类别的图像, x j x_j 是来自不同类别的图像。m 是三元组损失的 margin,实验中设置成 1.0。

这样以来,对于每个尺度,网络都通过 softmax loss 和 triple loss 训练。如果对于一个双尺度的网络LDF,损失函数如下

L = L a t t s 1 + L l a t s 1 + L a t t s 2 + L l a t s 2 \mathcal{L}=\mathcal{L}_{\mathrm{att}}^{s 1}+\mathcal{L}_{\mathrm{lat}}^{s 1}+\mathcal{L}_{\mathrm{att}}^{s 2}+\mathcal{L}_{\mathrm{lat}}^{s 2}

Prediction

由模型结构图也可以看到,输入一张图片,可以得到 UA(user-defined attributes) 和 LA(Latent attributes)对应的属性向量。这两个向量均可以做预测。对于 UA,可以将 ϕ a t t ( x ) \phi_{\mathrm{att}}(x) a C a^{C} 比较,从而找到最接近的类别,公式如下所示

y = arg max c Y U ( s c ) = arg max c Y U ϕ a t t ( x ) , a c y^{*}=\underset{c \in \mathcal{Y}_{U}}{\arg \max }\left(\mathbf{s}^{c}\right)=\underset{c \in \mathcal{Y}_{U}}{\arg \max }\left\langle\phi_{\mathrm{att}}(x), \mathbf{a}^{c}\right\rangle

对于 LA 的预测要麻烦一些。如果想知道输入 x 和哪个类别最相近,需要知道各个类别的潜在向量是多少,和人工设计的语意向量不同,潜在语意向量并不能直接获得。对于 seen class,在训练阶段就可以计算所有图像的潜在语意特征,某一类 seen class 的潜在语意特征就是对于该类图像的潜在语意特征求个平均,即 ϕ lat  s = 1 N i ϕ lat  ( x i ) \overline{\phi_{\text {lat }}^{s}}=\frac{1}{N} \sum_{i} \phi_{\text {lat }}\left(x_{i}\right) 。对于 unseen class,标准的潜在特征可由 seen class 线性组合得到,该组合的映射关系可以通过人工定义特征对应的关系得到。作者将此问题描述成一个脊回归问题

β c u = arg min a u β c u a c 2 2 + λ β c u 2 2 , c Y S \beta_{c}^{u}=\arg \min \left\|\mathbf{a}^{u}-\sum \beta_{c}^{u} \mathbf{a}^{c}\right\|_{2}^{2}+\lambda\left\|\beta_{c}^{u}\right\|_{2}^{2}, \quad c \in \mathcal{Y}_{\mathcal{S}}

从而不可见类的潜在语意特征计算方法如下

ϕ l a t u = β c u ϕ l a t c , c Y S \overline{\phi_{\mathrm{lat}}^{u}}=\sum \beta_{c}^{u} \overline{\phi_{\mathrm{lat}}^{c}}, \quad c \in \mathcal{Y}_{\mathcal{S}}

最后分类方法同样

y = arg max c Y u ϕ lat ( x ) , ϕ ˉ lat c y^{*}=\underset{c \in \mathcal{Y}_{u}}{\arg \max }\left\langle\phi_{\operatorname{lat}}(x), \bar{\phi}_{\operatorname{lat}}^{c}\right\rangle

上面的是分开分析,利用 LA 和 UA 共同决策,而同时考虑人工定义的属性空间和潜在属性空间,预测通过如下方法获得
y = arg max c Y u ( [ ϕ att  ( x ) ; ϕ lat  ( x ) ] , [ a c ; ϕ lat  c ] ) = arg max c Y u ( ϕ att  ( x ) , a c + ϕ lat  ( x ) , ϕ ˉ lat  c ) \begin{aligned} y^{*} &=\underset{c \in \mathcal{Y}_{u}}{\arg \max }\left(\left\langle\left[\phi_{\text {att }}(x) ; \phi_{\text {lat }}(x)\right],\left[\mathbf{a}^{c} ; \vec{\phi}_{\text {lat }}^{c}\right]\right\rangle\right) \\ &=\underset{c \in \mathcal{Y}_{u}}{\arg \max }\left(\left\langle\phi_{\text {att }}(x), \mathbf{a}^{c}\right\rangle+\left\langle\phi_{\text {lat }}(x), \bar{\phi}_{\text {lat }}^{c}\right\rangle\right) \end{aligned}
对于多尺度模型来说,上述的 ϕ a t t ( x ) \phi_{\mathrm{att}}(x) ϕ l a t ( x ) \phi_{\mathrm{lat}}(x) 分别用多尺度模型中对应的语意向量级联即可。

实验

作者的实验思路主要分为三个方面。将模型分为只包含部分模块的几个模型进行对比实验;对不同尺度的结果进行对比;对两种语意空间分别进行测试并进行比较。不做详尽说明,具体可以参考论文本身。需要注意的是,本文遵照传统设定,只测试 unseen class 的预测结果,即测试数据的搜索空间仅限于目标类中。

在这里插入图片描述

发布了26 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_39704651/article/details/104388634