(L-Softmax loss)Large-Margin Softmax Loss for Convolutional Neural Networks
论文地址:https://arxiv.org/abs/1612.02295
摘要
交叉熵损失和softmax可能是卷积神经网络(CNNs)中最常用的监控组件之一。尽管该组件简单、常用且性能优异,但它并不显式地鼓励对特性进行有区别的学习。在本文中,我们提出了一个广义的large-margin softmax (L-Softmax)损失,该损失明显地促进了学习特征之间的类内紧致性和类间可分性。此外,L-Softmax不仅可以调整所需的边缘,还能避免过拟合。我们还表明,L-Softmax损失可以通过典型随机梯度下降进行优化。在四个基准数据集上的大量实验表明,深入学习的L-SoftMax损失特征具有更强的识别力,从而显著提高了各种视觉分类和验证任务的性能。
1 引言
在过去的几年里,卷积神经网络(CNNs)在许多视觉分类任务中显著提高了最先进的性能,如物体识别,(Krizhevsky等,2012;Sermanet等人,2014年;He etal., 2015b;a),人脸验证(Taigman etal.,2014; Sunetal.,2014;2015)和手写数字识别(Wanetal.,2013)。分层的的学习体系结构,再加上卷积和池化技术,这些技术将特征从局部提取到全局,使CNN具有很强的视觉表达能力,同时也使其在大规模识别任务中具有重要地位。
面对日益复杂的数据,CNNs不断得到改进,结构更加深入(Simonyan & Zisserman, 2014;Szegedy等,2015),更小的步长(Simonyan & Zisserman, 2014)和新的非线性激活(Goodfellow等,2013;Nair & Hinton, 2010年;He等,2015b)。在得益于强大的学习能力的同时,CNN也面临着超负荷的问题。如大规模训练数据(Russakovsky et al., 2014)、dropout (Krizhevsky et al., 2012)、数据增强(Krizhevsky et al., 2012);Szegedy等,2015),正则化(Hinton等,2012;Srivastava等人,2014年;Wan等,2013;Goodfellow et al., 2013)和随机池(Zeiler & Fergus, 2013)解决了这一问题。
最近的一个趋势是使用更强的特征来增强CNN的识别性信息。直观地说,如果学习特征的类内紧密性和类间可分性同时最大化,那么学习得到的特征就是好的。然而在许多任务中,由于固有的较大的类内变异,这可能并不容易,但CNNs强大的表示能力使得向这个方向学习不变特征成为可能。在此思想的启发下,提出了对比损失(Hadsell et al., 2006)和三元组损失(Schroff et al., 2015)来加强额外的类内紧密性和类间可分性。
然而,随之而来的问题是训练对数量和三元组的数量理论上能够达到 N^2数量级,其中N为训练样本总数。考虑到CNN通常处理的是大规模的训练集,对于这些损失,需要仔细选择一个训练样本子集。由于其简单性和概率性的解释,softmax被许多CNNs广泛采用(Krizhevsky等,2012;He et al., 2015a;b)。加上交叉熵损失,它们可以说是CNN架构中最常用的组件之一。在本文中,我们将softmax损失定义为熵的组合损失,softmax函数和最后一个全连接层(见图1)。在这样的定义下,许多流行的CNN模型可以被视为一个卷积特性的结合学习组件和一个softmax损失组件,如图1所示。 尽管它很流行,当前的softmax损失并没有明确地鼓励类内的紧凑性和类间的可分离性。我们的主要直觉是样本与参数的可分离性可以分解为具有余弦相似度的振幅和角:W_cx=||W_c||_2||x||_2cos(θ_c),这里c用来索引类别,对应的最后一个全连接层的参数W_c可以被认为是类c的线性分类器。在softmax损失下,由于softmax损失使用余弦距离作为分类分数,标签预测决策规则很大程度上取决于与每个类的角度相似度。因此,本文的目的是在角度相似性方面将softmax损失推广为更一般的 large-margin softmax (L-Softmax)损失,从而导致学习特征之间的角可分离性可能更大。这是通过加入一个预设常数m乘以样本和ground truth分类器之间的角度来实现的。m决定了接近ground truth类的程度,产生一个角边。在我们提出的框架下,传统的softmax损失变成一种特殊的L-Softmax 损失。图2验证了我们的想法,在图中,L-Softmax学习的特征变得更加紧凑和分离良好。

图1.标准的CNN可以看作是由softmax loss监督的卷积特征学习器。

