我理解整体SVM算法由拉格朗日对偶性和全部组成,但是我无法理解为什么特别拉格朗日乘数对于支持向量大于零。
谢谢。
答案 0 :(得分:0)
我也无法解决这个问题......
如果我们举一个简单的例子,比如3个数据点,2个正类(yi = 1):( 1,2)(3,1)和1个负数(yi = -1):( -1, -1) - 我们用拉格朗日乘数计算,我们得到一个完美的w(0.25,0.5)和b = -0.25,但我们的一个alpha是负的(a1 = 6/32,a2 = -1 / 32,a3 = 5/32)。
答案 1 :(得分:0)
这可能是一个迟到的答案,但我在这里将其理解为其他访客。
拉格朗日乘数,通常用α表示,是所有训练点的权重向量作为支持向量。假设有m个训练样例。那么α是大小为m的向量。现在关注α的任何第i个元素:α i 。很明显,α i 捕获第i个训练样本的权重作为支持向量。更高的α i 值意味着第i个训练样例作为支持向量更重要;如果要进行预测,那么第i个训练样例在推导决策时会更为重要。
现在谈到OP的担忧:
我无法理解为什么特别是拉格朗日乘数 对于支持向量,大于零。
这只是一个结构。当你说α i = 0时,只是第i个训练样例的权重为零,作为支持向量。你也可以说那个例子不是支持向量。
旁注:KKT的一个条件是互补松弛:对于所有i,α i g i (w)= 0。对于支持向量,它必须位于边界上,这意味着g i (w)= 0。现在α i 可以是也可以不是零;无论如何,它满足了互补的松弛条件。 对于α i = 0,您可以根据上面给出的讨论选择是否要将这些点称为支持向量。但对于非支持向量,α i 必须为零才能满足互补松弛,因为g i (w)不为零。