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值增大时,学习到的特征的可区分性和内聚性都在增强。
这里写图片描述

L-softmax

original softmax loss:
这里写图片描述
K 类别数,f表示softmax函数得到的score向量, fj 表示对应的第j类的score值,N是训练样本数。 fyi=WTyixi,Wyi 表示 W 的第yi列,忽视偏移项b。softmax loss就变形为:
这里写图片描述

简单示例

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

具体定义

这里写图片描述
m越大,类别之间的间隔越大, D(θ) 是一个单调递减函数,且 D(πm)=cos(πm)
这里写图片描述

几何意义

这里写图片描述

好处

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

实验效果

类别数多时,L-softmax 相比 softmax 更难收敛,学习策略是
这里写图片描述

分类:
这里写图片描述

这里写图片描述

这里写图片描述

一定程度上防止了过拟合:
这里写图片描述

LFW上人脸验证:
这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值