图2.CNN 在MNIST数据集上学习到的特征可视化(Softmax Loss (m=1) vs. L-Softmax Loss (m=2,3,4))。具体来说,我们将特性(L-Softmax损失的输入)维度设置为2,然后按类绘制它们。我们省略了全连接层中的常数项,因为它只会使我们的分析复杂化,而几乎不会影响性能。需要注意的是,测试精度不如表2的原因是我们只使用2D特征对数字进行分类。
L-Softmax损失是一个灵活的学习目标,具有可调的类间角度边界约束。它提出了一个难度可调整的学习任务,其中难度随着所需裕度的增大而逐渐增加。L-softmax损失有几个令人满意的优点。首先,它鼓励类间的角度留有余量,从而生成更多有区别的特性。它的几何解释非常清晰和直观,如3.2节所阐述的。其次,通过定义一个较难的学习目标,在一定程度上避免了过拟合问题,对过拟合问题提出了不同的观点。第三,L-Softmax不仅有利于分类问题,也有利于验证问题,即理想的学习特征应该有最小的类间距离大于最大的类内距离。在这种情况下,学习分离良好的特征可以显著提高性能。
实验证明,L-Softmax能够有效地提高分类和验证任务的性能。更直观的是,在图2和图5中对所学特征的可视化显示了对L-Softmax损失的很大的分辨力。作为softmax损失的直接概括,L-Softmax损失不仅继承了softmax损失的所有优点,还学习了不同类间角距大的特性。此外,L-Softmax损失也具有良好的动机,并有清晰的几何解释,如3.3节所述。
2 相关工作及初试
目前CNNs中广泛使用的数据损失函数有Euclidean loss, (square) hinge loss, information gain loss, contrastive loss, triplet loss, Softmax loss等。为了增强类内紧密性和类间可分性,(Sun et al., 2014)结合softmax loss和contrastive loss对CNN进行训练。contrastive loss的CNN输入为训练对。如果输入对属于同一类,则对比损失要求它们的特征尽可能相似。否则,对比损失将要求它们的距离大于余量。(Schroff et al., 2015)使用三元组损失来鼓励与对比损失相似的距离。不同的是,三元组损失要求一次输入3个(或3的倍数)训练样本。三元组损失使anchor样本和positive样本(相同的)之间的距离最小,使anchor样本和negative样本(不同的)之间的距离最大。三元组损失和对比损失都需要一个精心设计的配对选择程序。(Sun et al., 2014)和(Schroff et al., 2015)都认为,实施这样一种距离约束,鼓励类内的紧密性和类间的可分性,可以极大地提高特征的判别性,这促使我们在原有的softmax损失中采用边界约束。
不像任何以前的工作,我们的工作提出了一个新颖的观点,概括原来的softmax损失。我们用标签y_i定义x_i第i个输入。然后,最初的softmax损失可以写为:
L={1\over N}∑_iL_i={1\over N}∑_i-log({e^{f_{y_i}}\over ∑_je^{f_j}}),(1)
这里f_j为类分数向量f的第j个元素(j∈[1,K],K是类的索引),N是训练数据的数量。在softmax损失下,f通常是全连接层W的激活函数,所以f_{y_i}可以被记为f_{y_i}=W_{y_i}^Tx_i,这里W_{y_i}代表W的第y_i列。注意到,为了简化分析,我们在每一个f_j中忽略了常数b,但是我们的L-Softmax的损失仍然可以很容易地修改b。(实际上,性能几乎没有差别,所以这里我们就不把它复杂化)。因为f_j是W_j和x_i的内积,还可以由下式来计算:f_j=||W_j||||x_i||cos(θ_j),这里θ_j(0≤θ_j≤π)是向量W_j和x_i之间的角度。因此损失变成:L_i=-log({e^{||W_{y_i}||||x_i||cos(θ_{y_i})}\over ∑_je^{||W_j||||x_i||cos(θ_j)}}),(2)
3 Large-Margin SoftMax 损失
3.1.Intuition
我们举一个简单的例子来描述我们的直觉。考虑二分类,我们从类1中得到了一个样本x。为了给x正确的分类,原始的softmax强迫W_1^Tx>W_2^Tx,(例如,||W_1||||x||cos(θ_1)>||W_2||||x||cos(θ_2))。然而,我们希望使分类更加严格,以产生一个决策裕度。所以我们使用||W_1||||x||cos(mθ_1)>||W_2||||x||cos(θ_2)(0≤θ_1≤{π\over m})来代替,这里m是一个正整数。因为下面的不等式成立:||W_1||||x||cos(θ_1)≥||W_1||||x||cos(mθ_1)>||W_2||||x||cos(θ_2),(3)
因此,||W_1||||x||cos(θ_1)>||W_2||||x||cos(θ_2))肯定可以满足。因此,新的分类标准更严格地要求对x进行正确的分类,为类别1产生一个更严格的决策边界。
3.2 定义
根据预赛的记分,L-Softmax损失被定义为:

