c++ - 适合在线嵌入的SVM库

标签 c++ svm embedding dlib

我们正在进行一个机器学习项目,我们希望在该项目中了解某些在线样本嵌入方法对 SVM 的影响。

在此过程中,我们尝试与 Pegasos 进行交互和 dlib以及设计(并尝试编写)我们自己的 SVM 实现。

dlib 似乎很有前途,因为它允许与用户编写的内核进行交互。 然而内核并没有给我们想要的“在线”行为(除非那个假设是错误的)。

因此,如果您了解支持在线嵌入和自定义编写嵌入器的 SVM 库,将会有很大帮助。


只是为了弄清楚“在线”。

为了避免大量内存使用,嵌入过程在线进行至关重要。

我们基本上想在 Stochastic subGradient Decent 中执行以下操作(在非常通用的伪代码中):

w = 0 vector
for t=1:T
  i = random integer from [1,n]

  embed(sample_xi)

  // sample_xi is sent to sub gradient loss i as a parameter
  w = w - (alpha/t)*(sub_gradient(loss_i))
end

最佳答案

我认为在您的情况下,您可能需要考虑用于大规模 SVM 训练 (BSGD) 的预算随机梯度下降 [1]作者:Wang、Crammer、Vucetic

这是因为,正如关于“内核化诅咒”的论文中所指定的那样,您可能想要探索此选项,而不是您在问题的伪代码中指出的内容。

Shark Machine Learning Library实现 BSGD。查看快速教程here

关于c++ - 适合在线嵌入的SVM库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30163734/

相关文章:

c++ - OpenCV 相机问题 :

python - PyML:绘制决策面

machine-learning - 如何解释 SVM-light 结果

c++ - 使用 openMP 进行并行编程

c++ - 意外的内存泄漏 [Valgrind]

Golang 嵌入式结构体类型

javascript - 如何为 iOS 设备构建 JavaScriptCore?

go - 从另一个包导入结构时私有(private)嵌入式结构

c++ - 如何在允许子类方法调用的同时在 C++ 中实现抽象类?

python - 如何计算小数据集的SVM分类概率(置信度)?