`
coderplay
  • 浏览: 578050 次
  • 性别: Icon_minigender_1
  • 来自: 广州杭州
社区版块
存档分类
最新评论

SVM的并行化

阅读更多

目前我在SVM的并行化方面已经有解法. SVM在数学上的本质是凸优化理论, 可以有很多种解法。 它的问题具有对偶性, 从原问题出发和从对偶问题出发。传统SVM在大数据集下,它的核矩阵要占用的内存非常大,呈平方地递增。 也就是说1000个数据占用的内存会是100个数据占用的内存的100 倍。为了解决此问题,涉及到SVM的分解,极端的情况下是使用SMO算法,这也是目前SVM最流行的解法。 SMO算法每次只求目标函数的两个alpha值,具有占用内存较小,收敛得比较快的优势。 但在并行上,不是很好做,因为后一步的alpha值依赖前一步的alpha值,前后数据依赖性比较强, 我一直到今年2月中旬左右才从理论上解决此问题。但是,我觉得SMO算法迭代次数太多, 现在我的做法不够完善。


我有几条思路可以完善目前的理论
1. cutting-plane能减少迭代的次数,但cutting-plane一样具有数据依赖性较强的问题,所以我还没有解决。
2. 对比较稀疏的,但维数非常大的数据,例如文本数据,可以用线性SVM代替二次SVM, 因为理论已经证明两者的精度相差不大。但速度上线性SVM要快几个数量级。
3. 从原问题出发,使用内点法。通过矩阵的分解, 使用Incomplete Cholesky Factorization将矩阵分解为两个较小矩阵的乘积, 分布这两个矩阵。

以上提出的思路涉及很多数学原理,我正在看convex optimization这本书,希望能有点收获。SVM根据loss函数,可以分为L1-SVM和L2-SVM。 2007年, Bottou提出了一种梯度下降的方法解决L1-SVM, 2008年Collins 提出了另一种exponentiated梯度下降方法.2008年台湾大学的林智仁教授提出了trust region Netton method(TRON)解决L2-SVM。 目前的SVM算法空前繁盛,我使用了08年末林智仁教授的学生提出另一种串行的梯度下降算法(A Dual Coordinate Desent Method for Large-scale Linear SVM),可以在几十秒之内,对19000个英文新闻进行分类训练, 精度达到96.7%,而 使用SMO算法,我的机器不够内存(2.5GB RAM),理论上最少也要跑几个小时。它的算法前后数据依赖性非常强,目前我没法把它并行。

以上提出的三条思路,我觉得第1,2条更能达到我的目的,而且效果更好,我正在补数学上的不足,大概有700页左右的数学理论要看。目前我收集的理论资料有229m,我看过其中的一半左右,因为文章过多,所以没有在这里列出来。

有哪位xdjm对这方面比较感兴趣,有自己的见解,请与我联系: coderplay@gmail.com

分享到:
评论
1 楼 conservatism 2009-03-15  

相关推荐

    云计算环境下的并行SVM算法研究.pdf

    - 效率与精度权衡:并行化可能引入额外的开销,如何在提高效率的同时保证模型的预测精度是一大挑战。 6. **应用领域**: - 并行SVM算法在生物信息学、图像识别、自然语言处理等领域有广泛应用,尤其在处理大规模...

    计算机-后端-基于Hadoop架构的数据驱动SVM并行增量学习算法研究.pdf

    针对这些问题,一种基于Hadoop架构的数据驱动SVM并行增量学习算法应运而生。这种算法充分利用Hadoop的分布式存储(例如HBase)和并行计算能力,实现了SVM的分布式训练。通过增量学习,算法能够在新数据到来时仅更新...

    基于CUDA的SVM算法并行化研究 (2013年)

    在SVM算法并行化研究中,首先对SVM算法进行分析研究,提出了基于CUDA的SVM算法并行化方案;其次,进一步研究海量数据的处理,提出海量数据处理的并行化方案;最后,通过实验分析对比了并行化算法的性能。

    MATLAB集群下的支持向量机并行化应用研究_毕业论文.pdf

    在MATLAB集群环境下进行支持向量机(SVM)的并行化应用研究,是针对大规模数据集训练SVM模型时计算效率低下问题的一种有效解决方案。SVM是一种强大的监督学习算法,广泛应用于分类和回归任务,尤其在处理高维特征...

    基于GPU的SVM参数优化并行算法.pdf

    实验结果显示,基于GPU的并行化参数优化算法不仅能够达到与非并行化算法相同的效果,而且在执行时间上有显著的减少。例如,采用并行化的PSO算法相比于传统版本,其加速比可达26.85,这意味着在相同的计算资源下,...

    pso_svm_svm优化_psosvm_PSO-SVM_pso_svm_multiagent_

    在多代理系统(multiagent)环境中,多个PSO-SVM可以并行运行,每个代理独立优化SVM的一部分参数,最终合并结果,这可以提高整体优化效率和并行计算能力。 总的来说,PSO-SVM是结合了群体智能优化算法与机器学习...

    svm在GPU上实现

    3. 并行化策略:利用CUDA(Compute Unified Device Architecture)或其他GPU编程框架,如OpenCL,将SVM的优化问题分解为多个并行任务,每个任务处理数据的小批量。这可以显著加快计算速度。 4. 更新规则:LMS算法...

    PSO-SVM-master_svmpsopython_svmpython_svm优化_PSO优化_psosvm_

    1. **SVM基础**:首先需要理解SVM的基本概念,包括间隔最大化、核函数、拉格朗日乘子和软间隔等。 2. **粒子群优化(PSO)**:理解PSO的基本原理,包括粒子的初始位置和速度、惯性权重、认知和社交学习因子等参数的...

    ACO for SVM_SVM_aco-svm_acosvm_ACO

    在机器学习中,SVM是一种广泛应用的监督学习模型,用于分类和回归任务,通过最大化决策边界的间隔来找到最佳超平面。 描述中提到的"ACO optimization of svm parameters"进一步明确了这个项目的核心——利用ACO算法...

    SVM时间序列预测文档

    《新型SVM对时间序列预测研究》则可能涉及了SVM的创新改进,比如集成学习、深度学习与SVM的结合,或者是对SVM的并行化和分布式实现,以提高预测效率和准确性。 总的来说,SVM在时间序列预测中的应用展示了其在处理...

    基于svm四种工具箱

    OSU_SVM还包含了并行化处理功能,以加速大规模数据的训练过程。 3. stprtool stprtool是一款图形用户界面(GUI)的SVM工具,适用于Matlab环境。它提供了一个友好的界面,让用户能够轻松地构建、训练和测试SVM模型。...

    SVM Matlab 工具脚本

    通过最大化间隔,SVM能够处理高维空间中的非线性问题,通过核函数的引入,可以将低维的非线性问题转换为高维的线性可分问题。 2. **核函数**:Matlab中的SVM支持多种核函数,如线性核、多项式核、径向基函数(RBF)...

    de-svm.rar

    DE以其简单、高效和易于并行化的特点,常被用于解决复杂的非线性优化问题,包括SVM参数优化。 在这个"de-svm.rar"压缩包中,作者提供了一种利用差分进化算法优化SVM参数的MATLAB实现。MATLAB是一种广泛使用的数学...

    SVM粗/细粒度粒子

    - 粗粒度SVM适合于数据集较大且需要在单一设备上进行大量并行处理的情况,因为它避免了频繁的数据迁移,提高计算性能。 2. **细粒度缓冲区**: - 细粒度SVM则允许所有设备直接访问同一内存空间,实现真正的共享...

    Futures-forecast-PSO-SVM-master_svm向量机_PSO-SVM_

    3. **构建SVM模型**:初始化SVM模型,设置初始的核函数参数(如RBF的γ和C)和PSO的参数(如粒子数量、惯性权重、学习因子等)。 4. **粒子群优化**:运行PSO算法,粒子群中的每个粒子代表一组SVM参数,通过评估每...

    SVM分类器Verilog设计材料

    **在FPGA(Field-Programmable Gate Array)平台上实现SVM分类器,可以利用其并行计算能力加速处理过程,特别适合实时或大数据量的分类任务。Verilog是一种硬件描述语言,用于定义数字系统,如FPGA和ASIC的逻辑功能...

    多类SVM分类器源码

    优化SVM通常涉及选择合适的核函数、调整惩罚参数C和核参数γ,以及考虑在线学习和并行化策略以提高效率。 6. **评估与调优**: - 评估多类SVM的性能指标包括准确率、召回率、F1分数、混淆矩阵等。通过交叉验证可以...

    SVM图像分类论文1

    将SVM应用于Hadoop,可以并行化图像分类任务,大幅提高处理速度,适用于海量图像数据的分析。 4. 高光谱图像数据的多尺度多核SVM分类:高光谱图像具有丰富的光谱信息,但维度高、复杂性强。多核SVM利用不同的核函数...

Global site tag (gtag.js) - Google Analytics