java - 高容量 SVM(机器学习)系统

标签 java c matlab machine-learning svm

我正在从事一个可能的机器学习项目,该项目有望使用 SVM(支持 vector 机)和可能的一些 ANN 为机器学习进行高速计算。

我非常乐意使用这些工具在 matlab 上工作,但主要是在小型数据集中,仅用于实验。我想知道这种基于 matlab 的方法是否可以扩展?还是我应该调查其他事情?基于 C++/gpu 的计算? java 包装 matlab 代码并将其推送到 App Engine?

顺便说一句,似乎有很多关于 GPU 的文献,但没有多少关于它们在使用 matlab 的机器学习应用程序中有多大用处,以及最便宜的 CUDA 启用 GPU 的钱能买到吗?值得这么麻烦吗?

最佳答案

我致力于解决模式识别问题。如果您打算有效地解决 SVM/ANN 问题并且您确实无法访问计算机集群,请允许我给您一些建议:

1) 不要使用 Matlab。使用 Python 及其大量数值库来对您的计算进行可视化/分析。
2) 关键部分最好用 C 来实现。你可以很容易地将它们与你的 Python 脚本集成。
3)如果你主要处理机器学习中典型的非多项式时间复杂度问题,CUDA/GPU 不是解决方案,因此它不会带来很大的加速;点/矩阵积只是 SVM 计算的一小部分——您仍然需要处理特征提取和列表/对象处理,而是尝试优化您的算法并设计有效的算法方法。如果您需要并行性(例如对于 ANN),请使用线程或进程。
4) 使用 GCC 编译器编译你的 C 程序——它将构建非常快速的可执行代码。要加速数值计算,您可以尝试 GCC 优化标志(例如 Streaming SIMD Extensions)
5) 在 Linux 操作系统下的任何现代 CPU 上运行您的程序。

要获得真正好的性能,请使用 Linux 集群。

关于java - 高容量 SVM(机器学习)系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2383936/

相关文章:

java - 使用 BoxLayout 垂直居中内容

在 C 中使用 strtok 比较单词

java - OpenCV 和 Matlab 使用 DFT 实现信号相关的区别

java - 如何在 Spring MVC 中返回 403 Forbidden?

java - yarn 容器内存不足

c - Winternl.h : No such file or directory

c++ - 在 vscode 中使用特定缩进/对齐 C/C++ 自动格式化

matlab - MATLAB 图形中的渲染和图像质量

matlab - 如何停止matlab截断长数字

java - 什么是NullPointerException,我该如何解决?