人工神经网络比支持向量机有什么优势?[关闭]


381

ANN(人工神经网络)和SVM(支持向量机)是有监督的机器学习和分类的两种流行策略。哪种方法更适合特定项目通常不是很清楚,我敢肯定答案总是“取决于情况”。通常,将两者与贝叶斯分类一起使用。

关于ANN与SVM的关于Stackoverflow的这些问题已经被提出:

ANN和SVM分类

我的分类问题中ANN,SVM和KNN之间有什么区别

支持矢量机还是人工神经网络进行文本处理?

在这个问题中,我想具体了解ANN(特别是多层感知器)的哪些方面可能会使其更适合在SVM上使用?我问的原因是因为很容易回答相反的问题问题:支持向量机通常优于ANN,因为它们避免了ANN的两个主要缺点:

(1)ANN通常会收敛于局部最小值而不是全局最小值,这意味着它们有时本质上是“缺少全局”(或缺少树木的森林)

(2)人工神经网络经常过拟合如果训练时间太长,,这意味着对于任何给定的模式,神经网络可能会开始将噪声视为模式的一部分。

SVM不会遇到这两个问题。然而,将SVM完全替代ANN并不是很容易。那么,与支持向量机相比,人工神经网络具有哪些特定的优势,可能使其适用于某些情况?我已经列出了SVM相对于ANN的特定优势,现在,我希望看到ANN优势的列表(如果有)。


61
不幸的是,这可能很快就会关闭或转移,但是我绝对喜欢这个问题。我最希望看到这个问题的一系列周到的答案。
duffymo

10
我想这个问题的大多数答案将是推测性的或基于证据的,因为这些机器的功能几乎没有理论上的保证。例如(如果我没记错的话),不知道n层前馈神经网络是否比2层网络更强大。因此,如果我们什至不了解同一模型的微小变化之间的关系,我们怎么能说一个原则上比另一个原则更好?
JeremyKun 2012年

13
由于不具有建设性而已关闭...大声笑!
erogol

65
我喜欢StackOverflow试图保持高质量的问题和答案。我讨厌StackOverflow用斧头而不是手术刀来强制执行此操作。问“我怎么做HTML stuffz?”之间是有区别的。还有一个特定领域的问题,很难在其他地方找到答案。有140个投票的理由是有原因的-但它被认为“没有建设性”。这样的问题是建设性的缩影。当然,它比我每天看到的许多内容都整齐地纳入了问答形式,但对问询者以外的几乎所有人都毫无用处。
Chase Ries

20
这显然是建设性的。我不明白为什么要关闭它。它要求使用一种算法优于使用另一种算法的特定情况。这不是一个合理的问题吗?
拉布(Rab)2015年

Answers:


137

从您提供的示例来看,我假设对于ANN,您是指多层前馈网络(简称FF网络),例如多层感知器,因为它们与SVM直接竞争。

这些模型相对于SVM的一个特殊好处是它们的大小是固定的:它们是参数模型,而SVM是非参数模型。也就是说,在人工神经网络中,您有一堆隐藏层,其大小为h 1h n取决于功能的数量,再加上偏差参数以及构成模型的参数。相比之下,SVM(至少是一个内核化的)由一组支持向量组成,这些向量从训练集中选择,每个向量都有权重。在最坏的情况下,支持向量的数量正好是训练样本的数量(尽管主要是在小的训练集或退化的情况下出现),并且通常其模型大小会线性缩放。在自然语言处理中,具有成千上万个支持向量,每个都有成千上万个特征的SVM分类器并非闻所未闻。

而且,与在线SVM拟合相比,FF网络的在线培训非常简单,并且预测速度会更快。

编辑:以上所有内容均与内核化SVM的一般情况有关。线性SVM是一种特殊情况,因为它们参数化的,并允许使用简单算法(例如随机梯度下降)进行在线学习。


12
可以在本文中找到另一个原因:yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf。简而言之,作者指出,“深层架构”可以比“ SVM”之类的“浅层架构”更有效地表示“智能”行为/功能等。
alfa 2012年

1
顺便说一句,深度学习在某种程度上失去了MLP所具有的“优势”(固定大小,更简单的培训)。不过,我不确定这些优势是否值得。
穆罕默德·阿尔卡鲁里

