论文链接:https://arxiv.org/abs/1904.01990
代码:https://github.com/zhunzhong07/ECN
1.传统的无监督方法只关注于缩小源域与目标域之间的gap,而忽略了目标域内的变量变化,这个变化很大程度上影响了性能。
2.我们提出了三种不变性:exemplar-invariance, camera-invariance and neighborhood-invariance。
3.为了实现我们的目标,我们引入了一个 exemplar memory
进行存储目标域的特征并且容纳三个不变性。
4.该memory可以让我们在不显著增加计算成本的情况下,在目标训练batch中添加不变性约束。
三种不变性具体如下图:
1.我们发现top-ranked检索结果总是在视觉上与query更加相似。这种现象可以在图像分类中体现出来,这一点表示深度re-id模型从数据中更多的学习的是相似性而非语义特征。
2.exemplar-invariance:在现实中很容易识别不同图像的特征,基于此点,我们提出了exemplar-invariance,通过使相同人更加接近,不同人更加远离的方法, 学习目标域unlabeled data之间的相似性。
3.camera-invariance:摄影风格(camera-style)作为re-id一个关键因素,在很大程度上影响改变了行人的外观。但是无论是摄影风格如何,都不会影响他是同一个人,所以我基于此点,提出camera-invariance,同一个不同摄影风格的图片应该更加接近。
4.neighborhood-invariance:一个目标示例(target exemplar)和它在目标域中最近的一些邻居应该有相同的身份。通过此点,我们提出neighborhood-invariance,希望 ex-exemplar和它信任的相关邻居更加接近。
(即同一个行人的图片更加接近)
5.根据以上的不变性,我们提出了一个针对Person re-id的新的无监督域适应方法(unsupervised domain adaptation)
。即在训练的过程中,在网络中使用一个exemplar memory
去存储目标域中每个exemplar的最新特征。并且这个memory
可以使我们在全局上添加上述的invariance 约束。在网络的优化进程中,这个memory
可以很有效的执行目标域的不变性学习。
一种有效的方式去解决UDA就是通过对齐两个域之间特征分布。
对齐的方法:可以通过减少两个域间的最大均值差异,或是训练一个对抗域分类器,使得源域和目标域变得不好分割。
但是上面提到的方法是在封闭场景下设计的,其中源域和目标域的类是完全相同的。在实践中,目标域中存在许多未知类的场景。来自目标域的未知类示例不应与源域对齐。
为了解决上述这个问题,Busto和Grall[3]开发了一种方法,通过丢弃未知类目标样本,来学习从源域到目标域的映射。
最近,提出了一种对抗学习框架[22],将目标样本分为已知和未知类,并在特征对齐过程中拒绝未知类。
上述的两个新方法实际都是利用丢弃未知样本来实现开放数据集下的类对齐。
最近,Zhong等[43]首先提出了一种HHL方法来学习目标域的摄像机不变网络。然而,HHL忽略了目标域的潜在积极样本对。这可能会导致re-ID模型对t目标域中的其他变化敏感,比如姿势和背景变化,而忽略了camera 的变化。
1.exemplar-invariance 以前虽然有 但是不是在无监督领域
2.neighborhood-invariance 有一个相似学习叫做DAL,不同之处就是我们设计了一个 软分类损失
去对齐top-k邻居,而不是计算top-1邻居之间的三元组损失。
本文的核心就是通过两个模块去计算:
1.分类模块针对的是有标签的数据,利用softmax计算Loss
2.存储模块是针对无标签数据,一它存储着FC-4096得到的全部目标图像的最新特征,二就是通过估计小批量目标样本与保存在样本存储器中的整个目标样本之间的相似性来计算目标域的不变性学习损失。
对源域采用有监督的学习方式进行分类,但是这种做法只使用数据分布相似的目标域和源域,一但两者的数据分布不相似,那么其效果就会很差。所以我们引入了基于存储器的方法去克服这个问题,该方法考虑了在训练过程中目标域中的域内变化。
我们提出在网络中加入invariance learning的方法,该方法通过估计目标图像间的相似度实现。
1.为了实现这一目标,我们首先构建一个(exemplar memory)范例记忆来存储所有目标图像的最新特征。该exemplar memory 由键值对组成。在exemplar memory中每个slot存储形式是,经过L2批处理化的FC-4096产生的特征存储在key,而对应的标签存储在value。
2.对于给定包含Nt个图像的未标记目标数据,我们将每个图像实例视为一个单独的类别。因此exemplar memory包含着Nt个slot。
3.初始化时,将所有的key memory中的所有特征的值置为0。为简单起见,我们将相应的索引
赋值为目标样本的标签,并将其存储在值存储器中。例如,第i个目标的值内存(value memory)赋值为V[i] = i。并且在value memory 中的标签在整个训练过程中是固定的。
仅使用源数据训练的深度学习网络是对目标域的域内变化很敏感的。这个变化是影响性能的关键因素。因此,在konwlege从源域到目标域的迁移中,考虑目标域的图像变化是很有必要的。因此本实验中研究了三种不变性。
Exemplar-invariance
每个人的图像更接近自己而远离他人。因此,我们通过学习区分个体图像,在re-ID模型中加入Exemplar-invariance。这样re-id模型就可以捕捉到人的显著特征。为了实现这一目标,我们将Nt个目标图像视为Nt个不同的类,并将每一幅图像分类为它自己的类。
1.对于给定目标图像 xt,i,我们首先计算xt,i的特征与保存在key memory中的特征之间的余弦相似度。然后,利用softmax函数计算出xt属于i类的预测概率。
exemplar-invariance的目标就是最小化下图公式(最小化负数即最大可能性扩大p即扩大xt属于i类的可能性):
Camera-invariance
用标记源数据训练的re-ID模型可以捕获源域的(camera-invariance),但可能会受到目标摄像机引起的图像变化的影响。因为这两个领域的相机设置将会非常不同。为了克服这一问题,我们提出在网络中配置目标域的相机不变性,基于该图片与它经过摄影风格迁移的副本彼此更加接近。在本文中,我们假设每个图像的摄像机id是已知的,因为在从视频序列中采集人的图像时,摄像机id很容易得到。
1.对于给定的无标签目标数据,我将每个相机视为一个样式域,并且使用starGAN去训练这个样式域,从而为目标域来迁移模型。通过学习CamStyle传输模型,每个从相机c采集的真实目标图像都被其他相机风格的C - 1图像增强,同时保持原始身份。C为目标域中的摄像机数量。
2.该不变性使得不同相机的相同照片更加接近
3.具体loss(跟Exemplar-invariance类似)
Neighborhood-invariance
对于每个目标图像,这里存在着一系列的积极样本(positive samples)。如果我们在训练的过程中利用这些积极样本(positive samples),我们就能够克服目标域内变化,并进一步的提高re-id模型的健壮性
1.我们首先计算存储f (xt,i) 与在 key memory中的特征之间的余弦相似度。然后我们找出xt,i的k近邻,并且将它们定义为M(xt,i, k)。k是多少个邻居。离他最近的就是i。
2.我们在网络中使用Neighborhood-invariance是在假设目标图像xt,i应该属于M(xt,i, k)。因此我们为xt,i属于j类的概率分配权重。
邻域不变性被阐述为软标签损失(soft-label loss)
通过上述公式我们就能将类与它的邻域更好的聚集在一起。
Overall loss of invariance learning
这段原文很好的解释了参数的含义,以及不同情况下使用什么样的不变性(
即 i = j 时,我们通过迁移xt,i归属到其原来的类 使用了exemplar-invarinace 和 camera-invariance。当i ! = j 时,我们通过引导xt,i与它的邻居更加接近使用了neighborhood-invariance)
这段写的很好,大概的意思就是exemplar-invariance与neighbor-invariance是矛盾共同体,前者Push开了距离,后者又pull回了距离。