当神经网络更加准确时,为什么仍在机器学习中使用SVM?
0 800
3
该提问暂无详细描述
收藏
2021-01-19 13:07 更新 karry •  4540
共 1 个回答
高赞 时间
0

这个问题使我想起北印度语俚语,它大概是说:“拿剑时不要扔掉针!”

在最近的各种任务中,神经网络已被证明比SVM更好,但是这里存在明显的观察偏差。

近来,神经网络正在发展。如果你有一项任务可以训练比SVM更好的NN,则可以发表论文。另一方面,如果你的任务是SVM比NN更好,那么你将无法发布它。因此,你只会听到故事的一侧。

现在,与SVM相比,NN有一些明显的局限性:

1.数据量大:要训练神经网络,你需要大量的数据。当你只有很少的数据时该怎么办?这是一组标准的基准数据集:UCI机器学习存储库:数据集。

从少于1000个训练示例的集合中选择任何数据集,然后尝试训练一个在数据上大大胜过SVM的NN。我认为这是迄今为止最重要的一点。

2.巨大的计算资源需求:除非拥有GPU,否则你无法对NN做很多事情。另一方面,你可以在没有GPU的个人计算机上训练SVM。

3.CNN需要空间特性:卷积运算对一组像素或附近的一组单词/音频信号执行运算。改组像素/词/音频信号将完全改变CNN的输出。也就是说,特征的顺序很重要,换句话说,卷积是一种“空间”操作。

SVM不受功能改组的影响。因此,不具有空间特性的问题将不会从CNN中受益。

4.不简单的参数优化:我已经在另一个答案中详细讨论了这个问题。对于SVM,你只需要调整2-3个参数。

5.难以解释的问题:很多时候,你对网络内部发生的事情一无所知,尤其是在靠近输出的层次上。这又使它们更难改进,因为你对出了什么问题不太了解。SVM可能也不是完全可解释的,但是它们比NN更可解释。

6.设置时间更长:除非你执行与ImageNet非常相似的操作,否则你将在网络上找不到预训练的模型。因此,即使基于标准的深度学习框架,你也必须编写大量代码来训练和评估合理的NN模型。

使用SVM,你只需下载LibSVM,即可在几分钟内开始训练模型。

这样做的目的不是淡化NN与SVM。回到我开头的类比中,这些是相似的算法,但是一个算法还不能替代另一个。

收藏
2021-01-19 14:34 更新 anna •  5042