Embedding Label Structures for Fine-Grained Feature Representation
CVPR 2016
首先get到了关于image understanding常见的四个名词,困扰了我好久:
- classification 分类
- detection 检测
- segmentation 分割
- retrieval 检索
再关于网络模型的有:
- identification –>分类学习(i.e. Softmax With Loss)
- verification –>度量(相似度)学习(i.e. Contrastive Loss)
重点
To obtain the fine-grained feature representation, a potential solution is to incorporate similarity constraints (e.g. contrastive information [9] or triplets [26, 7])
为了获得细粒度特征表示,需要加入相似性约束,即需要度量学习。
Although the features learned from triplet constraints are effective at discovering similar instances, its classification accuracy may be inferior to the fine-tuned deep models that emphasize on the classification loss, as demonstrated in our experiments. In addition, the convergence speed using such constraints is usually slow.
这部分说明了度量学习的一些弊端:尽管可以有效发现相似实例,但是相比强调分类损失的模型而言,分类精度较差,再者,收敛速度慢。原因也很显然,因为度量学习给的监督信息少(similar or dissimilar constraints vs a specific label among C classes)。
Comparison of the convergence rate on the Stanford car dataset:
Different from the pairwise contrastive loss [9] that forces the data of the same class to stay close with a fixed margins, the triplet loss allows certain degrees of intra-class variance.
这里说明了Pairwise Contrastive Loss 与Triplet Loss的区别,都属于度量学习,但Triplet Loss可以允许一定程度的类间差别,这可以从Contrastive Loss的定义得到,如果同一类的两张图片(即标签为相似),则一定有损失,除非二者特征空间的距离为零!
文章的创新点
- 多任务学习,具体内容可参考多任务深度学习(MultiTask Learning)
- Embed Label Structures,这部分又分为两类:hierarchical labels and shared attributes。这些都是针对多标签的数据而言,理解不同层次的相似。
这里论文扩展了triplet loss(ranking loss 的最简单形式),比如下图:
三元组变成四元组
(ri;p+i;p−i;ni)
,可以简单理解
p+i
为完全相似的样本(粗粒度和细粒度标签都相同),
p−i
为部分相似(只粗粒度标签相同),
ni
为不相似样本(粗粒度标签都不同)。满足:
实际操作还是拆成两个三元组 (ri;p+i;p−i) 和 (ri;p−i;ni) 。具体见论文。
第二篇Deep Relative Distance Learning Tell the Difference Between Similar Vehicles
CVPR 2016
这篇文章做的是实例级别的车辆识别/搜索问题,相比于车辆模型(Vehicle Model)的识别更有挑战性。一般的,车辆识别可以通过识别车牌号来实现,不过这里是从是视觉角度来区分车辆的。主要借鉴Person re-Identification,但是不能直接应用到车辆识别中,因为相同模型的车辆外观几乎相同(文中提到通过一些marks来区分这些车辆,比如一些装饰物,总之还是可以区分的…),所以在区别不同模型的同时,还要区分同一模型中不同的车辆。
综上作者提出了Mixed Difference Network Structure这样一个多任务模型:
上面的分支做车辆模型的分类(Softmax),所以Fc7得到的是车辆模型级别的特征;下面的分支做Deep Relative Distance Learning(相对距离学习,即度量学习),所以Fc7_2得到的是实例级别的特征;最终的Fc8综合了这两个级别的特征。
背后的想法也很直观:判断两张车辆图片是否是同一个车,首先从车辆模型(Fc7)上判断,如果不同,自然不是同一辆车,如果相同,则需使用实例特征(Fc7_2)进一步判断。
文章的创新点
1.发现了传统的Triplet Loss 的缺陷,并进行了改进,提出Coupled Clusters Loss;
2.制作了大规模车辆数据库VehicleID。
这里记录下,为什么在Triplet Loss之前都会对特征进行L2范数归一化的操作:是为了防止损失函数很容易超过0 。
Triplet Loss 输入有三张图片,其中两张图片属于同一类,另一张属不同类。需要在同一类的两张图片中选择一张作为Anchor,所以同样三张图片会有两种不同的输入方式:
而Triplet Loss 的作用是maximize the relative distance between the matched pair and the mismatched pair. 所以左边的输入方式会产生损失值,从而得到矫正。而右边满足了损失函数的条件,不会产生损失,也就不会反向传播,对网络没有任何帮助,但是会造成错误。
关于如何改进直接参考论文吧。