【CS231n】Deep Learning using Linear Support Vector Machines全文翻译

【CS231n】斯坦福大学李飞飞视觉识别课程笔记

Deep Learning using Linear Support Vector Machines

Yichuan Tang

Deep Learning using Linear Support Vector Machines - 原文

0 Abstract

最近,已经训练了全连接和卷积神经网络,去在语音识别,图像分类,自然语言处理和生物信息学等各种任务上实现最先进的性能。对于分类任务,大多数这些“深度学习”模型使用 s o f t m a x softmax 激活函数进行预测并最小化交叉熵损失。在本文中,我们展示了用线性支持向量机替换 s o f t m a x softmax 层的一个小而一致的优点。学习可以最大限度地减少基于保证金的损失,而不是交叉熵损失。虽然在现有技术中存在神经网络和 S V M SVM 的各种组合,但是我们使用 L 2 S V M L2-SVM 的结果表明,通过简单地用线性 S V M SVM 替换 s o f t m a x softmax ,在流行的深度学习数据集 M N I S T MNIST C I F A R 10 CIFAR-10 I C M L 2013 ICML 2013 表示学习研讨会的面部表情识别挑战上都获得显着的收益。

1 Introduction

使用神经网络的深度学习已经声称自己在各个领域的任务中都具有最先进的性能。这些包括(但不限于)演讲(Mohamed等人,2009; Dahl等人,2010)和视觉(Jarrett等人,2009; Ciresan等人,2011; Rifai等人,2011a; Krizhevsky等人,2012)。所有上述论文都使用softmax激活函数(也称为多项逻辑回归)进行分类。

用于分类的问题时,支持向量机是一个广泛使用的用来替代 s o f t m a x softmax 的方案(Boser等,1992)。过去已经提出将 S V M SVM (尤其是线性的)与卷积网络结合使用作为多阶段过程的一部分。具体而言,首先使用监督/无监督目标训练深度卷积网络以学习良好的不变的隐藏表示。然后将数据样本的相应隐藏变量视为输入并馈入线性(或内核) S V M SVM (Huang&LeCun,2006; Lee等人,2009; Quoc等人,2010; Coates等人,2011)。这种技术通常可以提高性能,但缺点是较低级别的功能是没有经过微调 w . r . t . S V M w.r.t. SVM 的目标。

其他论文也提出了相似的模型,但是使用标准神经网络和卷积神经网络对较低层的权重进行联合训练(Zhong&Ghosh,2000; Collobert&Bengio,2004; Nagi等,2012)。在其他相关的著作中,(Weston等人,2008)提出了一种用于深度学习的半监督嵌入算法,其中铰链损失与来自 s i a m e s e siamese 网络的“ c o n t r a s t i v e l o s s contrastive loss ”相结合(Hadsell等,2006)。使用随机梯度下降来学习较低层权重。(Vinyals等,2012)在每一层使用线性 S V M SVM 学习递归表示,但不对隐藏表示进行联合微调。

在本文中,我们展示了,对于一些深层架构使用线性 S V M SVM 顶层而不是 s o f t m a x softmax 是有益的。我们优化了 S V M SVM 的原始问题,并且可以反向传播梯度以学习较低级别的特征。我们的模型基本上与(Zhong&Ghosh,2000; Nagi等,2012)中提出的模型相同,提出的小小新颖性是使用 L 2 S V M L2-SVM 的损失代替标准铰链损失。与标准 S V M SVM 的铰链损失不同, L 2 S V M L2-SVM 的损失是可微分的并且严重地惩罚误差。原始的 L 2 S V M L2-SVM 目标是在 S V M SVM 发明之前3年提出的(Hinton,1989)!(Lee&Mangasarian,2001)也讨论了类似的目标及其优化。

与使用顶层 s o f t m a x softmax 的网络相比,我们在 M N I S T MNIST C I F A R 10 CIFAR-10 以及最近的 K a g g l e Kaggle 竞赛上展示了识别面部表情的卓越性能。使用小型微型计算机上的随机梯度下降进行优化。比较Sec3.4中的两个模型,我们认为性能增益很大程度上归功于 S V M SVM 损失函数的优越正则化效应,而不是更好的参数优化的优势。

2 The model

2.1 Softmax

对于使用深度学习技术的分类问题来说,在顶部使用 s o f t m a x softmax 1 o f K 1-of-K 编码是标准的。例如,给定10个可能的类, s o f t m a x softmax 层具有由 p i p_i 表示的10个节点,其中 i = 1 . . . 10 i = 1,...,10 p i p_i 指定一个离散概率分布,因此, i 10 p i = 1 \sum_{i}^{10} p_{i}=1

