就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果你觉得这个问题可以改进并可能重新打开,visit the help center 寻求指导。




8年前关闭。




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

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

ANN and SVM classification

what the difference among ANN, SVM and KNN in my classification question

Support Vector Machine or Artificial Neural Network for text processing?

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

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

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

SVM 不会遇到这两个问题中的任何一个。然而,SVM 是否意味着完全替代 ANN,这一点并不明显。那么,ANN 相对于 SVM 有哪些特定优势,可能使其适用于某些情况?我已经列出了 SVM 相对于 ANN 的特定优势,现在我想查看 ANN 优势列表(如果有的话)。

最佳答案

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

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

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

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

关于machine-learning - 人工神经网络与支持向量机相比有哪些优势?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11632516/

10-12 21:37