神经网络与支持向量机:第二个绝对优越吗?

机器算法验证 机器学习 支持向量机 神经网络
2022-01-31 05:36:14

我读过的许多论文作者都确认 SVM 是解决他们的回归/分类问题的优越技术,他们意识到他们无法通过 NN 获得类似的结果。通常比较表明

支持向量机,而不是神经网络,

  • 有很强的创始理论
  • 由于二次规划达到全局最优
  • 选择适当数量的参数没有问题
  • 不太容易过拟合
  • 需要更少的内存来存储预测模型
  • 产生更易读的结果和几何解释

这真的是一个被广泛接受的思想吗?不要引用无免费午餐定理或类似的陈述,我的问题是关于这些技术的实际使用。

另一方面,对于 NN,您肯定会面临哪种抽象问题?

4个回答

这是一个权衡的问题。支持向量机现在,神经网络曾经. 您会发现越来越多的论文声称存在随机森林、概率图形模型或非参数贝叶斯方法。有人应该在“不可能研究年鉴”上发布一个预测模型,说明哪些模型会被认为是时髦的。

话虽如此,对于许多著名的困难监督问题,性能最好的单个模型是某种类型的 NN、某种类型的 SVM 或使用信号处理方法实现的特定于问题的随机梯度下降方法。


NN的优点:

  • 它们在可以支持的数据类型方面非常灵活。NNs 在从基本上任何数据结构中学习重要特征方面做得不错,而无需手动派生特征。
  • NN 仍然受益于特征工程,例如,如果你有长度和宽度,你应该有一个区域特征。对于相同的计算工作,该模型将表现更好。

  • 大多数有监督的机器学习都要求您将数据构建在按特征矩阵的观察中,并将标签作为长度观察的向量。NN 不需要此限制。结构化 SVM 的工作非常出色,但它不太可能像 NN 一样灵活。


支持向量机的优点:

  • 更少的超参数。通常,支持向量机需要较少的网格搜索才能获得相当准确的模型。带有 RBF 内核的 SVM 通常表现得非常好。

  • 保证全局最优。


NN 和 SVM 的缺点:

  • 在大多数情况下,它们都是黑匣子。有一些关于解释 SVM 的研究,但我怀疑它是否会像 GLM 一样直观。这在某些问题域中是一个严重的问题。
  • 如果您要接受黑盒,那么您通常可以通过装袋/堆叠/提升许多具有不同权衡的模型来提高准确性。

    • 随机森林很有吸引力,因为它们无需额外的努力就可以产生袋外预测(留一法预测),它们非常易于解释,它们具有良好的偏差-方差权衡(非常适合装袋模型)并且它们对选择偏差相对稳健。编写并行实现非常简单。

    • 概率图形模型很有吸引力,因为它们可以将特定领域的知识直接整合到模型中,并且在这方面是可解释的。

    • 非参数(或非常参数)贝叶斯方法很有吸引力,因为它们直接产生置信区间。它们在小样本量上表现非常好,在大样本量上表现非常好。编写线性代数实现非常简单。

根据我的经验,您的问题的答案是“不”,SVM 并不绝对优越,哪种效果最好取决于手头数据集的性质以及操作员使用每组工具的相关技能。一般来说,支持向量机是好的,因为训练算法很有效,而且它有一个正则化参数,这迫使你考虑正则化和过拟合。但是,在某些数据集中,MLP 的性能比 SVM 好得多(因为它们可以决定自己的内部表示,而不是由内核函数预先指定)。MLP(例如 NETLAB)和正则化或提前停止或架构选择(或者最好是全部三个)的良好实现通常可以产生非常好的结果并且是可重现的(至少在性能方面)。

模型选择是 SVM 的主要问题,如果过度优化模型选择标准,选择内核并优化内核和正则化参数通常会导致严重的过拟合。虽然支持 SVM 的理论是一种安慰,但其中大部分仅适用于固定内核,因此一旦您尝试优化内核参数,它就不再适用(例如在调整内核时要解决的优化问题通常是非凸的并且很可能具有局部最小值)。

我将尝试解释我的大多数朋友似乎都同意的观点。我对 NN 有以下与 SVM 无关的担忧:

  1. 在经典的 NN 中,参数的数量非常多。假设您要将长度为 100 的向量分类为两类。一个与输入层大小相同的隐藏层将引导您获得超过 100000 个免费参数。试想一下,你可能会过拟合有多严重(在这样的空间中降到局部最小值是多么容易),你需要多少训练点来防止这种情况(以及你需要多少时间训练)。
  2. 通常,您必须是真正的专家才能一目了然地选择拓扑。这意味着如果你想获得好的结果,你应该进行大量的实验。这就是为什么更容易使用 SVM 并告诉您使用 NN 无法获得类似结果的原因。
  3. 通常 NN 结果是不可重现的。即使您运行两次 NN 训练,由于学习算法的随机性,您可能会得到不同的结果。
  4. 通常你根本没有对结果的解释。这是一个小问题,但无论如何。

这并不意味着你不应该使用 NN,你应该小心使用它。例如,卷积神经网络可以非常适合图像处理,其他深度神经网络也被证明对其他问题也有好处。

希望它会有所帮助。

我正在使用神经网络来解决大多数问题。关键是在大多数情况下,它更多的是关于用户的体验而不是模型。以下是我喜欢神经网络的一些原因。

  1. 他们很灵活。我可以向他们扔任何我想要的损失:铰链损失,平方,交叉熵,你说的。只要它是可微的,我什至可以设计一个完全符合我需要的损失。
  2. 它们可以被概率处理:贝叶斯神经网络、变分贝叶斯、MLE/MAP,一切都在那里。(但在某些情况下更难。)
  3. 他们很快。大多数 MLP 将是两个矩阵乘法和一个非线性应用组件。用 SVM 打败它。

我将逐步介绍您的其他观点。

有很强的创始理论

我想说的是,NN 在这种情况下同样强大:因为您在概率框架中训练它们。这使得使用先验和贝叶斯处理(例如,使用变分技术或近似)成为可能。

由于二次规划达到全局最优

对于一组超参数。但是,对好的 hps 的搜索是非凸的,您将不知道是否也找到了全局最优值。

选择适当数量的参数没有问题

使用 SVM,您还必须选择超参数。

需要更少的内存来存储预测模型

您需要存储支持向量。SVM 存储 MLP 通常不会更便宜,这取决于具体情况。

产生更易读的结果和几何解释

MLP 的顶层是分类情况下的逻辑回归。因此,存在几何解释(分离超平面)和概率解释。