支持向量机(SVM)是否适合大规模数据

关于什么是大规模机器学习显然,大小是个相对的概念,在机器学习的语境下也不例外,什么是大规模,这很大程度上取决于你所面对的应用以及可用的计算资源。在互联网应用成为机器学习主要应用领域之一的今天,能不能处理Google或者淘宝这样重量级的网站所生成的数据,成为互联网从业人员心目中大规模的标尺。

从技术角度看,统计学习算法所能处理的数据规模有几个分水岭:

1)算法是否依赖于对训练集的随机访问。依赖于训练集随机访问的算法需要将训练集全部加载进内存,所能处理的数据量受内存大小的限制。

2)算法是否能有效地利用分布式(或并行的)计算资源。单台计算机(或单处理器)的处理能力毕竟是有限的。如果可用的计算资源增长100倍,算法能处理的数据量的增长远小于100倍,则算法的适用范围也会有很大的限制。

以上主要是围绕训练集的规模在讨论,实际上还会有更多需要考虑的问题,比如数据的维数、分类类别的数目、检测时的效率等等问题,(传统的?)统计学习的核心问题是样本不足时如何得到泛化能力很强的模型,但对于大规模学习来说,障碍往往在于算法的计算能力不足,不是数据不够,所以也可以说传统的微创保胆取石手术统计学习方法都不适合大规模数据处理(不只是SVM)。

因为互联网应用的推动,最近几年这个领域新结果非常多。总体来说,对于基于支持向量机的大规模线性分类问题,目前已经能比较好地解决。对现有结果做了比较好的总结,则对需要进一步解决的问题有很好的概述。

对于非线性分类问题,基于Dual Decomposition(或者SMO)方法的SVM-Light和LibSVM目前仍被广泛使用,他们最坏情况下复杂度是O(训练样本数的平方),并不适合在大规模数据集上做训练。Pegasos[5]的复杂度同训练样本数呈线性关系,但实验中效率并不高于SMO方法。盛佳提到的PSVM[6]利用分布式计算资源降低训练耗时。不过在我接触过的应用场景里(比如对象检测),非线性SVM的最大问题不是训练时代价问题,而是检测时代价太高,在实际应用中基本上已经退出竞争。当然,相关的研究并没有终止——毕竟不同的应用场景会有不同的需求。

推荐个博客——挨踢技术专区-http://blog.chinaunix.net/space.php?uid=26972200 

转载于:https://www.cnblogs.com/jitai/archive/2012/05/25/2518287.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值