h h 为倒数第二层节点的激活, W W 为连接倒数第二层与 s o f t m a x softmax 层的权重,由 a a 给出的到 s o f t m a x softmax 层的总输入为
a i = k h k W k i a_{i}=\sum_{k} h_{k} W_{k i}
然后我们有
p i = exp ( a i ) j 10 exp ( a j ) p_{i}=\frac{\exp \left(a_{i}\right)}{\sum_{j}^{10} \exp \left(a_{j}\right)}
预计的分类 i ^ \hat{i} 将会是
i ^ = arg max i max p i = arg max i a i \begin{aligned} \hat{i} &=\arg \max _{i} \max p_{i} \\ &=\underset{i}{\arg \max } a_{i} \end{aligned}
2.2 Support Vector Machines

线性支持向量机 ( S V M ) (SVM) 最初是为二元分类而设计的。给定训练数据及其对应的标签 ( x n y n ) (x_n,y_n) n = 1 . . . N n = 1,...,N x n R D x_n∈R^D t n 1 + 1 t_n∈{-1,+ 1} S V M s SVMs 学习包括以下约束优化:
min w , ξ n 1 2 w w + C n = 1 N ξ n \min _{\mathbf{w}, \xi_{n}} \frac{1}{2} \mathbf{w}^{\top} \mathbf{w}+C \sum_{n=1}^{N} \xi_{n}
 s.t.  w x n t n 1 ξ n n ξ n 0 n \begin{array}{l}{\text { s.t. } \mathbf{w}^{\top} \mathbf{x}_{n} t_{n} \geq 1-\xi_{n} \quad \forall n} \\ {\xi_{n} \geq 0 \quad \forall n}\end{array}
ξ n ξ_n 是松弛变量,它会惩罚违反保证金要求的数据点。请注意,我们可以通过使用标量值1来扩充所有数据向量 x n x_n 来包含偏差。相应的无约束优化问题如下:
min w 1 2 w w + C n = 1 N max ( 1 w x n t n , 0 ) \min _{\mathbf{w}} \frac{1}{2} \mathbf{w}^{\top} \mathbf{w}+C \sum_{n=1}^{N} \max \left(1-\mathbf{w}^{\top} \mathbf{x}_{n} t_{n}, 0\right)
方程式的公式5被称为 L 1 S V M L1-SVM 的原始形式问题,具有标准铰链损失。由于 L 1 S V M L1-SVM 不可微分,因此一种流行的变体称为 L 2 S V M L2-SVM ,它最大限度地减小了平方铰链损耗:
min w 1 2 w w + C n = 1 N max ( 1 w x n t n , 0 ) 2 \min _{\mathbf{w}} \frac{1}{2} \mathbf{w}^{\top} \mathbf{w}+C \sum_{n=1}^{N} \max \left(1-\mathbf{w}^{\top} \mathbf{x}_{n} t_{n}, 0\right)^{2}

L 2 S V M L2-SVM 是可微分的,并且对于违反边际的点施加更大(二次与线性)损失。要预测测试数据x的类标签:
arg max t ( w x ) t \arg \max _{t}\left(\mathbf{w}^{\top} \mathbf{x}\right) t
对于内核 S V M s SVMs ,必须在双重中执行优化。但是,可伸缩性是内核 S V M s SVMs 的一个问题,在本文中,我们将仅使用具有标准深度学习模型的线性 S V M s SVMs

2.3 Multiclass SVMs

为多类问题扩展 S V M s SVMs 的最简单方法是使用所谓的 o n e v s r e s t one-vs-rest 方法(Vapnik,1995)。对于 K K 类问题, K K 线性 S V M s SVMs 将被独立训练,其中来自其他类的数据形成负面情况。Hsu&Lin(2002)讨论了其他替代多类 S V M SVM 方法,但我们将这些方法留给将来的工作。

将第 k k S V M SVM 的输出表示为
a k ( x ) = w x a_{k}(\mathbf{x})=\mathbf{w}^{\top} \mathbf{x}
预测的分类是
arg max k a k ( x ) \arg \max _{k} a_{k}(\mathbf{x})

请注意,使用 S V M s SVMs 的预测与使用 s o f t m a x softmax Eq. 3完全相同。 s o f t m a x softmax 和多类 S V M s SVMs 之间的唯一区别在于它们的目标由所有的权重矩阵 W W 参数化。 S o f t m a x Softmax 层最小化了交叉熵或最大化了对数似然,而 S V M s SVMs 只是试图找到不同类的数据点之间的最大余量。

2.4 Deep Learning with Support Vector Machines

