机器学习算法(五):支持向量机
支持向量机试图寻找一个超平面将二类样本分开,所以他的学习器是一个超平面
$$y = w^{T}x+b$$
满足条件的超平面可能有很多,在所有满足条件的超平面,我们试图寻找一个不只能将两个类别分开,而且与该类最近样本点的间隔要尽量大,作为我们的目标超平面。
首先我们可以假设有下面两个平行的超平面
$$w^{T}x+b = 1$$
$$w^{T}x+b = -1$$
这两个平面的距离为 $\frac{2}{||w||}$,于是我们拿这样两个平面去分隔样本。如果同时满足训练点被上述连两个平面分开,并且两个平面的距离尽量大,可以得到得到下面的一个优化问题,其中这里把求最大换成了求最小。
$$\min\limits_{w,b}\frac{1}{2}||w||^2$$
$$s.t. y_{i}(w^{T}x_{i} +b) >= 1, i = 1,2,..., m.$$
要求解这个问题,通过拉格朗日乘子法,为每个约束添加拉格朗日乘子$\alpha_{i} >= 0$,再根据拉格朗日对偶性,将原问题变为一个极大极小问题,如下:
$$\max\limits_{\alpha}\min\limits_{w,b}\frac{1}{2}||w||^2 + \sum\limits_{i=1}^{m} \alpha_{i}(1 - y_{i}(w^{T}x_{i} + b))$$
通过对w和b求偏导为0先求上面的极小问题,可以把w,和b消去,于是得到极大问题如下:
$$\max\limits_{\alpha}\sum\limits_{i=1}^{m} \alpha_{i} - \frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m} \alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^{T}x_{j}$$
$$s.t. \sum\limits_{i=1}^{m}\alpha_{i}y_{i} = 0$$
同时根据对偶理论,因为原始问题是不等式约束,我们的拉格朗日乘子需要满足下面的KKT公式,即下面的三个条件