一句话答案就是,通过对偶算法(Dual Problem)来计算支持向量机(Support Vector Machines,缩写为 SVM )的决策边界会比较简单。
对于支持向量机而言,对偶算法是借助拉格朗日对偶性从原算法(Primal Problem)推出的,两者完全等价,只是求解了不同的条件极值(下面是硬间隔支持向量机的原算法和对偶算法):
从上面的对比可以看出,对偶算法主要有三点改进使得决策边界的求解不再困难:
这么说可能不太直观,下面会用例子来进一步说明。
下面会通过原算法、对偶算法来分别计算硬间隔支持向量机的决策边界。
很多资料都没介绍原算法怎么计算,主要是因为原算法中的限制条件为较为复杂的线性不等式
(1)改写条件极值。原算法要求解的条件极值为:
根据该条件极值,首先写出拉格朗日函数:
然后根据拉格朗日乘数法以及KKT 条件,从上述条件极值可以得到下面的方程组:
(2)下面来求解(1)中得到的方程组。首先可以推出( (1)由: 可得: 所以: (2)由 所以:
代入数据可得:
下面需要分情况讨论。
(3)如果
即不满足方程组的条件,所以
(4)根据(3),
进而可以推出:
(5)因为
进而可以推出:
因为有
解上述
进而得到决策边界为:
可以图示如下:
(6)如果假设
(1)消去条件中的
由第一个条件可得
这个函数融合了第一个条件,所以要优化的条件极值可以改写为:
实际上这就消去了条件中的
(2)通过数据集
根据前两个方程可以算出:
因为:
所以最小值没有办法在
该函数的最小值点本来在
我们感兴趣的二元凸函数
同样的道理,
即分别在
即条件极值在
(3)根据支持向量求出决策边界。根据对偶算法的结论(这里不再赘述,在网上可以查到,或者在我们课程中可以看到),如果
再在支持向量中随便挑选一个点
所以在本题中有:
进而得到决策边界为:
与原算法得到的结果一样。