今天介绍一下NormFace: L2 Hypersphere Embedding for Face Verification
Motivation
希望利用正则化解决两个问题:1. 人脸识别任务里面的loss有softmax、contrastive、triplet、pairwise等等,其中softmax是单个样本输入就可以训练的,其他的都是需要sample的,尤其是metric-learning每次要sample 3个样本才能算出一个loss,这会导致采样空间为N^3,速度慢而且采样策略对训练结果影响很大;2. softmax本身优化的是没有归一化的内积结果,但是最后在预测的时候使用的一般是cosine距离或者欧式距离,这会导致优化目标和最终的距离度量其实并不一致。我们之前做的时候用softmax训练做pretrain,然后后面用欧式距离的metric-learning做进一步学习或者finetune其实也是不大合理的,用一个欧式距离优化目标去finetune一个内积空间最优的模型应该不容易得到好的效果。
基本原理
既然最后在特征对比的时候使用归一化的cosine距离,那么就在训练的时候也把feature做归一化处理,即
,其中e是为了防止除0的较小正数。
对应的BP求导公式:
为了解释一下为什么需要normalize,作者还做了比较漂亮的数学推导并给出了可视化的结果。softmax loss倾向于学习到一个radial分布的特征,其原因在于特征的scale越大就会使得softmax的loss越小,figure.3里面是softmax之前的fc有bias的情况下会使得有些