Deep Learning using Linear Support Vector Machines基于SVM的深度学习论文解析

因为很多基础知识的讲解,自己也无法更新,所以很多是用的别人的东西,大部分是改进和组合起来解释Deep Learning using Linear Support Vector Machines这篇论文,引用已经放到了最后。

  • 介绍

本篇论文主要介绍的是支持向量机(SVM)在全连接卷积神经网络(CNN)里的应用。主要进行的优化就是把softmax算法更换为SVM算法。其中SVM使用的模型为2l-SVM。

全连接卷积神经网络

1)结构

输入层(input layer)

卷积层(convolution layer)

池化层(pooling layer)

分类输出层(全连接层+Softmax layer)

前三个步骤为特征提取,最后一个步骤为分类。重要的是最后一个步骤在下面的详细解说。

2)详细介绍

以下介绍只介绍大概过程,计算方法有多种。(文中没有讲具体计算过程)

输入层(input layer)

进行输入为矩阵。

卷积层(convolution layer)

我们按照下方这个图片所演示的这样,每一块都做一下矩阵的乘法运算。这样就得到了一组卷积特征值,这些个卷积特征值,又会组成一个新的矩阵。

池化层(pooling layer)

所谓的“池化”,其实是指特征值筛选。比如说,没经过一个“过滤器”的计算,整个图片都会形成一个卷积特征矩阵,我挑选当中元素值最大(或平均)的(其实就相当于把和卷积核最像的那部分给提取出来了)。这个图片在经历所有的“过滤器”运算后,我就可以把这当中所有的最大值(或平均值)都给筛选出来,这样一来,就会组成一个新的图形矩阵。

分类输出层(全连接层+Softmax layer)

输出层在整个卷积神经网络中起到“分类器”的作用,把之前我们获得的特征矩阵进行分类。我们要进行的方法更换的就是在这一层。

2.Softmax

Softmax的目标是最小化交叉熵损失。

Logit回归模型

在logit模型中,因变量只有两个取值0或-1表示阴性,代表事情没有发生;1表示阳性,表示事情发生了。例如,在预测信用卡是否会违约中,我们可以用0表示没有违约,1表示违约。我们就可以把每个类的每个特征值看作一个因变量。我们令Y取零值(阴性值)的概率是1-P,P为Y取1(阳性值)的概率。

这是最终的logit模型表达式:

i=1,2,3,4,5,6……n表示的是有n个样本。

k表示的是解释变量的个数(不含常数项)。如果每个类此时有3个特征值,k的取值就是3。

然后这个值将会被传输到最后总结的图的系统进行计算。

交叉熵

交叉熵在单分类中的应用

(交叉熵=损失函数)

为该事件实际概率,一般情况下为1;为该事件的预测概率。预测为该事件的概率越大越好,概率越大,交叉熵越小。

举个例子:

交叉熵->softmax的推导

i.优化的目标函数

我们将n维特征经过一个线性变换,让cnn网络输出3分数,之前的logit模型就告诉了我们,是猫多少分,是狗多少分,是人多少分。如果真实类别是狗,那么我们的目标函数希望,狗的分数,要比猫和人的分数都高,可以这么说,输出C个分数时目标分数比最大的非目标分数更大:

ii.目标函数的第一次smooth:LogSumExp

LogSumExp函数如下:

二者的关系是:

 smooth之后的目标函数如下:

 iii.目标函数的第二次smooth:softmax交叉熵

Softmax

最终的结构图如下:

 通过公式以及上面的推导,可以看出来,交叉熵越小,该图像为正确图像分类的概率就越大。Softmax就是通过不断迭代求出最合适的卷积权重来获得最小的softmax值。Softmax的目标就是最小化交叉熵损失。

3、SVM

SVM的目标是尽量把两个类分开并且使两个类之间的距离最大。

主要思路是设置一个找平面,找出尽量把两个类分开并且使两个类之间的距离最大的超平面进行分类。

文中说明使用l2-SVM的识别率是最高的。SVM、l1-SVM和l2-SVM的区别如下:

SVM优化目标函数:

l1-SVM和l2-SVM优化函数:

  • 实验

特征向量对比:

实验脸:

softmax结果:

 SVM结果:

 可以看出来softmax得出来的特征脸之间很相似很难区分,但是SVM得出来的特征脸之间区别就比较大,可以很好识别。

实验结果:

MNISTSoftmax: 0.99% DLSVM: 0.87%

CIF AR-10

 Regularization or Optimization

  • 分析

两个模型的主要区别为softmax模型主要是根据卷积得到的特征向量的关键程度进行分权然后去分类,而SVM则是根据特征向量在空间上的分布进行全部特征的分割。相比起来,SVM就会注意到一些比较细微的特征,就可以充分利用每一个特征,识别率就更高。

同时SVM的计算时间复杂度也比softmax低,可以节省大量时间。

当然要觉得选择哪一种方法还是得看具体情况,如果是特征特别明显的可能softmax识别率会更高,因为去除了一些噪音。

还有我觉得这篇文章其实有一个缺点是没有给前面卷积的具体计算公式,因为模型的整个结构的前后部分肯定会相互影响的,同时也会对衔接什么样的方法产生影响。

  • References(太累了就不去搞专门的reference了)

  1. Yichuan Tang tang, Department of Computer Science, University of Toronto. Toronto, Ontario, Canada:Deep Learning using Linear Support Vector Machines
  2. 张峻弘支持向量机理论简介[1]ppt
  3. 汪贝琪基于L1范数惩罚的SVM分类器通用软学习方法ppt
  4. 深度学习:https://blog.csdn.net/johnny_love_1968/article/details/117636049?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165735489316782350899080%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165735489316782350899080&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-3-117636049-null-null.142^v32^control,185^v2^control&utm_term=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&spm=1018.2226.3001.4187
  5. 深度学习:https://blog.csdn.net/Small___ming/article/details/121348071?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-121348071.142^v32^control,185^v2^control&spm=1018.2226.3001.4187
  6. Softmax:https://blog.csdn.net/tsyccnh/article/details/79163834?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165736872316780357278923%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165736872316780357278923&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-79163834-null-null.142^v32^control,185^v2^control&utm_term=%E4%BA%A4%E5%8F%89%E7%86%B5&spm=1018.2226.3001.4187
  7. Softmax:https://blog.csdn.net/weixin_45209433/article/details/124680780?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165737202916781432932306%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165737202916781432932306&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-124680780-null-null.142^v32^control,185^v2^control&utm_term=softmax%E7%9B%AE%E6%A0%87%E5%87%BD%E6%95%B0&spm=1018.2226.3001.4187
  8. Softmax:https://blog.csdn.net/bitcarmanlee/article/details/82320853?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165736702116781435476022%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165736702116781435476022&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-82320853-null-null.142^v32^control,185^v2^control&utm_term=softmax&spm=1018.2226.3001.4187
  9. Softmax:https://zhuanlan.zhihu.com/p/139676145
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joy_szu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值