其中m是一个与分类裕度密切相关的整数。m越大,分类裕度越大,学习目标也越难实现。同时,要求D(θ)是一个单调递减函数,D({π\over m})等于cos({π\over m})

为了简化正向和反向传播,我们在本文中构造了一个特定的序列(简称:ψ(θ_i))

其中k∈[0,m−1],k为整数。结合式(1)、式(4)、式(6),在整个论文中我们有L-Softmax损失,。对于正向传播和反向传播,我们需要用{W_j^Tx_j\over ||W_j||||x_i||}替换cos(mθ_{y_i}),这里有

这里n是一个整数,且2n≤m。去掉了θ后,我们可以对x和W进行求导。用mini-batch输入进行求导也很简单。
3.2 几何解释
&esp; 我们的目标是通过L-Softmax的损失来鼓励角度差别的裕度。为了简化几何解释,我们分析了只有W1和W2的二值分类情况。
&esp; 首先,我们考虑||W_1||=||W_2||的场景,如图4所示。当||W_1||=||W_2||时,分类结果完全取决于x与W_1(W_2)之间的角度。x与W_1之间的角度为θ_1,x与W_2之间的角度为θ_2。在训练阶段,原softmax loss要求θ_1<θ_2将样本x分类为class 1, L-Softmax loss要求mθ_1<θ_2时,将样本x分类为class 1。我们可以更详细地了解L-Softmax分类标准,这导致了分类边界在class1和class2之间。如果我们假设softmax loss和L-Softmax loss都被优化到相同的值,并且所有的训练特征都能被很好的分类,那么class 1和class 2之间的角度差值为{m−1\over m+1}θ_{1,2},其中θ_{1,2}为分类器向量与W1和W2之间的角度。L-Softmax的损失也使得class 1和class2的决策边界不同,如图4所示,而原来的决策边界是相同的。从另一个角度来看,我们让θ_1^{'}=mθ_1,并假设原始的softmax损失和L-Softmax损失都可以优化到相同的值。然后我们可以知道原始的softmax损失的θ_1^{'}是L-Softmax损失的θ_1的m-1倍。这样,学习到的feature和W1之间的角度就会变小。对于每个类,都有相同的结论。本质上,L-Softmax缩小了每个类的分类角,并在这些类之间产生一个角度余量。

图4.几何解释的例子
对于||W_1||>||W_2||和||W_1||<||W_2||的情况,几何解释稍微复杂一些。由于W_1和W_2的长度不同,类1和类2的可行角也不同(图4中原始softmax损失的决策边界)。通常W_j越大,对应类的可行角越大。因此,L-Softmax损失也会对不同的类产生不同的可行角。与||W_1||=||W_2||场景的分析相似,该方法也在类1和类2之间产生了一个裕度。
3.4 讨论
L-Softmax损失简单的修改原来的softmax损失,实现了分类之间的角度空白。通过给m赋不同的值,我们为CNN定义了一个具有可调难度的灵活学习任务。L-Softmax损失被赋予了一些良好的性能,如
- L-Softmax损失具有清晰的几何解释。m控制着类之间的边界。m越大(在相同的训练损失下),类间的理想差越大,学习难度也越大。当m = 1时,L-Softmax损失与原来的softmax损失相同。
- L-softmax损失定义了一个相对困难的学习目标与可调整的边际(困难)。一个困难的学习目标可以有效地避免过拟合,充分利用深度和广度架构中强大的学习能力。
- L-Softmax 损失可以很容易地替代标准loss,也可以与其他性能提升方法和模块一起使用,包括学习激活函数、数据增强、池化功能或其他修改后的网络架构。
4 优化
计算L-Softmax损失的向前和向后传播很容易,所以使用典型的随机梯度下降优化L-Softmax损失也很简单。对L_i来说,最初的softmax的损失和L-Softmax的损失的唯一区别就在于f_{y_i}。因此,我们只需要计算f_{y_i}向前和向后传播,而j≠y_i的f_j与原来的softmax损失相同。加入Eq.(6)和Eq.(7),写为
其中,k是属于[0,m-1]的整数。

对于反向传播,我们用链式法则计算偏导数:



在实现过程中,通过构造一个{w^T_{y_i}x_i\over||w_{y_i}||||x_i||}(即cos(θ_{y_i})的查找表,可以有效地计算出k


5 实验结果
5.1 实验设置


实验结果
6 结论
针对卷积神经网络,提出了一种L-Softmax损失算法。L-Softmax损失定义了一个具有可调边际的灵活学习任务。我们可以设置参数m来控制边界。m越大,类间的决策裕度也越大。更吸引人的是,大边际的Softmax损失具有非常清晰的直觉和几何解释。在几个基准数据集上的广泛实验结果显示,与目前最先进的cnn和所有比较基线相比,有明显的优势。
