为什么 SVM 中的支持向量的 alpha(拉格朗日乘数)大于零?

Nee*_*hah 7 statistics machine-learning svm

我理解由拉格朗日对偶和所有组成的整体 SVM 算法,但我无法理解为什么特别是支持向量的拉格朗日乘数大于零。

谢谢你。

Ank*_*ham 6

这可能是一个迟到的答案,但我将我的理解放在此处供其他访问者使用。

拉格朗日乘数,通常用α表示,是所有训练点的权重向量作为支持向量。

假设有 m 个训练示例。那么α是一个大小为m的向量。现在关注 α 的任何第 i 个元素:α i。很明显,α i捕获第 i 个训练示例的权重作为支持向量。α i值越高意味着第 i 个训练样本作为支持向量的重要性越高;例如,如果要进行预测,那么第 i 个训练示例在得出决定时将更加重要。

现在来到OP的关注点:

我无法理解为什么特别是支持向量的拉格朗日乘数大于零。

它只是一个构造。当你说 α i = 0 时,只是第 i 个训练样例的支持向量为零权重。你也可以说第 i 个例子不是支持向量。

旁注:KKT 的条件之一是互补松弛度:对于所有 i,α i g i (w)=0。对于支持向量,它必须位于意味着 g i (w)=0的边界上。现在 α i可以或不能为零;无论如何,它满足互补松弛条件。对于 α i = 0,您可以根据上面给出的讨论选择是否将这些点称为支持向量。但是对于非支持向量,α i必须为零才能满足互补松弛,因为 g i (w) 不为零。


Dav*_*eli 0

我也想不通这个问题...

如果我们举一个简单的例子,假设有 3 个数据点,其中 2 个为正类 (yi=1):(1,2) (3,1) 和一个负类 (yi=-1):(-1,-1) - 我们使用拉格朗日乘数进行计算,我们将得到完美的 w (0.25,0.5) 和 b = -0.25,但我们的 alpha 之一为负数 (a1 = 6/32, a2 = -1/32, a3 = 5/ 32)。