大多数使用全连接层和卷积层进行分类的深度学习方法使用 s o f t m a x softmax 层目标来学习较低级别的参数。有一些例外,特别是(Zhong&Ghosh,2000; Collobert&Bengio,2004; Nagi等,2012),监督嵌入非线性 N C A NCA (Salakhutdinov&Hinton,2007)和半监督深度嵌入(Weston等人,2008)的论文中。在本文中,我们使用 L 2 S V M L2-SVM 的目标来训练深度神经网络进行分类。通过反向传播来自顶层线性 S V M SVM 的梯度来学习较低层权重。为此,我们需要区分 S V M SVM 目标与倒数第二层的激活。让我们的在Eq. 5中的目标为 l ( w ) l(w) ,和输入 x x 用倒数第二个激活 h h 替换,
l ( w ) h n = C t n w ( I { 1 > w h n t n } ) \frac{\partial l(\mathbf{w})}{\partial \mathbf{h}_{n}}=-C t_{n} \mathbf{w}\left(\mathbb{I}\left\{1>\mathbf{w}^{\top} \mathbf{h}_{n} t_{n}\right\}\right)
其中 I { } \mathbb{I}\{\cdot\} 是指标函数。同样,对于 L 2 S V M L2-SVM ,我们有
l ( w ) h n = 2 C t n w ( max ( 1 w h n t n , 0 ) ) \frac{\partial l(\mathbf{w})}{\partial \mathbf{h}_{n}}=-2 C t_{n} \mathbf{w}\left(\max \left(1-\mathbf{w}^{\top} \mathbf{h}_{n} t_{n}, 0\right)\right)
从这一点来看,反向传播算法与基于标准 s o f t m a x softmax 的深度学习网络完全相同。我们发现大多数时候L2-SVM略好于L1-SVM,并且在实验部分将使用L2-SVM。

3 Experiments

3.1 Facial Expression Recognition

本次竞赛/挑战由 I C M L 2013 ICML 2013 年代表性学习研讨会主办,该研讨会由蒙特利尔大学 L I S A LISA 组织。比赛本身在 K a g g l e Kaggle 举办,在最初的发展期间有超过120个竞争团队。该数据由7种不同类型表达下的28709个48x48的面部图像组成。有关示例及其相应的表达类别,请参见图1。验证和测试集由3589个图像组成,这是一个分类任务。

Winning Solution

我们提交了获胜解决方案,公共验证分数为69.4%,相应的私人测试分数为71.2%。我们的私人测试成绩比第二名的成绩高出近2%。由于标签噪音和其他因素(如数据损坏),人类的表现大致估计在65%至68%之间。

我们的提交包括使用一个简单的卷积神经网络,在顶部使用线性 o n e v s a l l one-vs-all S V M SVM 。具有动量的随机梯度下降用于训练,并且几个模型被平均以略微改善泛化能力。数据预处理包括首先减去每个图像的平均值,然后将图像范数设置为100。再然后通过去除其平均值,并将其值除以该像素的标准偏差来标准化所有训练图像的每个像素。
在这里插入图片描述
Figure 1. 训练数据。每列由相同表达式的面组成:从最左边的列开始:愤怒,厌恶,恐惧,快乐,悲伤,惊喜,中立。

我们的实现是在 C + + C ++ C U D A CUDA 中,使用 M E X MEX 文件到 M a t l a b Matlab 的端口。我们的卷积例程使用了 A l e x K r i z h e v s k y Alex Krizhevsky 编写的快速 C U D A CUDA 内核。确切的模型参数和代码由作者在https://code.google.com/p/deeplearning-faces上提供。

3.1.1 Softmax vs. DLSVM

我们使用 L 2 S V M ( D L S V M ) L2-SVM(DLSVM) 比较了使用深度学习的 s o f t m a x softmax 的性能。两种模型都使用8分割/折叠交叉验证进行测试,具有图像镜像层,相似性变换层,两个卷积滤波+池化阶段,接着是具有3072个隐藏倒数第二个隐藏单元的全连接层。隐藏层都是整流线性类型。使用交叉验证选择其他超参数,例如权重衰减。

我们还可以看看 S o f t m a x Softmax L 2 S V M L2-SVM 的验证曲线是图2中权重更新的函数。随着学习速率在训练的后半段降低, D L S V M DLSVM 保持了小但是明显的性能增益。

我们还绘制了两个模型的第一层卷积滤波器:

