SVM 与 MLP(神经网络):按性能和预测准确性进行比较



对于某些图像处理应用程序,我应该在SVM和神经网络之间做出决定。分类器必须足够快,以便近乎实时地应用,准确性也很重要。由于这是一项医疗应用,因此分类器具有低故障率非常重要。

哪一个是更好的选择?

几个附带条件:

ML 分类器的性能可以指 (i( 分类器本身的性能;或 (ii( 谓词步骤的性能:模型构建算法的执行速度。特别是在这种情况下,答案会有很大不同,具体取决于 OP 中打算使用两者中的哪一个,因此我将分别回答每个答案。

其次,通过神经网络,我假设你指的是最常见的实现 - 即前馈,反向传播的单隐藏层感知器。

训练时间 (模型生成器的执行速度(

与 NN 相比,对于 SVM:SVM 要慢得多。这有一个简单的原因:SVM 训练需要解决相关的拉格朗日对偶(而不是原始(问题。这是一个二次优化问题,其中变量的数量非常大,即等于训练实例的数量(数据矩阵的"长度"(。

实际上,如果方案中存在两个因素,可能会抵消此优势:

    NN 训练对于并行化(
  • 通过 map reduce(来说很简单;并行化 SVM 训练并非微不足道,但也并非不可能——在过去的八年左右的时间里,已经发布了几个实现并被证明是有效的(https://bibliographie.uni-tuebingen.de/xmlui/bitstream/handle/10900/49015/pdf/tech_21.pdf(。

  • 多类分类问题 SVM 是两类分类器。它们可以适应多类问题,但这从来都不是简单的,因为 SVM 使用直接决策函数。(将 SVM 修改为多类问题的一个很好的来源是 S. Abe,用于模式分类的支持向量机,Springer,2005 年(。这种修改可能会抹去 SVM 相对于 NN 的任何性能优势:例如,如果你的数据有两个以上的类,并且您选择使用连续分类(又称一对多分类(哪些数据被馈送到第一个 SVM 分类器 哪个分类器数据点可以是I类或其他;如果类是其他的,则数据点被馈送到第二个分类器,该分类器对其进行分类II类或其他等

预测性能 (模型的执行速度(

与 NN 相比,SVM 的性能要高得多。对于三层(一个隐藏层(NN ,预测需要将输入向量连续乘以两个 2D 矩阵(权重矩阵(。对于 SVM,分类涉及确定给定点位于决策边界的哪一侧,换句话说,余弦积

预测准确性

通过"故障率",我假设您指的是错误率,而不是生产使用中分类器的故障。如果是后者,那么 SVM 和 NN 之间几乎没有区别——这两种模型通常都是数值稳定的。

比较两个模型的预测准确性,并假设两者都经过了有效的配置和训练,SVM 的性能将优于 NN

SVM 优于 NN 的分辨率在科学文献中得到了很好的记录。确实,这种比较取决于两个模型的数据、配置和参数选择。事实上,这种比较已经被如此广泛地研究 - 也许是所有可以想象的参数空间 - 并且结果如此一致,即使在不切实际的情况下存在一些例外(尽管我不知道任何异常(也不应该干扰SVM优于NN的结论。

为什么支持向量机的表现优于 NN?

这两种模型基于根本不同的浸出策略。

在 NN 中,调整网络权重(NN 的拟合参数,在训练期间进行调整(,以使网络输出与实际值(目标(之间的平方和误差最小化。

相比之下,训练 SVM 意味着直接从训练数据中显式确定决策边界。当然,这是构建 SVM 模型所需的优化问题的谓词步骤所必需的:最小化最大边距超平面和支持向量之间的聚合距离。

在实践中,虽然很难配置算法来训练 SVM。原因是由于配置所需的参数数量很多(与 NN 相比(:

  • 内核的选择

  • 内核参数的选择

  • 选择边距参数的值

最新更新