6
@MuhammadAlkarouri:深度学习是一套非常广泛的技术,但是我熟悉的技术保留了参数化模型(固定大小)的好处。
弗雷德·富

有两个评论:在线培训的观点是正确的,但是有一个专门为在线学习而设计的类似SVM的分类器变体,称为MIRA(一种被动进取分类器),其更新很简单。其次,值得指出的是,可以通过内核技巧将许多神经网络表述为SVM。
本·艾里森

1
@FredFoo也可以将ANN停留在局部最小值中,因为支持向量机不容易出现此问题。
游客

62

人工神经网络优于支持向量机的一个明显优势是,人工神经网络可以具有任意数量的输出,而支持向量机只有一个。用支持向量机创建n元分类器的最直接方法是创建n个支持向量机,并逐一训练它们。另一方面,可以一次性训练带有神经网络的n元分类器。此外,由于神经网络是一个整体,因此神经网络将更有意义,而支持向量机是孤立的系统。如果输出相互关联,这将特别有用。

例如,如果目标是对手写数字进行分类,那么十个支持向量机就可以。每个支持向量机将只能识别一个数字,而不能识别所有其他数字。由于每个手写数字都不能只包含其类别,而不能容纳更多信息,因此尝试使用人工神经网络来解决这个问题没有任何意义。

但是,假设目标是根据易于测量的生理因素(例如自上次进餐后的时间,心率等)对人的激素平衡(针对几种激素)进行建模,因为这些因素都是相互关联的,人工神经网络回归比支持向量机回归更有意义。


18
实际上,支持向量机存在真正的多类公式(请参见Crammer&Singer的论文)。我相信LibSVM包含这些的实现。
弗雷德·富

3
但是,训练多类SVM并不是那么容易,并且OVA中的性能似乎比AVA方法更好。
crodriguezo

3
“尝试使用人工神经网络解决这个问题没有任何意义”您可以使用神经网络来解决手写数字的分类。我将其作为课程的硬件作业来完成。输出层包含所有数字的概率。具有最高概率的类别用作假设。我的准确率为94%。
user3266824 '16

您的意思是创建n个1与N-1 SVM分类器,而不是使用NN生成n个输出。SVM似乎以这种方式速度较慢?
mskw

@ user3266824是的,那句引用的年龄不够好。
runDOSrun

46

要注意的一件事是两者实际上是非常相关的。线性SVM等效于单层NN(即感知器),多层NN可以用SVM表示。有关详细信息,请参见此处


18

如果要使用内核SVM,则必须猜测内核。但是,人工神经网络是通用逼近器,只能猜测宽度(逼近精度)和高度(逼近效率)。如果正确设计了优化问题,则不会过拟合(请参见参考书目以了解过拟合)。如果它们正确正确地扫描了搜索空间,则还取决于训练示例。宽度和深度发现是整数编程的主题。

假设您在I = [0,1]上有界函数f(。)和有界通用逼近器,范围又是I = [0,1],例如,它们由紧致支持U(。,a)的实数序列参数化存在一个序列序列的性质

lim sup { |f(x) - U(x,a(k) ) | : x } =0

然后(x,y)用分布D 绘制示例和测试IxI

对于规定的支持,您要做的是找到最好的

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

让这个 a=aa是一个随机变量!,然后过度拟合

平均使用 D and D^{N} of ( y - U(x,aa) )^{2}

让我解释一下为什么,如果您选择aa使误差最小化,那么对于极少的一组值,您就可以完美拟合。但是,由于它们很少见,所以平均值永远不会为0。尽管您对D的离散近似值,但您想最小化第二个值。请记住,支撑长度是自由的。


14

我在这里缺少一个答案:多层感知器能够找到要素之间的关系。例如,在计算机视觉中,必须将原始图像提供给学习算法并计算出复杂的特征。本质上,中间级别可以计算新的未知功能。


12

我们还应该考虑将SVM系统直接应用于非度量空间,例如带标签的图形或字符串集。实际上,只要满足内核的正定性要求,内部内核函数就可以适当地推广到几乎任何类型的输入。另一方面,为了能够在一组带标签的图上使用ANN,必须考虑显式的嵌入过程。


6
在我看来,构造一个合理的内核和构造一个合理的度量嵌入同样是有问题的。因此,这只是一个评论,可能有比标准更多的内核,但是我并不是真的购买。ohli.de/download/papers/Deza2009.pdf
JeremyKun 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.