机器学习算法——支持向量机SVM3(对偶问题)

上节介绍了如何推导出支持向量机的基本型,这节我们对基本型进行求解。

基本型(也称为“原问题”)为:

   (公式3.1)

我们希望求解上述式子得到大间隔划分超平面所对应的模型

f(x)=w^Tx+b

其中,w和b是模型参数。注意到 公式3.1 是一个凸二次规划问题。

=================================================================

补充知识区:

凸函数的定义:对区间[a,b]上定义的函数f,若它对区间中任意两点x1和x2均有:

f(\frac{x_1+x_2}{2})\leqslant \frac{f(x_1)+f(x_2)}{2}

则称f在区间[a,b]上的凸函数。

对实数集上的函数,可通过求解二阶导数来判别:

1.若二阶导数在区间上非负,则称为凸函数

2.若二阶导数在区间上恒大于0,则成为严格凸函数。

凸二次规划问题是指当目标函数是二次函数且约束函数是放射函数(最高次数为1的多项式函数)。

而且有一个定理:凸优化问题的局部极小值是全局极小值。

==================================================================

不等式约束的优化问题可以用拉格朗日乘子法进行求解(就是目标函数在约束函数的条件下求极值的方法。),即先把约束问题转换成无约束问题。即对公式3.1的每条约束添加拉格朗日乘子\alpha _i \geqslant 0,则该问题的拉格朗日函数可写为:

机器学习算法——支持向量机SVM3(对偶问题)_第1张图片

其中,\alpha =(\alpha_1; \alpha_2;...,\alpha_m)

L(w,b,\alpha)对w和b的偏导为零。

这里涉及到标量函数对向量求导问题,也就是\frac{\partial (\frac{1}{2}||w||^2)}{\partial w} =? 公式(3.2)

这里涉及矩阵微分知识,具体讲解如下:

相对于n×1向量w的梯度算子记为\bigtriangledown _w 定义为

\bigtriangledown _w = [\frac{\partial }{\partial w_1}, \frac{\partial }{\partial w_2},..., \frac{\partial }{\partial w_n}]^T= \frac{\partial }{\partial w}

因此,以n×1向量w为变元的实标量函数L(w,b,a)相对于w的梯度为一个n×1的列向量,定义为

\bigtriangledown _w L(w,b,\alpha) = [\frac{\partial L(w,b,\alpha)}{\partial w_1}, \frac{\partial L(w,b,\alpha)}{\partial w_2},..., \frac{\partial L(w,b,\alpha)}{\partial w_n}]^T= \frac{\partial L(w,b,\alpha)}{\partial w} (公式3.3)

类似地,实值函数L(w,b,a)相对于1×n行向量x^T的梯度为1×n的行向量,定义为

\bigtriangledown_{w^{T}} L(w,b,\alpha) = [\frac{\partial L(w,b,\alpha)}{\partial w_1}, \frac{\partial L(w,b,\alpha)}{\partial w_2},....,\frac{\partial L(w,b,\alpha)}{\partial w_n}]=\frac{\partial L(w,b,\alpha)}{\partial w}(公式3.4)

根据公式3.3计算公式3.2,设w是m×1的列向量

\frac{1}{2}||w||^2=\frac{1}{2}w^T\cdot w=\frac{1}{2}\sum_{i=1}^{m}w_i^2

可求出梯度\frac{\partial (\frac{1}{2}||w||^2)}{\partial w} =?的第K个分量为:

[\frac{\partial (\frac{1}{2}||w||^2)}{\partial w}]_k=\frac{\partial (\frac{1}{2} \sum_{i=1}^{m}w_i^2)}{\partial w_k}=\frac{1}{2}\times 2w_k=w_k

则,可以得出

\frac{\partial (\frac{1}{2}||w||^2)}{\partial w} =w

\frac{\partial \sum_{i=1}^{m}\alpha_iy_i(w^Tx_i+b)}{\partial w}=\sum_{i=1}^{m}\alpha_iy_ix_i

所以,L(w,b,\alpha)对w和b的偏导等于0,最终会得到如下式子:

w=\sum_{i=1}^{m}\alpha_iy_ix_i(公式3.5)

0=\sum_{i=1}^{m}\alpha_iy_i(公式3.6)

然后将公式3.5和公式3.6带入L(w,b,a)中,得到

L(w,b,\alpha)=\frac{1}{2}w^T w+\sum_{i=1}^{m} \alpha_i-\sum_{i=1}^{m} \alpha_iy_i(w^Tx_i+b)\\= \frac{1}{2}(\sum_{i=1}^{m} \alpha_iy_ix_i)^T(\sum_{j=1}^{m} \alpha_jy_jx_j)+\sum_{i=1}^{m} \alpha_i-\sum_{i=1}^{m} \alpha_iy_i(\sum_{j=1}^{m} \alpha_jy_jx_j^Tx_i)-\sum_{i=1}^{m} \alpha_iy_ib \\= \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jx_i^Tx_j+\sum_{i=1}^{m} \alpha_i -\sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jx_i^Tx_j \\= \sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_i\alpha_jy_iy_jx_i^Tx_j

这里求出来的就是一个极小值。对偶问题就是求其最大值。

则“对偶问题”就变成了

\underset{\alpha}{max} \ L(w, b, \alpha) = \underset{\alpha}{max} \sum_{i=1}^{m} \alpha_i - \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_i \alpha_jy_iy_jx_i^Tx_j

但是,它还存在以下约束条件:

s.t. \sum_{i=1}^{m} \alpha_iy_i=0\\ \alpha_i \geqslant 0, i=1,2,...,m

解出\alpha后,求出w和b即可得到模型:

f(x)=w^Tx+b=(\sum_{i=1}^m \alpha_iy_ix_i)^Tx+b=\sum_{i=1}^{m} \alpha_iy_ix_i^Tx+b

如何求解\alpha将在下节中进行讲解。

有任何看不懂的地方欢迎评论及私信。看到必回。

你可能感兴趣的:(支持向量机,机器学习,人工智能,算法,svm)