人脸识别算法的通用深度学习框架可以看作是特征提取器+分类器两个部分组成的。
其中前者负责在人脸图像上提取特征,将图像转换成高维度特征向量。当前深度学习的人脸特征提取主要基于卷积神经网络实现。
后者负责在特征提取器当中的某一个FC层上形成紧凑的、判断力强的特征,即让每个人脸的特征向量产生距离,以此达到分类的效果。
人脸识别的本质是目标检测当中的一种,理论上来讲一切强力或不强力的目标检测网络都可以作为人脸识别当中的特征提取器使用,只需要在特定的层上链接至人脸识别的分类器即可。
因而人脸识别区别于其他目标检测的方面在于分类器的选取上。
Softmax是soft(软化)的max。在CNN的分类问题中,我们的ground truth是one-hot形式,下面以四分类为例,理想输出应该是(1,0,0,0),或者说(100%,0%,0%,0%),这就是我们想让CNN学到的终极目标。
早年的目标检测多使用softmax作为分类器。Softmax顾名思义是soft(软化)的max分类器,它将每个输出x非线性放大到exp(x),计算输出占比并输出百分比置信度。与之相对应的分类器叫做hardmax,两者的对比如下:

早年的DeepFace采用6层CNN + 4096特征映射 + 4030类Softmax,综合如3D Aligement, model ensembel等技术,在LFW上达到97.35%。
softmax主要问题在于,它并不严格要求类内紧凑和类间分离。而在人脸识别当中,我们除了保证可分性外,还要做到特征向量类内尽可能紧凑,类间尽可能分离。
2016年的ICML上发表了了Large-Margin Softmax Loss for Convolutional Neural Networks,这一文章提出了Large-Margin Softmax Loss ,成为多种人脸识别loss的原型。
这一损失函数首先结合了softmax和交叉熵损失函数,然后加强分类条件,强制让对应类别的权重W和特征x的夹角增加到原来的m倍。表达式如下:
这一文章的后续工作是2017年CVPR上的SphereFace。
