softmax 简介
公式
结论性分析
- 因其易于优化,收敛快等特性被广泛应用于图像分类领域。
- softmax 本身并不要求类内紧凑和类间分离,直接使用 softmax loss 训练拿到的 feature 并不适合于 retrieval, verification 等任务,比如人脸识别。
- 使用 softmax 训练的深度特征,会把整个超球面按照类别数进行划分,目的是让所有的类别在概率空间具有最大的对数似然,保证类别是可分的;但是 retrieval 和 verification 任务需要的是泛化性能更好的度量空间。这两者虽然强相关但并不等价。
人脸识别领域的主要技术进展集中在如何改进 softmax 的 loss,使得既能充分利用其易于优化,收敛快的优良性质,又使得其能优化出一个具有优良泛化性的表征空间。而这些技术改进主要又能被归为两大类别,做归一化以及加 margin。
归一化
logit 计算
feature 和 类别 weight 的点积,为了最大化 logit,优化会倾向于:
增大正确类别的 weight norm,样本多,简单的类别,weight norm 大。反之则小。
- 增大 feature norm, 简单样本 norm 大,困难样本 norm 小。
-
weight 归一化
数据不均衡会影响 weight 的 norm,样本数多的类别对应的 norm 会更大。
本质是在训练网络时,引入一个先验知识:无论类别本身的 sample 数量是多还是少,所有类别的地位都应该是平等的,因此它们的 weight 的 norm 也是相似的。
feature 归一化
feature 归一化近似于白化,可以更好利用特征空间。
对 feature 做归一化, 网络难以收敛,需要乘一个缩放因子。
类间 angular margin
Angular margin

表示 feature 和 weight
的夹角, 为了再两类中间留下空白, 要求分界面是
。
为了分类正确, 每个样本的特征会被压缩到一个更小的空间,两个类别的分类面也会被拉开, 此时两个类别之间的 angular decision margin 是。
L-softmax
其中,
论文中给出为:
L-softmax 对夹角做了一些约束,m = 2 时如下图所示,
SphereFace
对于 target 类别,=>
。
引入 angular margin 后, 网络的训练变得异常困难:乘性 margin 把 cos 函数的单调区间缩小了,导致优化困难。
- 乘性 margin 所造成的 margin 实际上是不均匀的。两个 class 之间的 angular decision margin 是
, 如果两个 class 之间已经挨得很近, 那么 angular margin 也是接近 0 。
AM-softmax
ArcFace
其中在区间
上不是单调递减的,因此需要用分段函数来替代,
magin 的一些对比:
