作者认为用于训练的三元组很重要,使用经过筛选的三元组数据训练,在LFW上识别率达到了99.63%。使用深度卷积网学习图像的欧式嵌入。
方法描述:
使用了两个网络Zeiler&Fergus,Inception网络。这个系统的架构如下:
将三元组损失用于识别,认证和聚类任务。学习一个embedding 函数 f(x) 将图像x映射到特征空间 Rd ,使得同一人脸间的平方距离最小。
1.三元组损失
同一人间的距离小,不同人间的距离大:
损失函数是为了最小化:
损失函数学习的结果如下:
这里的关键是选择hard的三元组,让模型快速收敛,原则是,给定 xai ,选择hard正样本,最大化 ||f(xai)−f(xpi)||22 ,选择hard负样本,最小化 ||f(xai)−f(xni)||22 。这有可能导致误标记或质量较差的图像主宰hard的正样本和负样本。
作者介绍了两个方法避免这种情况,
Generate triplets offline every n steps, using the most recent network checkpoint and computing the argmin and argmax on a subset of the data.
Generate triplets online. This can be done by selecting the hard positive/negative exemplars from within a mini-batch.
为了避免选择最难的负样本,选择满足如下条件的semi-hard负样本,这些负样本落在margin
α
的内部:
深度卷积网
作者使用了两个网络,分别分析FLOPS和网络参数对结果的影响,两个网络一个大一个小,分别用在数据中心和移动手机上,第一个ZF的网络深度为22层,有140百万个参数,每幅图像需要16亿次浮点运算。第二个网络是GoogleNet的Inception模型,参数和浮点运算次数小很多。
FLOPS与准确率之间的关系: