论文地址:Large-Margin Softmax Loss for Convolutional Neural Networks
摘要
提出问题:交叉熵损失和Softmax可以说是卷积神经网络(CNNs)中最常用的监督组件之一)。 尽管它简单,流行和优秀的香水 该组件没有明确地鼓励对特征的鉴别学习。
解决问题:本文提出了一种 large-margin Softmax(L-Softmax) 损失,它显式地鼓励类内紧凑和类间可分离。 此外,L-Softmax不仅可以调整所需的 margin ,而且可以避免过拟合。我们还表明,L-Softmax损失可以通过典型的随机梯度下降来优化。在四个基准数据集上的广泛实验表明,具有L-softmax损失的深度学习特征变得更加具有鉴别性,从而显著提高了各种性能 视觉分类和验证任务。
Introduction
对于内紧凑和类间可分离别人的做法是使用triplet loss、contrastive loss
我们的主要想法是,样本和参数之间的可分性,可以分解为振幅的和具有余弦相似度的角。在Softmax损失下,由于Softmax损失使用余弦距离作为分类评分,标签预测决策规则在很大程度上取决于与每个类的角度相似性。
其中:
- c是类索引,
- :最后一个完全连接层的相应参数可以看作是c类的线性分类器
L-Softmax损失是一个灵活的学习目标,具有可调的类间角 margin 约束。 它提出了一种难度可调的学习任务,随着 margin 变大,难度逐渐增加
L-Softmax损失目标直观,防止过拟合
Large-Margin Softmax Loss
(1)是softmax loss 损失公式
将表示成矩阵相乘后, softmax loss 变成(2)表示,此时它还是 softmax loss ,但是是以角度间距作为评价指标
添加决策边界magin后,就是L-SoftMax
不同图像:
为方便 forward and backward 我们构造了一个特定的:
其中:
- k ∈ [0, m − 1] and k is an integer.
不同权重在两种loss下的影响
Experiments and Results
- 我们评估了两种典型视觉应用中的广义Softmax损失:visual classification and face verification.。
- 在visual classification中,我们使用三个标准基准数据集:MNIST、CIFAR10和CIFAR100。
- 在face verification中,LFW数据集上评估了我们的方法。
网络:
- 基于VGG-net
- 卷积采用3X3 ,1填充,步长1
- 对于池层,如果特征映射大小减半,则过滤器的数量将增加一倍,以保持每层的时间复杂度
- 所有采用 PReLU 作为激活函数
- batch size = 256
- weight decay = 0.0005 、 momentum = 0.9
- 权重初始化
- batch normalization
- without dropout
- input - mean
- 优化器 = 随机梯度下降
然而,当训练数据有太多的分类(如CASIA-WebFace数据集)时,L-Softmax的收敛性将比Softmax损失更差。
换成上述公式,用一个非常大的λ开始梯度下降(它类似于优化原始Softmax)。 然后我们在迭代过程中逐渐减少λ。 理想情况下,λ可以逐渐减少到零,但一个小的值通常就足够了。
实验1:MNIST, CIFAR10, CIFAR100
设置:
- 学习率 = 0.1 #divide it by 10 at 12k and 15k iterations,
- 18k iterations 停止训练
- 45k/5k = train/val
MNIST数据集:
- 我们的网络架构如表1所示。
- 表2显示了以前的最佳结果和我们提出的L-Softmax损失的结果。
- 从图2看出:对于较大的m,我们确实得到了一个较大的角度决策margin。
CIFAR100数据集:我们还评估了CIFAR100数据集上的广义Softmax损失。 CNN架构参照表1。
CIFAR10数据集:
- 每边填充4个像素,从填充图像或其水平翻转中随机采样32×32。
- 在测试中,我们只有电动汽车, 结果见表3。
-
错误率 vs. 迭代:
看图看真相
实验2:Face Verification:
设置:
- 学习率 = 0.1, 0.01,0.001
- 共计:30 epochs
- 评估:LFW数据集,5749人,13,233张人脸图像。
- 训练:CASIA-WebFace数据集
- 对齐人脸,然后根据5点裁剪它们。
- 最后利用PCA形成一个紧凑的特征向量。
- 结果见表5。