- 一篇关于如何在小数据集上用ImageNet预训练模型做迁移学习干货的文章0.0
Motivation
- 现有的Re-ID数据集都相对较小,目前大多数方法都只在Re-ID数据集上训练得到模型,对于不同Re-ID数据集的泛化能力很差,如何利用其他大型数据集通过迁移学习得到更泛化的特征呢?
- 现实应用中有大量的未标注的数据,采用无监督学习的方法来利用这些数据对于实际应用有重要的意义。
Contribution
- 提出了一个模型来迁移从ImageNet数据集上学习到的特征到Re-ID数据集上:
- 用GoogleNet作为base网络
- 结合了identity classification loss和verification loss
- 对于模型中使用的两种不同的loss,采取了两种dropout策略:
- 分类损失:常规dropout
- 验证损失:a pairwise-consistent dropout
- 使用了两阶段微调策略来训练预训练模型:先用分类损失训练,再结合分类与验证损失一起训练。
- 提出了基于无监督迁移模型的co-trianing策略来利用现实中未标注的数据:交替使用graph regularised dis- criminative dictionary learning model与soft-label self- training deep model,这样的策略可以阻止model drift
- 在大量的数据集上进行了实验,本文的模型大幅度超过了SOTA
1. Introduction
- Re-ID的定义
- 现在主要研究的两个方向
- 现有数据集现状与问题
- 动机与贡献(在下节又提了一波。)
2.Related Work
Deep Re-ID model:
- 大多数集中在deep metric learning,使用pairwise verification loss或者triplet ranking loss,通常有两个或三个分支。在人脸识别中也有类似本文结合分类损失和验证损失的做法,可以将不同类分开以及将同类距离减小。
- 现在的方法网络都是专门针对Re-ID设计的,结构各不相同,通常有较小的输入尺寸和不同的长宽比,卷积核的尺寸也较小,池化层较少。难以学到足够泛化的特征。
Dropout strategy:
- 通常用来降低过拟合问题,尤其在数据量较小的,本文针对两种损失函数提出了两种类型的Dropout:
- 针对分类损失的standard random dropout
- 针对验证损失的pairwise-consistent dropout
Deep transfer learning:
- 因为ImageNet与Re-ID任务之间有巨大的domain差异性,传统的one stepped strategy是不足够的,本文提出了two stepped strategy:先只微调分类损失,然后一起微调验证与分类损失
- multi-task joint training approach:目的在于减少源数据与目标数据的边缘分布或联合分布的差异性,通常要求两个任务有相似domain
Deep unsupervised domain adaptation:
- 字典学习、自编码器:难以学到具有判别力的特征
- soft-label self-training
3.Deep Re-ID Model
3.1.Network Architecture
Overview: 如下图,总共四部分
- base network:两个分支共享参数
- a loss-specific dropout unit
- an ID classification subnet
- a pairwise verification subnet
Base Network 为了利用ImageNet数据集上的特征,选取了在ImageNet上表现较好且参数较少的GoogleNet
Loss specific dropout unit 对于base network产生的D维向量 y \mathbf{y} y:
- 若是分类subnet则使用标准的dropout操作: y ~ = r ∗ y \widetilde{\mathbf{y}}= \mathbf{r}\ *\ \mathbf{y} y =r ∗ y, r \mathbf{r} r中的每一个元素都是随机采样于Bernoulli process。
- 若是验证subnet,因为有一个元素之间的subtract操作,标准的dropout并不适合,采用了pairwise-consistent dropout:产生两个dropout masks r i \mathbf{r}_i ri、 r j \mathbf{r}_j rj,同时 r i = r j \mathbf{r}_i = \mathbf{r}_j ri=rj
Person ID classification subnet: 标准的分类网络:basenet–>dropout–>softmax(cross-entropy)
Pairwise verification subnet:两个 y ~ i \widetilde{\mathbf{y}}_i y i与 y ~ j \widetilde{\mathbf{y}}_j y j --> 元素间的subtraction --> Relu --> FC --> 两个节点的softmax
- 对比损失在本文的模型中效果不是很好,由于使用了pre-trained GoogleNet,对于非对齐的图片不能在中间加层进行处理,Mahalanobis metric learning loss测试效率太低
3.2.Model Training and Testing
- 测试过程:
- cross image representation(CIR):将图像对送入网络,通过验证网络的fc层以及softmax得到匹配分数
- single image representation(SIR):预先对gallery中的图片计算basenet的输出 y \mathbf{y} y,与probe得到的特征计算欧式距离,比CIR快三个数量级
4.Deep Transfer Learning for Re-ID
4.1.Supervised Transfer Learning
Staged transfer learning:
- one-staged tranfer learning method based on an one-stepped fine-tuning strategy:较大的Re-ID数据集 --> 较小的数据集上
- 本文对于大的数据集采取ImageNet --> ReID,对于小的数据集采取ImageNet --> 大ReID --> 小ReID,每个阶段都使用了two-stepped fine-tuning strategy
Two-stepped fine-tuning: 在源数据 S S S上训练的模型在目标数据集上 T T T上微调
- 第一阶段:冻结除了替换的softmax层进行训练:防止随机初始化的全连接层将垃圾梯度传回basenet
4.2.Unsupervised Tranfer Learning
- 通过未标记的数据学习一个比在源数据 S S S上更好的网络(mapping function ϕ ~ \ \widetilde{{\phi}} ϕ )
Self-training:
- soft(pseudo) labels:对于摄像头A中的 M a M_a Ma张照片, x i a ∈ X a \mathbf{x}_i^a \in \mathbf{X}^a xia∈Xa,每个分配unique class label,B中的 M b M_b Mb张图片基于 ∥ ϕ ( x i a ) − ϕ ( x j b ∥ 2 \|\phi(\mathbf{x}_i^a)- \phi(\mathbf{x}_j^b\|_2 ∥ϕ(xia)−ϕ(xjb∥2分配A的最近邻
- 问题:由于每个人在一个摄像头下可能会有多张图像以及最近邻可能对应的是视觉上相似但身份不同的人,soft labels会有很大的噪声,这样训练出来的模型会产生model drift:soft labels带来的误差随着迭代会逐渐放大
Co-training: 用来解决model drift,核心是利用少量已标记样本,通过两个(或多个)模型去学习,对未标记样本进行标记,挑选most confidently的样本加入已标记样本阵营,降低标记错误的可能性。参考Wikipedia:Co-training
- 对于本文来说,一个model为self-training deep CNN,一个model为unsupervised model作为互补模型(a graph regularised subspace learning model–学习一个具有判别力的子空间,在该空间里数据分布关于在输入空间构建的KNN图是平滑的):在学习的子空间中,形成的数据簇可以为self-training model提供soft-labels,同时deep model学到的特征可以构建正则图
- 形式化描述:两个摄像头下的图片输入base network得到输出 Y = [ Y a , Y b ] ∈ R D × M t \mathbf{Y}=[\mathbf{Y}^a, \mathbf{Y}^b]\in \mathbb{R}^{D \times M_t} Y=[Ya,Yb]∈RD×Mt,目标是学习一个由字典 D \mathbf{D} D`定义的子空间与一个在子空间的新的表示 Z \mathbf{Z} Z,通过下面的优化问题来联合估计:
(
D
∗
,
Z
∗
)
=
min
D
,
Z
∥
Y
−
D
Z
∥
F
2
+
λ
Ω
(
Z
)
s
.
t
.
∥
d
i
∥
2
2
≤
1
(\mathbf{D}^*,\mathbf{Z}^*) = \min \limits_{\mathbf{D},\mathbf{Z}}\|\mathbf{Y}-\mathbf{DZ}\|^2_F+\lambda\Omega(\mathbf{Z}) \ s.t.\ \|\mathbf{d}_i\|^2_2 \le1
(D∗,Z∗)=D,Zmin∥Y−DZ∥F2+λΩ(Z) s.t. ∥di∥22≤1
第一项为重建误差,第二项
Ω
(
Y
)
\Omega(\mathbf{Y})
Ω(Y)为图正则
Ω
(
Y
)
=
∑
i
j
W
i
j
∥
z
i
−
z
i
∥
2
2
\Omega(\mathbf{Y}) = \sum_{ij}W_{ij}\|\mathbf{z}_i-\mathbf{z}_i\|^2_2
Ω(Y)=ij∑Wij∥zi−zi∥22
W
∈
R
M
t
×
M
t
\mathbf{W}\in \mathbb{R}^{M_t \times M_t}
W∈RMt×Mt为
M
t
M_t
Mt的关联矩阵,当
y
i
,
y
j
\mathbf{y}_i,\mathbf{y}_j
yi,yj来自不同的摄像机且为最近邻时,
W
i
,
j
≠
0
W_{i,j} \ne 0
Wi,j̸=0,最后利用新的表示
Z
\mathbf{Z}
Z来产生soft labels,再用labels来训练base network形成迭代过程。
- 这里涉及字典学习不是很熟悉。。
5.Expriments
5.1.Datasets and Settings
Datasets:
- CUHK03
- Market1501
- VIPeR
- PRID
- CUHK01
Evaluation metrics:
- Cumulated Matching Characteristics(CMC)
- mean average precision(mAP)
5.2. Implementation Details
Input data organisation:
- 每个minibatch:随机选K个person,每个person M个照片,产生所有的正、负样本然后复制正样本对数量直到等于负样本对数。
- K=32,M=4 负样本对3986个
Verification subnet: base network(GoogleNet) --> pairwise-consistent dropout --> element-wise subtraction --> relu --> FC -->two-node softmax layer
Classification subnet base network --> dropout --> fc --> N softmax
Auxiliary losses : 学习GoogleNet在中间加了两个分类与验证分支,一共6个网络
Training setting :
- initial lr:1e-3,每40Kiterations乘以0.1
- 对于大的数据集,two stepped fine-tuned次数分别为20K与150K
- 对于小的数据集,two stepped fine-tuned次数都为20K
Data augmengtation :
- 通过在每个图像的中心进行随机2D变化产生5张扩增的图片
Parameter Settings :
- 监督学习:验证loss与分类loss的比值为3:1
- 无监督co-training方法: λ \lambda λ通过cross-validation来选
5.3. Supervised Transfer Learning
Results on large datasets :
- 因为数据集还不算大,之前的深度学习方法相比传统方法提升不是很大,而本文的方法利用了ImageNet的特征,提升明显,如下表1,2
Results on small datasets :
- 在小数据集上,由于特征的迁移性较差,之前的深度学习方法并没有超过传统的方法,本文的方法在小数据集上都取得了最好的性能,结果如下表:
Loss selection :
- 对loss的组合做了消融实验,证明了分类损失+验证损失是最好的组合,当分类+验证+三元组同时使用时性能有所下降,说明三元组可能是多余的结果如下表:
Pairwise-consistent dropout and two-stepped fine- tuning :
- 结果如表
5.7.Qualitative Results
- ImageNet知识迁移作用可视化比较,如下图(感觉这里比较有点勉强,从头在Market-1501上训练GoogleNet本身就不合理)
6.Conclusion
- 总结了本文的方法:
- 验证loss与分类loss结合对迁移ImageNet学习到特征的重要性
- 第一次说明了基于深度无监督迁移学习模型的co-training方法在无标签的数据上也能取得不错性能