人脸识别系列(十三):SphereFace

论文链接:SphereFace: Deep Hypersphere Embedding for Face Recognition

从Center Loss的论文发布开始,人脸识别技术的研究重心就转向损失函数的改进了,这篇论文作者从几种损失函数开始说起。

几种损失函数

softmax损失仅仅能够学到分辨性不够强的特征,除此之外,还有contrastive losscenter losstriplet loss

但是它们都在一定程度上存在弊端:

center loss仅能使得类内紧凑,无法使得类间可分。

contrastive loss和triplet loss需要pair/triplet 挖掘过程,增加时间的损耗。

除此之外,还有一个更关键之处:以上的损失函数都使用了欧式距离,而softmax损失学习到的特征有角度上的分布特性

作者做了一个实验,构建了一个CNN来学习CASIA-webface的一个子集的特征,输出的全连接层FC1为两层,所以可以可视化。原始Softmax训练出来的特征分布如下图(a),其他几张图可以暂时不用看。
这里写图片描述

通过以上实验与center loss论文,证明了softmax损失学习到的特征有角度上的分布特性,因此在这种意义上,欧式距离与softmax损失是不兼容的,所以作者认为结合softmax损失和欧式距离效果可能不是最佳的。

一步一步推导A-Softmax

modified Softmax

为了让特征学习到更可分的角度特性,作者首先对Softmax进行了一些改进:

为了简单起见,先假设是一个二分类问题,

softmax的决策边界是:这里写图片描述

如果我们通过W的归一化来添加约束条件:
这里写图片描述
这里写图片描述
那么我们可以得到决策边界:
这里写图片描述
这样的损失函数称为改进了的Softmax(modified Softmax),通过这样的损失函数学习,可以使得学习到的特征具有更明显的角分布,因为决策边界只与角有关。

假设对于输入特征Xi,它的标签是Yi,用f(Yi)表示WiXi即Softmax对应Yi那一位的输出

Softmax的损失函数
这里写图片描述

modified Softmax的损失函数

这里写图片描述

A-Softmax

还可以进一步修改
这里写图片描述

通过添加系数m,对θ1有了更强的约束,因为cos(mθ1)比cosθ1要小。此时损失函数变为:
这里写图片描述

由于cosθ在[0,pi]上单调递减,因此θ有上界:
这里写图片描述
我们为了使得这个函数随角度单调递减,构造一个函数去代替cos:
这里写图片描述

这里写图片描述
这是一个根据定义域分段的分段函数,博主作为灵魂画手,就手画了一下这个函数的图,给大家一个大概的印象

这样损失函数就会变为
这里写图片描述

A-Softmax的性质

性质:在二分类问题中,对于一个训练好的A-Softmax层,两个类的类内角度特征距离为 m1m+1θ m − 1 m + 1 θ
其中θ表示两个类的权值W1,W2之间的夹角。证明:

性质一
A-Softmax Loss定义了一个大角度间隔的学习方法,m越大这个间隔的角度也就越大,相应区域流形的大小就越小,这就导致了训练的任务也越困难。

定义:定义 mmin m m i n 为当 m>mmin m > m m i n 时,类内的最大角度特征距离小于类间的最小角度特征距离。

性质二
这里写图片描述

证明左:

这里写图片描述

证明右:

右边的证明是将多个类的分布视为圆上的平均分布,所以对于任意的Wi,两边都是对称的,可以得到以下不等式:

这里写图片描述
解之后得到m>=3

实验及结果

网络结构:

这里写图片描述

训练集:CASIA-webface

batchsize: 128

28K次迭代收敛

测试时的算法:连接一张图以及其水平翻转的图的FC1输出,PCA降维后计算余弦距离

不同m对准确率的影响

这里写图片描述

LFW得分
这里写图片描述

这里写图片描述

你可能感兴趣的:(人脸识别系列(十三):SphereFace)