支持向量机的人工神经网络的优点是什么?

ANN(人工神经网络)和SVM(支持向量机)是监督机器学习和分类的两种流行策略。 对于一个特定的项目来说哪种方法更好并不是很清楚,我肯定答案总是“取决于”。 通常使用两者的组合以及贝叶斯分类。

关于Stackoverflow的这些问题已经被问到关于ANN和SVM:

ANN和SVM分类

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

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

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

(1)人工神经网络往往汇聚在局部最小值而不是全球最小值上,这意味着它们有时会“缺失大局”(或缺少树木的森林)

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

SVM不会受到这两个问题的影响。 然而,支持向量机意味着完全替代人工神经网络并不是显而易见的。 那么人工神经网络对SVM有什么特别的优势可以使它适用于某些情况? 我已经列出了支持神经网络的特定优势,现在我想看看ANN优势列表(如果有的话)。


从你提供的例子来看,我假设人工神经网络意味着多层前馈网络(简称FF网络),例如多层感知器,因为它们与SVMs直接竞争。

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

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

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


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

例如,如果目标是对手写数字进行分类,那么十个支持向量机就可以做到。 每个支持向量机都会识别一个数字,而不能识别所有其他数字。 由于每个手写数字不能保存更多的信息而不仅仅是它的类,所以尝试用人工神经网络解决这个问题是没有意义的。

然而,假设目标是根据容易测量的生理因素(例如自上次进餐以来的时间,心率等),将人的激素平衡(对于多种激素)建模为模型。由于这些因素都是相互关联的,所以人造神经网络回归比支持向量机回归更有意义。


有一点要注意的是,这两者实际上是非常相关的。 线性支持向量机等价于单层神经网络(即感知器),多层神经网络可以用支持向量机表示。 看到这里的一些细节。

链接地址: http://www.djcxy.com/p/32071.html

上一篇: What are advantages of Artificial Neural Networks over Support Vector Machines?

下一篇: Epoch vs iteration when training neural networks