论文笔记:Fine-grained Image Classification by Visual-Semantic Embedding
来源:东南&电子科技&西交&南京邮电,IJCAI-18,paper
摘要
- 细粒度图像分类(fine-grained image classification, FGIC),难点在于很大的类内多样性与微妙的类间不同点
- 现有的方法限制在利用图像中的视觉信息嵌入
- 本文使用了一些先验知识,来自于结构化知识基础或者非结构化的文本信息,来简化FGIC问题。建立了一个视觉语义嵌入模型来从知识基础和文本中探索语义嵌入,然后训练一个CNN线性的将图像特征映射到语义嵌入空间当中。
Introduction
- 细粒度图像分离目标是子基础的类别中识别物体的子类别(例如辨识鸟的物种)。难点在于不同的类别之间相似度极高,而且同一类别的物体也会因为不同的动作、尺度等造成极高的不相似性。
- 此前的工作:
- 学习可区分的视觉表示
- 尝试将物体的不同部分局部化
- 思考人类的识别机制:人类识别图像中的物体时,不仅仅关注视觉信息,而且会考虑通过经验或者物体的文字描述获取的先验信息,这样的外部先验信息有两种:
- 文本信息:文字上下文中图片的类别标签经常有严格定义的内部结构,标签经常和相关的信息一同出现
- 知识库信息:标签经常包含多种类型和特点,类之间的联系描述了它们之间的关系
- 此前的方法(将类别标签作为one-hot向量去评估)通常 假设类之间在统计学上是相互独立的,这就忽视了他们之间语义上的关联性
- 本文首先使用劳务一个视觉-语义嵌入框架来学习类别和图像之间的关系,即将图像特征空间投射到一个多类别的富语义嵌入空间,后者中外部先验知识被编码为类的嵌入向量。
Related Work
细粒度图像分类
学习可区分的视觉表示的方法和尝试将物体不同部分局部化的方法可以分为三个阵营:
- 尝试通过发展深度模型来更好地得到可区分性的视觉表示:微秒的和局部的视觉特征特别难以捕捉
- 关注部分化表示:需要大量的人工标注不同的parts以及相应的框
- 将不同的物体进行对齐来降低姿态带来的影响,或者使用物体/parts的空间约束来消除冗余,从而增强对选中的parts的区分能力
“视觉-语义”嵌入
此前的方法中大多关注视觉信息而忽视了外部信息。但有一些方法使用外部信息来解决其他视觉任务
- SJE:将基于属性的图像分类看作是 zero-shot learning 的标签嵌入问题。一个类别看作是一个属性组成的空间,学习一个图像嵌入和类别嵌入之间的可计算函数
- DeViSE:语义信息可以用来预测图片类别,使用CNN和Word2Vec
本文中的不仅使用了外部信息,而且训练了一个端到端的模型,这里将属性作为知识库中类别的特点来丰富嵌入空间。
The Proposed Model
模型中最关键的是视觉嵌入到语义嵌入空间的线性映射
问题描述
训练数据集合,相应的细粒度标签集合,需要学习一个函数映射,最小化实验损失(计算视觉输出以及真实class之间的差距)。给定一个输入图片 ,知识库嵌入 以及文本嵌入 都是针对给定的真实class 而言的。这样的模型目标最是最大化后验概率
其中 就是学习参数。
针对 和 ,作者分别使用了 TransR 和 Word2Vec 模型。因此, 和 是条件独立的, 式可以化简为:
这里的公式 受到了 DeViSE 和 SJE 的启发。考虑到视觉-语义嵌入框架,DeViSE 使用了成对的排序目标函数来直接的将图片映射到富语义嵌入空间中。SJE 使用兼容函数将图像的视觉嵌入和文本嵌入实现相互映射,训练了一个 two-step 模型。作者的不同之处在于:整合了多个领域的信息,并且训练了一个端到端的模型
两级卷积神经网络
- 微妙、局部化的不同在区分子类别中是十分重要,这些不同经常出现在物体的不同部分和区域。 因此此前的一些工作使用了两阶段的框架:
- 借助于R-CNN框架,局部化物体或者其中的可区分性 parts
- 从划分的 parts 或者整个物体中抽取视觉特征
这里作者提到了 Bilinear CNN,它使用了两个基于CNN的特征提取模型,第一个强调物体的识别,第二个关注在空间位置,两个CNN提取器以平移不变的方式考虑成对相互作用,这特别适用于细粒度分类任务。
局部化 CNN
模型的第一层是训练一个局部化网络(),希望能够检测出物体的边界框。如果proposal是positive的,那么proposal区域的特征对物体的parts或者边界是敏感的。对于细粒度图像分割,一张图像中只有一个被认为是正样本的物体。因此,本文中使用原始图像作为正样本区域,输出就类似于RCNN。这样, 的目标就是:
其中边界框使用 表示。
回归排序网络
模型的第二层是一个回归排序网络(),希望能够得到图片物体的全局视觉特征,为了整合语义嵌入, 同时训练了两个平行的加入softmax的全连接层。全连接层将图像的视觉嵌入(deep CNN学到的)映射到类别的语义嵌入(TransR 或者 Word2Vec 学到的)当中。两个全连接层被称作 projection layer。使用 表示投影层的参数, 是视觉嵌入,其中 是视觉嵌入的维度, 是图片类别的嵌入向量的维度。
训练是这个网络同时使用了余弦相似度和欧氏距离来衡量差异:
所以这里同时使用两种距离的原因是什么?作者好像也没有解释,倒是花了不小的篇幅解释距离的定义与计算。从含义来看欧氏距离要求是更加严格的,只有两个向量重合结果才是0,而余弦距离只关注到向量的夹角。在这里首先应该是要求两个向量完全重合的,然后通过余弦距离放大了夹角部分的效果,maybe。那么问题就在于:这样的映射空间中,嵌入向量的夹角究竟代表着什么
利用这个距离得到损失函数:
其中, 通过排序公式挑选出来:
作者所这样能够对小化positive class的距离同时最大化negative class的距离。
这里不太对吧…单纯的用排序就能保证负向最大化吗?不应该加入负样本的距离损失才能够达到最大化的效果吗?
无论如何,作者这样的操作更加直接的将语义信息和图像的视觉信息取得了关联,而不是像前人做的——需要标注进行关联。从某种程度来讲这种脱离标注的建模方式不仅有利于挖掘信息,而且一旦设置一个好的评价方式,能够得到的有价值的参考是会大于标注得来的。但不得不提到的是,这样的网络应该是比较难以训练出理想效果的(因为从数据集到网络设置都要很小心地选择才行)
参数学习
将局部化网络的特征和回归排序网络的特征相乘(element-wise),最终的loss函数为:
两个网络最终的乘积看作是一种attention的操作,相当于使用对于 中的特征根据 中的结果进行加权。可以分类模型考虑边界框真的不会增大学习难度吗?可能是因为细粒度更需要聚焦网络关注点?
图片类别的语义嵌入
这部分作者分别介绍了TransR和Word2Vec的大题计算方式,包括作者得到的模型是如何fine-tune的
反倒是作者提到的针对细粒度领域的调整性训练比较重要,首先需要收描述这种细粒度图像类别的数据,建立知识之间的关系才能支撑作者实现这个目标。
实验
- 鸟类数据集:Caltech-UCSD Bird-200-2011
- TransR训练集:DBpedia [Lehmann et al., 2015] (KB)
- Word2Vec训练集:English-language Wikipedia (text) from 06.01.2016
实验设置
- 回归排序网络:AlexNet、GoogleNet、VGG
- 图片尺寸
- 局部化网络:AlexNet,边界框回归
- ,每层卷积加BN,全连接层加dropout
- 中的所有参数都是在ImageNet中训练然后在鸟类数据集上fine-tune的
- 语义数据集中抽取出和鸟类数据集属性相关的部分进行fine-tune
分类结果和对比
对比来看,前人考虑到边界框时似乎是考虑直接使用边界框,而作者使用的模型采用自己生成的边界框。
our T-CNN中作者修改了 ,这里 只用来抽取特征。Ensemble T-CNN中作者使用了不同的基于CNN的结构。
起码可以证明这种视觉-语义特征时间的直接映射是有效的。我感觉只要保证映射的正确性,那么分类的准确性上升是可以保证的,但这种直接映射的方式是最佳选择吗?
模型分析
接上,感觉这样的分析也没有解决我的疑问,显然使用这么大程度的语义层面的信息是有帮助的,但这种映射方式真的是最佳的吗?
除此之外,作者针对不同部分的嵌入维度进行的调整分析
结论
- 文章有效地利用了语义信息来简化FGIC问题
- 将结构化的KB信息与非结构化的文本信息统一处理,使得他们都能对提高分类准确性产生积极影响
- 作者认为由于梯度传递带来的attention作用是有效的(并没有验证…)
思考:
- 作者这里使用的语义信息嵌入直接套用了前人的工作,从思路上来讲确实很有新意,但方法上来看基本没有什么改动——可以认为是拓展了原有模型的应用领域
- 分析来看loss的传播应该是对 有attention作用的,但缺乏验证
- 作者其实也没有强调 直接映射 本身的作用,但似乎作者所最突出的处理方式就是“特征直接映射+边界框损失”,能不能有更好的方式实现特征之间的映射从而更有效地利用语义信息呢?
- 值得关注的是人类识别机制分析。人类在识别一个物体时,缺失能有更多的有效信息供参考,这些知识来自于经验或者非视觉形式的信息,这也是当前视觉神经网络没能运用到的一个层面