第一节已经介绍了直接求解线性可分支持向量机的方法,但求解过程往往复杂。所以我们可以转换思路:将该问题作为原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的解。这样做的好处:
- 求解更加容易
- 可以引入核函数,方便推广到非线性分类问题
对偶问题
对偶问题求解步骤:
根据原始问题,构造拉格朗日函数:
L(w,b,α)=12||w||2+∑i=1Nαi(1−yi(w⋅xi+b))=12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi原始问题为极小极大问题,对偶问题为极大极小问题。即:
maxαminw,bL(w,b,α)先求 L(w,b,α) 对 w,b 的极小,再求 minL(w,b,α) 对 α 的极大。依次为:- 先求
L(w,b,α)
对
w,b
的极小
∇wL(w,b,α)=w−∑i=1Nαiyixi=0∇bL(w,b,α)=∑i=1Nαiyi=0将两个等式结果代入 L(w,b,α) ,就得到了 minL(w,b,α) 。即:
minw,bL(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi((∑j=1Nαjyjxi)⋅xj+b)+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi - 再求
minL(w,b,α)
对
α
的极大,即是对偶问题:
maxα −12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi∑i=1Nαiyi=0αi≥0i=1,2,⋯,N
也等价于
minα 12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi∑i=1Nαiyi=0αi≥0i=1,2,⋯,N
- 先求
L(w,b,α)
对
w,b
的极小
由上一步求解对偶问题,可以得到对偶问题的解 α∗=(α∗1,α∗2,⋯,α∗N) 。且此原始问题和对偶问题符合转换的条件,通过KKT条件可以由 α∗ 求得原始问题的解 w∗,b∗ 。
KKT条件:
∇wL(w∗,b∗,α∗)=w∗−∑i=1Nα∗iyixi=0∇bL(w∗,b∗,α∗)=∑i=1Nαiyi=0α∗i(yi(w⋅xi+b)−1)=0yi(w⋅xi+b)−1≥0α∗i≥0i=1,2,⋯,N
则得到 w∗=∑Ni=1α∗iyixi ,又因为一定存在 αi>0 (若均等于0,则 w∗=0 不是原始问题可行解),则对于 αi>0 ,有 yi(w⋅xi+b)−1=0 ,则 b∗=yi−w⋅xi=yi−∑Nj=1α∗jyj(xi⋅xj) 。
因此得到了分离超平面 ∑Ni=1α∗iyi(x⋅xi)+b∗=0 ,相应的分类器为 f(x)=sign(∑Ni=1α∗iyi(x⋅xi)+b∗) 。
也就是说,之前对于未知样本首先根据w和b做一次线性运算,然后看求的结果是大于0还是小于0,来判断正例还是负例。现在通过 αi ,我们不需要求出w,只需将未知样本和训练数据中的所有样本做内积和即可。另外,我们从KKT条件中得到,只有支持向量的 αi>0 ,其他情况 αi=0 。因此,我们只需求未知样本和支持向量的内积然后运算即可。