人工神经网络相对于支持向量机的优势是什么?

395

ANN(人工神经网络)和SVM(支持向量机)是两种常用的监督式机器学习和分类策略。对于特定项目,哪种方法更好通常不太清楚,我确定答案总是“因情况而异”。通常情况下,会同时使用这两种方法以及贝叶斯分类。

以下是Stackoverflow上已经就ANN与SVM提出的问题:

ANN和SVM分类

在我的分类问题中,ANN、SVM和KNN有何不同

文本处理中应该使用支持向量机还是人工神经网络?

在这个问题中,我想知道ANN(具体来说是多层感知器)的哪些方面可能使其比SVM更具备吸引力?我问这个问题的原因是因为很容易回答相反的问题:SVM通常优于ANN,因为它们避免了ANN的两个主要弱点:

(1)ANN通常收敛于局部极小值而不是全局极小值,这意味着它们有时基本上“看不到大局”(或“树木看不到森林”)

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

SVM没有这两个问题。然而,SVM并不被认为是完全取代ANN的方法。那么,ANN相比SVM具有哪些特定优势,使其适用于某些情况?我已经列出了SVM优点的具体清单,现在我想看到ANN的优点清单(如果有)。


61
很不幸,这个问题可能很快就会被关闭或移动,但我非常喜欢这个问题。我最想看到的就是对这个问题有深思熟虑的回答。 - duffymo
10
我想这个问题的大多数答案都是基于推测或证据,因为这些机器的能力很少有理论保证。例如(如果我没记错的话),我们不知道一个n层前馈神经网络是否比一个2层网络更强大。因此,如果我们甚至不理解同一模型的微小变化之间的关系,我们怎么能原则上说一个比另一个更好呢? - JeremyKun
13
因为不太有建设性,所以已经关闭了……哈哈! - erogol
68
我喜欢StackOverflow努力保持问题和答案的高质量。但我讨厌StackOverflow用斧头而不是手术刀来强制执行这一点。问“如何做HTML?”与一个领域特定且在其他地方难以找到答案的问题是有区别的。这就是为什么这个帖子有140个赞-但它被认为是“不具建设性”的原因。像这样的问题就是建设性的典范,肯定比我每天看到的那些整齐地落入问答格式的却对除提问者以外的大多数人毫无用处的问题要好得多。 - Chase Ries
22
这显然是具有建设性的。我不明白为什么会被关闭。它在询问在特定情况下使用一种算法相对于另一种算法具有优势的具体情况。这难道不是一个合理的问题吗? - Rab
显示剩余7条评论
6个回答

141
根据您提供的例子,我猜测您所说的ANN是指多层前馈网络(简称FF网络),例如多层感知器,因为它们直接与SVM竞争。
这些模型相比于SVM具有一个特定的优势,即它们的大小是固定的:它们是参数化模型,而SVM是非参数化模型。也就是说,在ANN中,您有一堆隐藏层,其大小取决于特征数量,加上偏差参数,这些组成了您的模型。相比之下,SVM(至少是核化的)由一组支持向量组成,这些向量从训练集中选择,并带有每个向量的权重。在最坏的情况下,支持向量的数量恰好等于训练样本的数量(虽然这主要发生在小训练集或退化情况下),通常其模型大小呈线性缩放。在自然语言处理中,SVM分类器具有数万个支持向量,每个支持向量具有数十万个特征,这并不罕见。
此外,与在线SVM拟合相比,FF网络的在线培训非常简单,并且预测速度可以更快。
编辑:以上所有内容都适用于核化SVM的一般情况。线性SVM是特殊情况,因为它们是参数化的,并且允许使用诸如随机梯度下降等简单算法进行在线学习。

13
另一个原因可以在这篇论文中找到:http://yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf。简而言之,作者指出,“深度结构”可以比SVM等“浅层结构”更有效地表示“智能”的行为/函数等。 - alfa
1
顺便提一下,深度学习在 MLP(固定大小、训练简单)方面失去了这里所提供的“优势”。虽然我不确定这些优势是否值得。 - Muhammad Alkarouri
6
深度学习是一组非常广泛的技术,但我熟悉的那些技术保留了模型参数化(固定大小)的好处。 - Fred Foo
两点注释:在线培训的观点是正确的,但有一种专门为在线学习设计的SVM类分类器变体,称为MIRA(一种被动侵略分类器),其更新是微不足道的。其次,值得指出的是,许多神经网络可以通过核技巧公式化为SVM。 - Ben Allison
@BenAllison:线性支持向量机可以轻松地进行在线训练,这是真的(SGD + hinge loss比MIRA更容易)。但是对于核支持向量机的在线训练,您需要专门的算法。我假设这就是OP的意思,因为线性支持向量机和多层网络之间的区别更容易说明:多层网络是通用逼近器,而线性支持向量机只是线性模型。 - Fred Foo
1
@FredFoo,另外,人工神经网络可能会陷入局部最小值,而支持向量机则不容易出现这个问题。 - tourist

