我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:多盈娱乐注册 > 多处理机 >

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

归档日期:08-08       文本归类:多处理机      文章编辑:爱尚语录

  关于什么是大规模机器学习,可以参考[1, 2, 3]的讨论。显然,大小是个相对的概念,在机器学习的语境下也不例外,什么是大规模,这很大程度上取决于你所面对的应用以及可用的计算资源。在互联网应用成为机器学习主要应用领域之一的今天,能不能处理Google或者淘宝这样重量级的网站所生成的数据,成为互联网从业人员心目中大规模的标尺。 从技术角度看,统计学习算法所能处理的数据规模有几个分水岭: 1)算法是否依赖于对训练集的随机访问。依赖于训练集随机访问的算法需要将训练集全部加载进内存,所能处理的数据量受内存大小的限制。 2)算法是否能有效地利用分布式(或并行的)计算资源。单台计算机(或单处理器)的处理能力毕竟是有限的。如果可用的计算资源增长100倍,算法能处理的数据量的增长远小于100倍,则算法的适用范围也会有很大的限制。 以上主要是围绕训练集的规模在讨论,实际上还会有更多需要考虑的问题,比如数据的维数、分类类别的数目、检测时的效率等等问题,可以参考[2]及其中提到的相关文献。如[3]中所说,(传统的?)统计学习的核心问题是样本不足时如何得到泛化能力很强的模型,但对于大规模学习来说,障碍往往在于算法的计算能力不足,不是数据不够,所以也可以说传统的统计学习方法都不适合大规模数据处理(不只是SVM)。 因为互联网应用的推动,最近几年这个领域新结果非常多。总体来说,对于基于支持向量机的大规模线性分类问题,目前已经能比较好地解决。[4]对现有结果做了比较好的总结,[2]则对需要进一步解决的问题有很好的概述。 对于非线性分类问题,基于Dual Decomposition(或者SMO)方法的SVM-Light和LibSVM目前仍被广泛使用,他们最坏情况下复杂度是O(训练样本数的平方),并不适合在大规模数据集上做训练。Pegasos[5]的复杂度同训练样本数呈线性关系,但实验中效率并不高于SMO方法。盛佳提到的PSVM[6]利用分布式计算资源降低训练耗时。不过在我接触过的应用场景里(比如对象检测),非线性SVM的最大问题不是训练时代价问题,而是检测时代价太高,在实际应用中基本上已经退出竞争。当然,相关的研究并没有终止——毕竟不同的应用场景会有不同的需求。 对于未来的发展,还是多看看[2]吧。

本文链接:http://cakesbyrita.net/duochuliji/1135.html