如何通过反向传播训练SVM?


11

我想知道是否可以使用反向传播训练SVM(例如,将其简化为线性模型)?

目前,我处于障碍之中,因为我只能考虑将分类器的输出编写为

f(x;θ,b)=sgn(θx(b+1))=sgn(g(x;θ,b))

因此,当我们尝试计算“向后传递”(传播错误)时,我们得到 因为的导数 sgnxdsgnx

Ex=Ef(x;θ,b)f(x;θ,b)x=Ef(x;θ,b)sgn(g(x;θ,b))g(x;θ,b)g(x;θ,b)x=δdsgn(z)dzθ=δ0θ=0
sgn(x)
dsgn(x)dx={0if x02δ(x)if x=0

类似地,我们发现,这意味着我们无法传递任何信息或执行梯度更新!E/θ=E/b=0

是什么赋予了?

Answers:


14

正确的是,如果您尝试在训练案例(也称为0-1损失)上直接优化SVM的准确性,则梯度消失了。这就是为什么人们不这样做的原因。:)

但是,您要尝试做的还不是真正的SVM。它只是一个通用的线性分类器。当用凸代理代替0-1损失函数称为铰链损失时,特别会出现SVM ; 这相当于保证金最大化的概念,这是支持向量机概念的核心。这种损失函数(几乎)是可微的。唯一的问题是,如果有任何输出正好在铰接点,(a)在最合理的假设下发生的可能性为零,并且(b)那么您可以仅使用0或1作为导数(或介于两者之间的任何值),在从技术上讲,您正在做次梯度下降。

由于您正在谈论反向传播,因此我假设您至少对优化神经网络有些了解。神经网络分类器也会出现相同的问题。这就是为什么人们在那里也使用其他损失函数的原因。


因此,如果我正确理解您的意思,您是说线性SVM可以看作是1层NN-单层只是线性变换,带有铰链损耗功能?Ax+b
StevieP 2015年

1
是的,线性SVM基本上等效于在输出节点上具有线性激活并通过铰链损耗进行训练的1层NN。
2015年

5

如果只对线性情况感兴趣,则逻辑回归(LR)是更好的选择,因为它既是凸的又是解析的(如果对正则化感兴趣,您可能希望对它进行建模)。但是,当您选择非线性时,棘手的部分就会出现。对于非线性情况,没有合理的方法可以同时保持凸和解析,您需要牺牲两者之一。在神经网络中,您要牺牲凸性,而在svm中,您要牺牲全纯性。

严格来说,LR和SVM之间没有区别,svm只是预测一个点位于直线的哪一侧,LR还考虑了它们离边界有多远(在边界边界线上,S形给您的概率为0.5如果是LR)。SVM被迫做出这种折衷,因为对于非线性内核,离曲面超平面的距离的直觉(代数变化是一个更好的术语)与线性情况下的不相同,实际上是解决距超曲面最短距离的问题到特定点非常困难(比SVM本身更难),但另一方面,Vapnik意识到,仅预测点位于边界的哪一侧就很容易,就像O(1)一样。这是SVM的真正见解,使其成为统计学习理论中唯一可用的凸优化替代方案。但是我的感觉是您牺牲了太多,全同性和概率性都丢失了。但是对于特定情况,如地面实时支持向量机是非常可靠的,并且与非凸面支持向量机不同,它们也是完全可伪造的科学模型。

Tldr:是的,平均值定理可用于非解析函数。在凸非解析情况下,平均值定理变成不等式,设置了子梯度上的某些边界条件,以此来进行子梯度


1
LR对您意味着什么?
Sycorax说恢复莫妮卡

@Sycorax逻辑回归
Franck Dernoncourt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.