出处:ICML 2016
论文:http://proceedings.mlr.press/v48/liud16.pdf
代码:https://github.com/luoyetx/mx-lsoftmax
摘要:
交叉熵损失与softmax一起可以说是卷积神经网络(CNN)中最常用的监督组件之一。 尽管该组件具有简单性,流行性和出色的性能,但并未明确鼓励对功能进行辨别性学习。 本文提出了一个广义的large-margin softmax(L-Softmax)损失,它鼓励了学习特征之间的类内紧凑性和类间可分离性。此外,L-Softmax不仅可以调整所需的余量,还可以避免过拟合。L-Softmax还可以通过典型的随机梯度下降来优化,显着提高了各种视觉分类和验证任务的性能。
1 简介
最近学习具有更强大特征的趋势是通过更具辨别力的信息来强化CNN。 直观地说,如果它们的类内紧凑性和类间可分离性同时最大化,则学习的特征是好的。受这种想法的启发,提出了contrastive loss 和 triplet loss,以实现额外的类内紧凑性和类间可分离性。但是,训练样本对和三元组的数量可以达到O(N2),对于大规模训练样本来选择好的训练对就成了很大的问题。
对于Large-Margin Softmax Loss的效果,先直观感受一下结果,后续再来分析:
2 相关工作
contrastive loss:需要给CNN输入一个样本对,如果是属于同一类别,要求它们直接的特征相近。反之则需要留较大的距离。
triplet loss:输入三元组样本,最小化 anchor 和 positive 样本的距离,最大化 anchor 和 negative 样本的距离
original softmax loss:
L=N1i∑Li=N1i∑−log(∑jefjefyi)
由于fyi=WyiTxi=∥Wj∥∥xi∥cos(θj)
所以Li=−log(∑jeWyiTxi=∥Wj∥∥xi∥cos(θj)e∥Wyi∥∥xi∥cos(θyi))
3 方法
3.1 引言
original softmax为了正确将x分类是希望W1Tx>W2Tx⇔∥W1∥∥X∥cos(θ1)>∥W2∥∥X∥cos(θ2)
为了使分类更严格以产生决策余量,所以定义一个正整数m (0 ≤ θ1 ≤ π/m )。
通过这种方式定义损失会逼得模型学到类间距离更大的,类内距离更小的特征。
3.2 定义
L-Softmax loss 被定义为:
为了简化正向传播与反向传播算法,作者在这篇文章构造了一个具体的函数
3.3 几何解释
L-softmax loss 是为了鼓励不同类别之间有一个角度间距,例举二分类
比如当||W1||=||W2||时,original softmax loss 要求 θ1 < θ2 去判别样本 x 属于 1,而 L-Softmax loss 只要求 mθ1 < θ2 去做相同的判别.