Large-Margin Softmax Loss for Convolutional Neural Networks

论文名称《Large-Margin Softmax Loss for Convolutional Neural Networks》
代码地址:https://github.com/wy1iu/LargeMargin_Softmax_Loss

摘要

大间隔softmax(Large-margin softmax,L-Softmax)使得学习到的特征分布类内高度内聚、类间距离足够大,同时也使得模型具有一定的防止过拟合的能力。提出的损失函数可以使用SGD很容易的进行端到端的训练,实验结果表明了提出的方法可以用于识别的验证任务。

简介

近年来,CNN在计算机视觉类的任务上取得了很好的成绩,取决于以下几点:

  1. 更深的网络模型,更小的stride,新的非线性**函数;
  2. 更强的计算能力;
  3. 大规模的数据集,正则化,数据增广等。

最近的发展趋势是使用CNN学习更好的特征,所谓更好的特征,就是指学习到的特征分布为同一类的特征分布比较聚集而不同类的特征分布之间有比较明显的间隔区域。

对比损失和三元组损失都可以达到上面提到的目的,但是他们的缺点是计算复杂度高,需要构建O(N2)的训练对,另外还需要非常仔细的进行训练对的构建。

最好的解决办法是在最通用的softmax loss的基础上实现上述的目的,这里提到的softmax loss包括了最后的全连接层、softmax函数和交叉熵loss计算部分。但是softmax loss本身并不能达到上述的目的,因此就需要对其进行改变。改变的核心思想就是样本与参数之间的相似度计算可以用余弦距离来衡量,Wcx=||Wc||2||x||2cos(θc)c表示类别,Wc表示和最后一个全连接层中关于类别c的权重参数,式子表明余弦距离和向量自身幅值、特征幅值及两者之间的夹角大小有关。对于一个待分类的特征来说,具体分到哪一类主要取决于向量和每一类权重向量之间的夹角,因此文章作者的目的就是设计L-softmax损失函数使得向量间具有较大的角度可分性。

具体的做法就是引入一个正整数m,使得向量与true label类参数之间的夹角为非true label类参数之间夹角的1m,下图给出了不同的m指下学习到的特征分布情况的对比,可以发现m值增大时,学习到的特征的可区分性和内聚性都在增强。
Large-Margin Softmax Loss for Convolutional Neural Networks

L-softmax

original softmax loss:
Large-Margin Softmax Loss for Convolutional Neural Networks
K类别数,f表示softmax函数得到的score向量,fj表示对应的第j类的score值,N是训练样本数。fyi=WTyixi,Wyi表示W的第yi列,忽视偏移项b。softmax loss就变形为:
Large-Margin Softmax Loss for Convolutional Neural Networks

简单示例

假设一个二分类的情况,对于输入的特征向量x正确的类别是1.原始的softmax loss只要WT1x>WT2x即可,L-softmax提出了更高的一个要求,需要||W1||||x||cos(mθ1)>||W2||||x||cos(mθ2)(0θ1πm),因为
Large-Margin Softmax Loss for Convolutional Neural Networks
所以WT1x>WT2x一定满足。所以加上m之后是对分类间隔提出了更高的要求,产生了更加严格的决策边界。

具体定义

Large-Margin Softmax Loss for Convolutional Neural Networks
m越大,类别之间的间隔越大,D(θ)是一个单调递减函数,且D(πm)=cos(πm)
Large-Margin Softmax Loss for Convolutional Neural Networks

几何意义

Large-Margin Softmax Loss for Convolutional Neural Networks

好处

  1. 几何上可解释,m越大,间隔越大;
  2. m越大,最小化损失函数的难度越大,过拟合的风险越小;
  3. L-softmax可以和其他的增强网络性能的手段共用。

实验效果

类别数多时,L-softmax 相比 softmax 更难收敛,学习策略是
Large-Margin Softmax Loss for Convolutional Neural Networks

分类:
Large-Margin Softmax Loss for Convolutional Neural Networks

Large-Margin Softmax Loss for Convolutional Neural Networks

Large-Margin Softmax Loss for Convolutional Neural Networks

一定程度上防止了过拟合:
Large-Margin Softmax Loss for Convolutional Neural Networks

LFW上人脸验证:
Large-Margin Softmax Loss for Convolutional Neural Networks