对于某些图像处理应用,我应该在 SVM 和神经网络之间做出决定。分类器必须足够快以进行近实时应用,并且准确性也很重要。由于这是一种医学应用,因此分类器具有低故障率非常重要。
哪个是更好的选择?
最佳答案
几个条件:
ML 分类器的性能可以指 (i) 分类器本身的性能;或 (ii) 谓词步骤的性能:模型构建算法的执行速度。特别是在这种情况下,答案是完全不同的,这取决于 OP 中打算使用两者中的哪一个,因此我将分别回答。
其次,通过神经网络,我假设您指的是最常见的实现——即前馈、反向传播的单隐藏层感知器。
培训时间 (模型构建器的执行速度)
对于 SVM 与 NN 的比较: SVM 慢得多 .这有一个简单的原因:SVM 训练需要解决相关的拉格朗日对偶(而不是原始)问题。这是一个二次优化问题,其中变量的数量非常大——即,等于训练实例的数量(数据矩阵的“长度”)。
在实践中,如果您的场景中存在两个因素,可能会抵消这一优势:
两个以上的类,并且您选择使用以下方法配置 SVM
连续分类(又名一对多分类)
哪些数据被馈送到第一个 SVM 分类器,该分类器对
数据点 I 类或其他;如果类(class)是其他然后
数据点被馈送到第二个分类器,该分类器对其进行分类
II类或其他等。
预测性能 (模型的执行速度)
与 NN 相比,SVM 的性能要高得多。对于三层(一个隐藏层)NN,预测需要将输入向量连续乘以两个二维矩阵(权重矩阵)。对于 SVM,分类涉及确定给定点位于决策边界的哪一侧,即余弦积。
预测精度
通过“失败率”,我假设您的意思是错误率,而不是分类器在生产使用中的失败。如果是后者,那么 SVM 和 NN 之间几乎没有区别——这两种模型通常在数值上都是稳定的。
比较两个模型的预测精度,并假设两者都经过适当的配置和训练, SVM 将优于 NN。
scientific literature 中详细记录了 SVM 相对于 NN 的出色分辨率。 .确实,这样的比较取决于两个模型的数据、配置和参数选择。事实上,这种比较已经得到了如此广泛的研究——也许是所有可以想象的参数空间——而且结果如此一致,以至于在不切实际的情况下,即使存在一些异常(exception)(尽管我不知道)也不应该干扰了 SVM 优于 NN 的结论。
为什么 SVM 优于 NN?
这两种模式基于根本不同的学习策略。
在 NN 中,网络权重(NN 的拟合参数,在训练期间调整)被调整,使得网络输出和实际值(目标)之间的平方和误差最小。
相比之下,训练 SVM 意味着 直接从训练数据中明确确定决策边界 .这当然是构建 SVM 模型所需的优化问题的谓词步骤:最小化最大边距超平面和支持向量之间的总距离。
在实践中,虽然配置算法来训练 SVM 更难。原因是由于配置所需的大量参数(与 NN 相比):
关于machine-learning - SVM 与 MLP(神经网络): compared by performance and prediction accuracy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672268/