摘要: 深度度量学习基本目标是,使相同类别的图片间的距离比不同类别的图片间的距离小. 由于优化问题,通常采用 hard example mining 来只对样本的 hard 子集进行处理. 但,hard 是相对于模型而言的,复杂模型将大部分样本作为 easy 的,而简单模型将大部分样本作为 hard 的,二者结合又难以训练. 启发点: 样本是具有不同的 hard 层次的,但难以定义复杂性合适的模型,且能充分的选择 hard 样本. 因此,以级联方式来集合不同复杂度的模型,以充分挖掘 hard 样本;通过复杂度递增的一系列模型来判断样本,且只对被判断为 hard 的样本进行模型更新. 实验是将 GoogleNet 的两个辅助 loss 分支和一个主 loss 作为级联模型,三个分支 loss 的权重都设为1,三个分支的特征组合成最终的样本特征.
给定 loss 函数,可以根据传统的 hard example mining 方法来定义 loss 值较大的样本作为 hard examples,但多个 loss 值将被用于挖掘每一个样本的 hard examples.
由于不同模型的 loss 分布是不同的,且在训练过程中一直变化,因此在挖掘 hard examples 时,很难预定义每个模型的阈值.
这里采用一种简单的处理方式:
以降序方式对 mini-batch 内的所有的 positive 样本对的 losses 进行排列;然后取前 hkhkh^k 比例的样本作为模型 kkk 的 hard positive set; 类似地, 以降序方式对 mini-batch 内的所有的 negative 样本对的 losses 进行排列;然后取前 hkhkh^k 比例的样本作为模型 kkk 的 hard negative set; 被选取的 hard samples 传向后面的级联网络模型.
例示:
类似于 lifted structured feature embedding ,构建图像 mini-batch 作为输入,例如,一个 mini-batch 内的 100 张图片是均匀地从 10 个不同的类别中随机采样得到的.
为了利用更多训练样本,采用[Learning a metric embedding for face recognition using the multibatch method] 的 mini-batch 方法,构建 min-batch 内的所有图像对,以计算训练 loss;例如,一个 mini-batch 内有 100 张图片,可以构建 1002−100=99001002−100=9900100^2 - 100 = 9900 个图像对.
基于 HDC 级联模型,一张图片是由全部模型的链接特征来表示的.
算法:
HDC - image-retrieval tasks.