391

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

Stackoverflow 上的这些问题已经被问到关于 ANN 与 SVM 的关系:

ANN和SVM分类

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

支持向量机或人工神经网络进行文本处理?

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

(1) 人工神经网络经常收敛于局部最小值而不是全局最小值,这意味着它们有时本质上是“错过了大局”(或只见树木不见森林)

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

SVM 不会遇到这两个问题中的任何一个。然而,支持向量机完全替代人工神经网络这一点并不明显。那么,ANN 相对于 SVM 有哪些特定优势可能使其适用于某些情况?我已经列出了 SVM 相对于 ANN 的具体优势,现在我想查看 ANN 优势列表(如果有的话)。

4

6 回答 6

141

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

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

此外,与在线 SVM 拟合相比,FF 网络的在线训练非常简单,并且预测速度会快很多。

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

于 2012-07-24T14:42:44.193 回答
66

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

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

然而,假设目标是将一个人的激素平衡(几种激素)建模为易于测量的生理因素的函数,例如自上次进餐后的时间、心率等……由于这些因素都是相互关联的,因此人工神经网络回归比支持向量机回归更有意义。

于 2012-11-24T21:03:43.820 回答
50

需要注意的一点是,两者实际上非常相关。线性 SVM 等价于单层 NN(即感知器),而多层 NN 可以用 SVM 表示。请参阅此处了解一些详细信息。

于 2012-11-24T20:23:53.867 回答
21

如果你想使用内核 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 的离散近似值,但您希望最小化第二个。请记住,支撑长度是自由的。

于 2012-11-25T05:39:45.053 回答
16

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

于 2012-11-25T09:43:13.197 回答
13

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

于 2012-11-24T19:41:45.213 回答