如何通过反向传播训练 SVM?
您是正确的,如果您尝试直接优化 SVM 在训练案例上的准确性,也称为 0-1 损失,那么梯度就会消失。这就是为什么人们不这样做。:)
但是,您尝试做的还不是真正的 SVM。它只是一个通用的线性分类器。当您将 0-1 损失函数替换为称为铰链损失的凸代理时,特别会出现 SVM ;这相当于边际最大化的概念,这是 SVM 概念的核心。这个损失函数(几乎)是可微的;唯一的问题是,如果任何输出恰好位于铰链点,(a)在最合理的假设下发生的概率为零,并且(b)那么您可以使用 0 或 1 作为导数(或介于两者之间的任何值),在在这种情况下,您在技术上是在进行次梯度下降。
由于您在谈论反向传播,我假设您至少对优化神经网络有点熟悉。神经网络分类器也会出现同样的问题。这就是为什么人们也在那里使用其他损失函数的原因。
如果您只对线性情况感兴趣,那么逻辑回归 (LR) 是一个更好的选择,因为它既是凸的又是分析的(如果您对正则化感兴趣,您可能需要对它进行脊)。但是,当您选择非线性时,就会出现棘手的部分。对于非线性情况,没有合理的方法可以同时保持凸性和分析性,您需要牺牲两者之一。在神经网络中,您牺牲了凸性,而在支持向量机中,您牺牲了全态。
严格来说,LR和SVM之间没有区别,svms只是预测一个点位于线的哪一边,LRs还考虑到它们离边界有多远(在边界-边线上,sigmoid给你的概率是0.5在 LR 的情况下)。支持向量机被迫做出这种妥协,因为对于非线性内核,与弯曲超平面的距离直觉(代数变体是一个更好的术语)与线性情况不同,实际上是解决与超曲面的最短距离的问题到一个特定的点非常困难(比 SVM 本身更难),但另一方面,Vapnik 意识到仅仅预测一个点位于边界的哪一侧是非常容易的,就像在 O(1) 时间内一样。这是 SVM 背后的真正洞察力,使其成为统计学习理论中唯一可用的凸优化替代方案。但我的感觉是你牺牲太多了,全态性和概率性都丢失了。但是对于特定情况,例如地面实况支持向量机是非常可靠的,并且与非凸模型不同,它也是完全可证伪的科学模型。
Tldr:是的,平均值定理可以拯救非解析函数。在凸非解析情况下,平均值定理变成不等式,在子梯度上设置一些边界条件,使用它来进行子梯度下降