triplets

阅读 / 问答 / 标签

用对抗的方法生成Hard Triplets

论文:An Adversarial Approach to Hard Triplet Generation ReID问题中都是根据图像embedding之间的特征距离来判断相似度,但是平常训练都是根据训练集的ID做监督,用softmax进行分类。而Triplet loss能够直接对图像的特征进行监督,更有利于学到好的embedding。 损失函数: hard triplets指的是找到minibatch中 最大的一对三元组,即找到 最大的和 最小的。 但是这样直接的方式不一定能找出具有代表性的三元组,会对网络的收敛(convergence)造成问题。 三元组损失函数对于三元组的选择非常敏感,经常会有难以收敛和局部最优的问题,为此 [1] 提出了 Coupled Cluster Loss ,使得训练阶段更加稳定,网络收敛的更加快。 特征提取网络 的输出 ,对于三元组 ,传统方法的损失函数是: ,其中 是 距离。 给出一个生成器 ,通过这个生成器生成一个新的sample , 的目的是使得正样本之间距离增大,负样本之间距离减小,目的是为了生成更harder的sample. 通过降低以下loss来训练 : 随后固定学习过的 ,接着训练 : 但是光靠上面的方法并不够有效,因为没有限制的情况下, 会任意操纵(arbitrarily manipulate) 生成的特征向量。打个比方说, 可能随意输出一个向量,使得 非常小,但是这个对于训练来说没有意义。为了限制 ,需要他输出的向量不改变原本向量的标签。 给出一个判别器 ,对于每个特征向量, 能将其分成(K+1)类,K表示真实存在的类别,+1代表fake类别。通过降低以下loss来训练 : 其中前半部分让 分辨 生成的特征向量的标签 表示softmax loss,后半部分让 分辨 生成的特征向量。 表示fake类别。 之前提到 应该保留住输入的特征向量的标签。因此文章中提出下面的loss: 与之前的公式(2) 结合,通过降低以下loss来训练 : u200b 其中classification(5)确保了 能够正确分类 首先,basic model同时降低softmax loss和triplet loss。随后 被加入到basic model。 softmax 和similarity loss在之前的研究中有被结合起来,但是他们之间的关系并没有被深入的进行研究。 在特征向量空间(feature embedding space)中,所有相同类别的数据坐标经过 规范化后应该是在一个单位超球面(unit hyper sphere)上,图2中的decision boundary将不同类别的数据分成K个类别,这种结构能加速收敛并达到理想化(optimal)的结果。但是传统的softmax loss不能很好兼容基于特征距离(distance-based)的similarity loss。如图3(b)中。由于偏置b的存在,decision boundary不能够通过原点,因此在 规范化后,不同类别的点可能会重合。这将导致类间距离(inter-class)的缩小,影响特征向量的效果。因此文章中提出了一个没有偏执b的softmax loss。如图3(b)所示,这种无偏置softmax损失的所有决策边界都通过原点,并且决策区域是锥形的,其顶点位于原点。因此,同一类的样本在单位超球面上具有单独的投影,这确保了来自不同类别的示例之间的长的类间距离(inter-class)。 给定一个训练三元组 其中 为anchor图片 的类别。无偏置的softmax定义为: 其中 表示CNN网络的输出特征向量。随后网络 通过缩小 来训练(SGD)。 图4左边部分所示, 的输入是L维的特征向量,这个向量是网络 的输出,同时 的输出具有相同的维度。 包含4个全连接层,前两个降维,后两个升维,每一层后面跟了BatchNormalization和ReLU。最后的输出是输入向量和输出向量的对应位置相加。 另外,判别器 接受 产生的L维特征向量,并将其分成K+1类。 也有4个全连接层,前三个后面跟了BatchNormalization和ReLU,最后一个跟的softmax。(怎么感觉 接受的是应该是 产生的?) 文章中使用的优化器是SGD,学习率 ,步骤在Section 3中介绍。 此外,文章中尝试构建一个更强大的提取器 ,允许HTG从细粒度的局部细节创建更hard三元组,因此视觉识别模型可以用更难的三元组示例挑战变得更加鲁棒。 实际上,局部特征在许多细粒度的视觉识别任务中起着关键作用。用于图像分类的典型深度神经网络擅长提取高级全局特征,但常常缺少局部细节的特征。这可能会限制HTG探索本地细节以创建更难的triplets。例如,在没有本地细节的情况下,HTG无法生成能够识别不同车辆的大多数有辨别力的部分的三元组,例如徽标,灯光和天窗。 为了解决这个问题,文章中介绍了一种更加关注局部特征的关键点图。例如ResNet-18包含了4个连续的卷积块,在最后一个卷积块后面跟着一个全连接层作为全局特征 .对于卷积块 来说,他的输出特征图可以表示为 .随后我们加一个局部分支叫做keypoint bolck,它具有类似于卷积块的结构,用于本地化关键点的分布,这些关键点可以关注最具辨别力的部分以创建更难的三元组。高级语义特征映射是稀疏的(不太明白这里),我们假设关键点层的每个通道对应于特定类型的关键点,因此我们在关键点层的输出特征上应用通道层面(channel-wise)softmax来估计不同图像位置上关键点的密度: 是clock-l的输出特征图在通道c及位置(i,j)上的的点。 block-l局部特征 : 文章中提取了bolck-3和block-4的特征,和全剧特征concat后作为最后的输出特征。 备注:这部分没有看的很明白,我理解的大概意思是在网络的中间层先做一个softmax,最后和全局特征的softmax concat起来。

疯狂约会美丽都 得奥斯卡奖的歌The Triplets Of Belleville 哪里有??

网页链接