mal*_*ngi 7 c java matlab machine-learning svm
我正在研究一个可能的机器学习项目,该项目预计将使用SVM(支持向量机)和可能的一些ANN进行机器学习的高速计算.
我非常适合在matlab上使用这些,但主要是在小型数据集中,仅用于实验.我想知道这种基于matlab的方法是否会扩展?或者我应该研究其他什么?基于C++/gpu的计算?java包装的matlab代码并将其推送到app引擎?
顺便提一下,似乎有很多关于GPU的文献,但关于它们在使用matlab的机器学习应用程序上有多大用处并不多,而且最便宜的CUDA enlabled GPU可以买到?它甚至值得麻烦吗?
我从事模式识别问题.如果您计划有效地处理SVM/ANN问题并且您真的无法访问计算机集群,请让我给您一些建议:
1)不要使用Matlab.使用Python及其大量数值库代替您的计算的可视化/分析.
2)使用C实现更好的关键部分.您可以非常轻松地将它们与Python脚本集成.
3)如果你主要处理机器学习中典型的非polinomial时间复杂度问题,CUDA/GPU不是解决方案,因此它不会带来很大的加速; 点/矩阵产品只是SVM计算的一小部分 - 您仍然需要处理特征提取和列表/对象处理,而是尝试优化算法并设计有效的算法方法.如果您需要并行性(例如,对于ANN),请使用线程或进程.
4)使用GCC编译器编译您的C程序 - 它将构建非常快速的可执行代码.要加速数值计算,您可以尝试GCC优化标志(例如,流式SIMD扩展)
5)在Linux OS下的任何现代CPU上运行程序.
为了获得良好的性能,请使用Linux集群.