Author
Zhun Zhong, Liang Zheng
Conference
CVPR 2019
Motivation
- 在迁移学习的过程中,不仅要考虑source domain与target domain之间的domain bias,还要考虑target domain内部的bias。简单来说target domain中的每一个camera都是一个domain,在监督学习下,这些camera-level的domain bias很容易通过网络学出来,但在无监督学习下确不行。
Contribution
- 提出exemplar-invariance, camera- invariance and neighborhood-invariance三种不变性约束。
- 提出memory module来充分利用整个training set上的样本。
Framework
Baseline
蓝色支路为baseline,输入为source domain上带标签的图片,用cross entropy loss做约束,损失函数如下:
为source domain上图片的数量,为source domain上的第张图片,为其label。
Exemplar Memory
Exemplar Memory为key-value结构,key存储经过L2正则化之后的4096维特征,value存储label(实际上为index),value在训练过程中保持不变。
key初始化为0,在BP时更新,方法如下:
在[0, 1]的范围内,控制更新速度,为一个超参数。下面用Exemplar Memory模块来完成三种不变性约束。
Exemplar-invariance
每张图的appearence都是独一无二的,就算是相同ID的图片,也会受到pose,illumination,background等因素的影响,所以对于每张图,都应该靠近自己(Exemplar Memory的作用)而远离其它图片,作者视每张图都为不同的id,然后将每张图归于自己的id。实际上就是训练一个(为target domain上图片数目)个类的分类器,概率如下:
为backbone输出的4096维特征,与Exemplar Memory中的每个特征计算余弦距离,为smooth项,越大输出越均匀。
Camera-invariance
用StarGAN来风格迁移,将每一张图片都迁移到其他个相机下。迁移过程中保证ID不变,camstyle变成对应camid的style。损失函数如下:
为由风格迁移得到的图片,这张图片应该与属于相同id。
Neighborhood-invariance
对于target domain上的每张图,都存在其他正例,只是在这个问题定义下我们不知道而已。对于每一张图片的输出我们可以在key张找到k-nearest近邻,显然最近的是自己。表示离最近的k个近邻的value值。
作者给中的k张图最有可能与拥有相同的id,所以希望在特征空间中拉近彼此之间的距离,但是这种伪标签又是不可信的,所以不能赋予太高的权重。权重如下:
对自身赋予1,其余赋予的权重。损失函数如下:
这个损失函数中为了与exemplar-invariance区别将自身剔除了。
Overall loss of invariance learning
将三种不变性loss合在一起写简单明了。
Experiment
的影响
Memory的影响
memroy module的计算开销小,效果提升显著,非常值得借鉴。