66
人工神经网络比支持向量机明显的优势之一是,人工神经网络可以具有任意数量的输出,而支持向量机仅有一个。使用支持向量机创建一个n元分类器的最直接方式是创建n个支持向量机,并逐个训练它们。另一方面,使用神经网络创建n元分类器可以一次性训练完成。此外,由于神经网络是一个整体,而支持向量机是孤立的系统,因此神经网络更容易理解。如果输出是相互关联的,则这特别有用。
例如,如果目标是对手写数字进行分类,则需要十个支持向量机。每个支持向量机将仅识别一个数字,并且无法识别其他所有数字。由于每个手写数字不能包含比其类别更多的信息,因此尝试使用人工神经网络来解决这个问题没有意义。
然而,假设目标是模拟人的荷尔蒙平衡(多种荷尔蒙)作为易于测量的生理因素的函数,如上次进餐时间、心率等... 由于这些因素都是相互关联的,所以使用人工神经网络回归比支持向量机回归更合适。

20
实际上,支持向量机存在真正的多类别表述(请参阅Crammer&Singer的论文)。我相信LibSVM包含了对这些的实现。 - Fred Foo
3
然而,训练一个多类支持向量机并不容易,且在OVA方法中性能似乎比AVA方法更好。 - Cristian Rodriguez
4
“试图使用人工神经网络解决这个问题是没有意义的。”你可以使用神经网络来解决手写数字的分类问题。我曾经在课堂作业中完成过这项任务。输出层包含所有数字的概率值,具有最高概率的数字被用作假设。我获得了94%的准确率。” - user3266824
你的意思是创建n个1对N-1的SVM分类器,而不是使用NN来生成n个输出。这种方式中SVM似乎更慢? - mskw

50

需要注意的一点是,这两者实际上非常相关。线性支持向量机等价于单层神经网络(即感知机),多层神经网络可以用SVM的术语来表达。有关详细信息,请参见此处


21

如果您想使用核支持向量机,您必须猜测核函数。然而,人工神经网络是具有通用逼近能力的,所需猜测的只是宽度(逼近精度)和高度(逼近效率)。如果您正确设计了优化问题,就不会出现过拟合(请参见参考文献中的过拟合)。此外,这还取决于训练样例是否正确地均匀地扫描了搜索空间。宽度和深度探索是整数规划的主题。

假设您拥有定义在I=[0,1]上、值域为I=[0,1]的有界函数f(.)和有界通用逼近器,例如由实数序列U(.,a)参数化的紧支撑序列。对应地,存在一个序列的序列使得

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

你需要使用分布D在IxI上绘制示例和测试(x,y)

对于给定的支持,你要做的就是找到最佳的a,使得

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

假设这个a=aa是一个随机变量!过度拟合为

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

让我解释一下,如果你选择使误差最小的aa,那么对于一组罕见的值,你就会得到完美的匹配。然而,由于它们很少出现,所以平均值永远不会为0。您希望最小化第二项,尽管您对D有离散的近似,并且要牢记支持长度是自由的。


16

这里缺少一个答案: 多层感知器能够找到特征之间的关联。例如,在计算机视觉中,当学习算法提供原始图像并计算出复杂特征时,这是必要的。 实质上,中间层可以计算出新的未知特征。


13

我们还应该考虑到支持向量机系统可以直接应用于非度量空间,如标记的图形或字符串集。实际上,只要核符合正定性的要求,内部核函数就可以很好地推广到几乎任何类型的输入。另一方面,为了能够在一组带标签的图形上使用人工神经网络,必须考虑显式嵌入过程。


6
在我看来,构建一个合理的核和构建一个合理的度量嵌入同样具有问题。因此,这只是一个评论,即可能存在比度量更多样化的内核,但我并不真正相信这一点。(注:链接为参考资料,无需翻译) - JeremyKun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接