我们正在开展一个机器学习项目,希望了解某些在线样本嵌入方法对 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