对于某些图像处理应用程序,我应该在 SVM 和神经网络之间做出决定。分类器必须足够快以实现近实时应用,并且准确性也很重要。由于这是医疗应用,因此分类器具有低故障率很重要。
哪一个是更好的选择?
对于某些图像处理应用程序,我应该在 SVM 和神经网络之间做出决定。分类器必须足够快以实现近实时应用,并且准确性也很重要。由于这是医疗应用,因此分类器具有低故障率很重要。
哪一个是更好的选择?
一些附带条件:
ML 分类器的性能可以指 (i) 分类器本身的性能;或 (ii) 谓词步骤的性能:模型构建算法的执行速度。特别是在这种情况下,答案完全不同,具体取决于 OP 中打算使用的两者中的哪一个,因此我将分别回答每个问题。
其次,通过神经网络,我假设您指的是最常见的实现——即前馈、反向传播的单隐藏层感知器。
训练时间 (模型构建器的执行速度)
对于 SVM 与 NN 相比: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,其中数据被馈送到第一个 SVM 分类器,将数据点分类为I 类或其他; 如果该类是 other ,则将数据点馈送到第二个分类器,该分类器将其分类为
II 类或other等。
预测性能 (模型的执行速度)
与 NN 相比,SVM 的性能要高得多。对于三层(一个隐藏层)NN,预测需要将输入向量连续乘以两个二维矩阵(权重矩阵)。对于 SVM,分类涉及确定给定点位于决策边界的哪一侧,即余弦积。
预测精度
通过“故障率”,我假设您的意思是错误率,而不是分类器在生产使用中的故障。如果是后者,那么 SVM 和 NN 之间几乎没有差异——这两种模型通常在数值上都是稳定的。
比较两个模型的预测精度,并假设两者都经过适当的配置和训练,SVM 将优于 NN。
SVM 相对于 NN 的卓越分辨率在科学文献中有详细记载。确实,这样的比较取决于两个模型的数据、配置和参数选择。事实上,这种比较已经被广泛研究——也许是所有可以想象的参数空间——结果如此一致,即使在不切实际的情况下存在一些例外(尽管我不知道)也不应该干扰了 SVM 优于 NN 的结论。
为什么 SVM 优于 NN?
这两种模型基于根本不同的学习策略。
在 NN 中,调整网络权重(NN 的拟合参数,在训练期间调整)以使网络输出与实际值(目标)之间的平方和误差最小化。
相比之下,训练 SVM 意味着直接从训练数据中明确确定决策边界。这当然是构建 SVM 模型所需的优化问题的谓词步骤:最小化最大边距超平面和支持向量之间的总距离。
在实践中,虽然配置算法来训练 SVM 更难。原因是由于配置所需的参数数量很大(与 NN 相比):
内核的选择
内核参数的选择
边距参数值的选择