ChatGPT解决这个技术问题 Extra ChatGPT

与支持向量机相比,人工神经网络有哪些优势? [关闭]

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您认为此问题可以改进并可能重新打开,请访问帮助中心获取指导。 9年前关闭。

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 上使用是可取的?我问的原因是因为很容易回答相反的问题:支持向量机通常优于人工神经网络,因为它们避免了人工神经网络的两个主要弱点:

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

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

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

不幸的是,这可能很快就会关闭或移动,但我非常喜欢这个问题。我最想看到一系列深思熟虑的答案。
我想这个问题的大部分答案都是推测性的或基于证据的,因为对这些机器的能力几乎没有理论保证。例如(如果我没记错的话),不知道 n 层前馈神经网络是否比 2 层网络更强大。那么,如果我们甚至不了解同一模型的细微变化之间的关系,我们怎么能说原则上优于另一个呢?
由于不是很有建设性,它被关闭了……哈哈!
我喜欢 StackOverflow 试图保持高问题和答案的质量。我讨厌 StackOverflow 用斧头而不是手术刀来强制执行此操作。问“我该如何做 HTML stuffz?”是有区别的。以及在其他地方很难找到答案的特定领域问题。有 140 个赞成票是有原因的——但它被认为“没有建设性”。像这样的问题是建设性的缩影。当然,远比我每天看到的许多完全属于问答形式的人要多得多,但对除了提问者之外的几乎所有人都毫无用处。
这显然是建设性的。我不明白为什么它会被关闭。它要求使用一种算法比使用另一种算法具有优势的特定情况。这不是一个合理的问题吗?

F
Fred Foo

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

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

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

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


另一个原因可以在这篇论文中找到:yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf。简而言之,作者指出,“深层架构”可以比 SVM 等“浅层架构”更有效地表示“智能”行为/功能等。
顺便说一句,深度学习在一定程度上失去了这里给出的 MLP(固定大小,更简单的训练)的“优势”。不过,我不确定这些优势是否值得。
@MuhammadAlkarouri:深度学习是一套相当广泛的技术,但我熟悉的技术保留了模型参数化(固定大小)的好处。
两条评论:在线训练点是正确的,但是有一种专门为在线学习设计的类似 SVM 的分类器的变体,称为 MIRA(一种被动攻击分类器),其更新是微不足道的。其次,值得指出的是,许多神经网络可以通过核技巧被表述为 SVM。
@FredFoo ANN 也可能陷入局部最小值,因为支持向量机不容易出现这个问题。
A
Alan

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

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

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


实际上,支持向量机存在真正的多类公式(参见 Crammer 和 Singer 的论文)。我相信 LibSVM 包含这些的实现。
然而,训练一个多类 SVM 并不是那么容易,而且在 OVA 中的性能似乎比 AVA 方法更好。
“尝试用人工神经网络解决这个问题是没有意义的”您可以使用神经网络来解决手写数字的分类问题。我已将其作为一门课的硬件作业完成。输出层包含所有数字的概率。具有最高概率的类被用作假设。我有 94% 的准确率。
您的意思是创建 n 个 1 vs N-1 SVM 分类器与使用 NN 生成 n 个输出。 SVM 似乎以这种方式更慢?
B
Bryce

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


u
user513951

如果你想使用内核 SVM,你必须猜测内核。然而,人工神经网络是通用的逼近器,只需要猜测宽度(逼近精度)和高度(逼近效率)。如果您正确设计优化问题,您就不会过度拟合(请参阅参考书目了解过度拟合)。它还取决于训练示例是否正确且均匀地扫描搜索空间。宽度和深度发现是整数规划的主题。

假设您在 I=[0,1] 上具有有界函数 f(.) 和有界通用逼近器,范围又为 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 的离散近似值,但您希望最小化第二个。请记住,支撑长度是自由的。


r
rogerdpack

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


s
strozzino

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


在我看来,构建一个合理的内核和构建一个合理的度量嵌入同样是有问题的。所以这只是一个评论,可能有比指标更多样化的内核,但我并不真正相信这一点。 ohli.de/download/papers/Deza2009.pdf

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