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

130521 次浏览

从你提供的例子来看,我假设你所说的ann是指多层前馈网络(简称FF网络),比如多层感知器,因为它们与svm直接竞争。

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

此外,FF网络的在线培训与在线SVM拟合相比非常简单,并且预测可以快得多。

编辑:以上所有内容都适用于内核化svm的一般情况。线性支持向量机是一个特殊的情况,因为他们参数化和允许在线学习与简单的算法,如随机梯度下降。

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

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

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

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

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

如果你想使用核支持向量机你必须猜测核。然而,ann是通用逼近器,只需要猜测宽度(逼近精度)和高度(逼近效率)。如果你正确地设计了优化问题,你就不会过度拟合(请参阅书目关于过度拟合)。这也取决于训练样本是否正确且一致地扫描搜索空间。宽度和深度的发现是整数规划的主题。

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

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

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

对于一个规定的支持,你要做的就是找到最好的一个这样的

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的离散近似,记住支撑长度是自由的。

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