虽然通过查看这些滤波器可以获得的收益不多,但 S V M SVM 训练的 c o n v conv 网络似乎有更多的纹理滤波器。
在这里插入图片描述
Table 1. 根据%准确度对模型进行比较。训练c.v. 是8次分裂的平均交叉验证准确度。公共排行榜是通过 K a g g l e Kaggle 的公共排行榜获得的持久验证集。私人排行榜是用于确定比赛获胜者的最终私人排行榜得分。
在这里插入图片描述
Figure 2. 两个模型的交叉验证性能。结果平均超过8倍。

3.2 MNIST

M N I S T MNIST 是一种标准的手写数字分类数据集,已被广泛用作深度学习的基准数据集。这是一个10分类问题,有60000个训练样例和10000个测试用例。

我们使用简单的全连接模型,首先执行从784维到70维的 P C A PCA 。两个512个单元的隐藏层之后是 s o f t m a x softmax L 2 S V M L2-SVM 。然后将数据分成300个小批量,每个200个样本。我们使用随机梯度下降训练这些300个小批量的动量超过400 e p o c h s epochs ,共计120K权重更新。学习率的线性衰减从0.1到0.0。 s o f t m a x softmax 层上的 L 2 L2 权重成本设置为0.001。为了防止过度拟合并且对于获得良好结果至关重要,在输入中添加了许多高斯噪声。标准偏差噪声为1.0(线性衰减为0)。增加高斯噪声的想法来自这些论文(Raiko等,2012; Rifai等,2011b)。
在这里插入图片描述
Figure 3. 使用 s o f t m a x softmax 的卷积网过滤器。
在这里插入图片描述
Figure 4. 使用 L 2 S V M L2-SVM 的卷积网过滤器。

我们的学习算法是置换不变的,没有任何无监督的预训练,并获得这些结果: S o f t m a x 0.99 D L S V M 0.87 Softmax:0.99%,DLSVM:0.87%

对于上述学习设置, M N I S T MNIST 的错误率为0.87%(此时)可能是最先进的。 s o f t m a x softmax D L S V M DLSVM 之间的唯一区别是最后一层。本实验主要是为了证明最后一个线性 S V M SVM 层与 s o f t m a x softmax 的有效性,我们还没有详尽地探讨其他常用的技巧,如 D r o p o u t Dropout ,权重约束,隐藏单元稀疏性,添加更多隐藏层和增加层大小。

3.3 CIFAR-10

加拿大高等研究院10数据集是一个10类对象数据集,其中50000个图像用于训练,10000个用于测试。彩色图像的分辨率为32×32。我们训练了一个具有两个交替池化和过滤层的卷积神经网络。在使用128个数据案例的小批量更新权重之前,水平反射和抖动被随机应用于数据。

两个模型的卷积网络部分都相当标准,第一个 C C 层有32个5×5过滤器和 R e l u Relu 隐藏单元,第二个 C C 层有64个5×5过滤器。两个池化层都使用最大池化和两倍下采样。

倒数第二层有3072个隐藏节点,使用 R e l u Relu 激活, d r o p o u t dropout 率为0.2。 C o n v n e t + S o f t m a x Convnet + Softmax C o n v N e t ConvNet L 2 S V M L2-SVM 之间的区别主要在于 S V M SVM C C 常数, S o f t m a x Softmax 的权重衰减常数和学习速率。我们使用验证集分别为每个模型选择了这些超参数的值。
在这里插入图片描述
Table 2.在测试集上的%误差方面的模型比较。

在文献中,最先进的(在撰写本文时)结果约为9.5%(Snoeck等人,2012)。然而,该模型是不同的,因为它包括对比度标准化层以及使用贝叶斯优化来调整其超参数。

3.4 Regularization or Optimization

为了了解 D L S V M DLSVM 的增益是由于目标函数的优越性还是由于更好地优化能力,我们研究了两个最终模型在其自身目标函数和其他目标下的损失。结果见Table 3.
在这里插入图片描述
Table 3. 训练目标,包括权重成本。

有趣的是,这里注意到较低的交叉熵实际上导致了中间行的较高误差。此外,我们还初始化了一个 C o n v N e t + S o f t m a x ConvNet + Softmax 模型,其 D L S V M DLSVM 的权重为11.9%误差率。随着进一步的训练,网络的误差率逐渐增加到14%。

这提供了有限的证据,表明 D L S V M DLSVM 的增益很大程度上是由于更好的目标函数。

4 Conclusions

总之,我们已经证明 D L S V M DLSVM 在2个标准数据集和最近的数据集上比 s o f t m a x softmax 更好。从 s o f t m a x softmax 切换到 S V M SVM 非常简单,而且似乎对分类任务很有用。需要进一步研究以探索其他多类 S V M SVM 配方,并更好地了解获得增益的位置和数量。

猜你喜欢

转载自blog.csdn.net/TeFuirnever/article/details/89362361