如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

0. 前言

在样本空间中,划分超平面可通过线性方程wTx+b=0w^Tx+b=0决定。

严格的说,对超平面设置上界和下界,如下图所示(图源:机器学习):
西瓜书+实战+吴恩达机器学习(十)监督学习之支持向量机 Support Vector Machine
并满足:
{wTxi+b+1, yi=+1wTxi+b1, yi=1 \left\{\begin{matrix} w^Tx_i+b\geqslant +1,\ y_i=+1\\ w^Tx_i+b\leqslant -1,\ y_i=-1 \end{matrix}\right.

支持向量定义为使得上式等号成立的向量,上界下界的距离称为间隔
γ=2w \gamma=\frac{2}{||w||}

1. 拉格朗日乘子法

拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。

假设问题具有mm个等式约束和nn个不等式约束:
minx  f(x)s.t.  hi(x)=0  (i=1,..,m)gj(x)0  (j=1,...,n) \begin{aligned} \min_x\ \ &f(x)\\ s.t.\ \ &h_i(x)=0\ \ (i=1,..,m)\\ &g_j(x)\leqslant 0\ \ (j=1,...,n) \end{aligned}

引入拉格朗日乘子λ μ\lambda\ \mu,相应的拉格朗日函数为:
L(x,λ,μ)=f(x)+i=1mλihi(x)+j=1nμjgj(x) L(x,\lambda, \mu)=f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{j=1}^n\mu_jg_j(x)

对应的KKT条件(Karush-Kuhn-Tucker)为:
{xL=0hi(x)=0gj(x)0μj0μjgj(x)=0 \left\{\begin{aligned} &\nabla_xL=0\\ &h_i(x)=0\\ &g_j(x)\leqslant 0\\ &\mu_j\geqslant 0\\ &\mu_jg_j(x)=0 \end{aligned}\right.

2. SVM参数求解方法

欲找到最大间隔划分超平面,需要满足:
minw,b  12w2s.t.  yi(wTxi+b)1, i=1,...,m \begin{aligned} \min_{w,b}\ \ &\frac{1}{2}||w||^2\\ s.t.\ \ &y_i(w^Tx_i+b)\geqslant 1,\ i=1,...,m \end{aligned}

根据拉格朗日乘子法,有下式:
L(w,b,α)=12w2+i=1mαi(1yi(wTxi+b))Lw=0w=i=1mαiyixiLb=00=i=1mαiyi L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b))\\ \begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^m\alpha_iy_ix_i\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^m\alpha_iy_i \end{aligned}

可得到对偶问题
maxα  i=1mαi12i=1mj=1mαiαjyiyjxiTxjs.t.  i=1mαiyi=0,αi0, i=1,...,m \begin{aligned} \max_\alpha\ \ &\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,...,m \end{aligned}

对应的KKT条件
{αi0yif(xi)10αi(yif(xi)1)=0 \left\{\begin{aligned} &\alpha_i \geqslant 0\\ &y_if(x_i)-1\geqslant 0\\ &\alpha_i(y_if(x_i)-1)=0 \end{aligned}\right.

采用SMO(Sequential Minimal Optimization)求解参数:先固定αi\alpha_i之外的所有参数,然后求αi\alpha_i上的极值(αi\alpha_i可以通过其他变量导出),于是,SMO每次选择两个变量αi\alpha_iαj\alpha_j,并固定其他参数,求解拉格朗日乘子法的对偶问题,更新αi\alpha_iαj\alpha_j,迭代这个过程到收敛为止

求解出α\alpha之后,可得超平面f(x)=wTx+b=i=1mαiyixiTx+bf(x)=w^Tx+b=\sum_{i=1}^m\alpha_iy_ix_i^Tx+b。其中,对任意支持向量ysf(xs)=1y_sf(x_s)=1,所以可得b=1SsS(1/ysiSαiyixiTxs)b=\frac{1}{|S|}\sum_{s\in S}(1/y_s-\sum_{i\in S}\alpha_iy_ix_i^Tx_s)

3. 软间隔

很多时候数据并不是线性可分的,无法辨别找到的超平面是否是过拟合引起的问题。

可采用软间隔,允许SVM在一些样本上出错。引入松弛变量ξ\xi
minw,b,ξ  12w2+Ci=1mξis.t.  yi(wTxi+b)1ξiξi0, i=1,...,m \begin{aligned} \min_{w,b,\xi}\ \ & \frac{1}{2}||w||^2+C\sum_{i=1}^m\xi_i\\ s.t.\ \ & y_i(w^Tx_i+b)\geqslant 1-\xi_i\\ & \xi_i\geqslant 0,\ i=1,...,m \end{aligned}

根据拉格朗日乘子法,有下式:
L(w,b,ξ,α,μ)=12w2+Ci=1mξi+i=1mαi(1ξiyi(wTxi+b))i=1mμiξiLw=0w=i=1mαiyixiLb=00=i=1mαiyiLξi=0C=αi+μi L(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^m\xi_i+\sum_{i=1}^m\alpha_i(1-\xi_i-y_i(w^Tx_i+b))-\sum_{i=1}^m\mu_i\xi_i\\ \begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^m\alpha_iy_ix_i\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^m\alpha_iy_i\\ &\frac{\partial L}{\partial \xi_i}=0\Rightarrow C=\alpha_i+\mu_i \end{aligned}

可得到对偶问题,与硬间隔唯一的差别在于约束条件:
maxα  i=1mαi12i=1mj=1mαiαjyiyjxiTxjs.t.  i=1mαiyi=0,0αiC, i=1,...,m \begin{aligned} \max_\alpha\ \ &\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,\\ &0\leqslant \alpha_i\leqslant C,\ i=1,...,m \end{aligned}

对应的KKT条件
{αi0,  μi0yif(xi)1+ξi0αi(yif(xi)1+ξi)=0ξi0,  μiξi0 \left\{\begin{aligned} &\alpha_i \geqslant 0,\ \ \mu_i\geqslant 0\\ &y_if(x_i)-1+\xi_i\geqslant 0\\ &\alpha_i(y_if(x_i)-1+\xi_i)=0\\ &\xi_i\geqslant 0,\ \ \mu_i\xi_i\geqslant 0 \end{aligned}\right.

4. 核方法

将样本从原始空间映射到更高维的特征空间,使得样本在这个特征空间内线性可分

核函数表示为:k(xi,xj)=ϕ(xi)Tϕ(xj)k(x_i,x_j)=\phi(x_i)^T\phi(x_j)

拉格朗日乘子法对偶问题修改为:
maxα  i=1mαi12i=1mj=1mαiαjyiyjk(xi,xj)s.t.  i=1mαiyi=0,αi0, i=1,...,m \begin{aligned} \max_\alpha\ \ &\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jk(x_i,x_j)\\ s.t.\ \ &\sum_{i=1}^m\alpha_iy_i=0,\\ &\alpha_i\geqslant 0,\ i=1,...,m \end{aligned}

超平面修改为:f(x)=wTϕ(x)+bf(x)=w^T\phi(x)+b

常见的核函数如下图所示(图源:机器学习):
西瓜书+实战+吴恩达机器学习(十)监督学习之支持向量机 Support Vector Machine

5. 支持向量回归

支持向量回归(Support Vector Regression)构建一个2ε2\varepsilon的间隔带,若样本落入间隔带,则被认为预测正确。

间隔带两侧松弛程度不同,有:
minw,b,ξ,ξ^  12w2+Ci=1m(ξi+ξ^i)s.t.  f(xi)yiε+ξiyif(xi)ε+ξ^iξi0, ξ^i0, i=1,...,m \begin{aligned} \min_{w,b,\xi,\hat{\xi}}\ \ & \frac{1}{2}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi}_i)\\ s.t.\ \ & f(x_i)-y_i\leqslant \varepsilon+\xi_i\\ & y_i-f(x_i)\leqslant \varepsilon+\hat{\xi}_i\\ & \xi_i\geqslant 0,\ \hat{\xi}_i\geqslant 0,\ i=1,...,m \end{aligned}

根据拉格朗日乘子法,有下式:
L(w,b,ξ,ξ^,α,α^,μ,μ^)=12w2+Ci=1m(ξi+ξ^i)i=1mμiξii=1mμ^iξ^i+i=1mαi(f(xi)yiεξi)+i=1mα^i(yif(xi)εξ^i)Lw=0w=i=1m(αi^αi)xiLb=00=i=1m(α^iαi)Lξi=0C=αi+μiLξ^i=0C=α^i+μ^i \begin{aligned} &L(w,b,\xi,\hat{\xi},\alpha,\hat{\alpha},\mu,\hat{\mu})\\ &=\frac{1}{2}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi}_i)-\sum_{i=1}^m\mu_i\xi_i-\sum_{i=1}^m\hat{\mu}_i\hat{\xi}_i\\ &+\sum_{i=1}^m\alpha_i(f(x_i)-y_i-\varepsilon-\xi_i)+\sum_{i=1}^m\hat{\alpha}_i(y_i-f(x_i)-\varepsilon-\hat{\xi}_i)\\ \end{aligned}\\ \begin{aligned} &\frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i\\ &\frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{i=1}^m(\hat{\alpha}_i-\alpha_i)\\ &\frac{\partial L}{\partial \xi_i}=0\Rightarrow C=\alpha_i+\mu_i\\ &\frac{\partial L}{\partial \hat{\xi}_i}=0\Rightarrow C=\hat{\alpha}_i+\hat{\mu}_i \end{aligned}

可得到对偶问题
maxα  i=1myi(αi^αi)ε(αi^+αi)12i=1mj=1m(αi^αi)(αj^αj)xiTxjs.t.  i=1m(αi^αi)=0,0αi,αi^C, i=1,...,m \begin{aligned} \max_\alpha\ \ &\sum_{i=1}^my_i(\hat{\alpha_i}-\alpha_i)-\varepsilon(\hat{\alpha_i}+\alpha_i)-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_j}-\alpha_j)x_i^Tx_j\\ s.t.\ \ &\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)=0,\\ &0\leqslant \alpha_i,\hat{\alpha_i}\leqslant C,\ i=1,...,m \end{aligned}

对应的KKT条件
{αi(f(xi)yiεξi)=0αi^(yif(xi)εξ^i)=0αiαi^=0, ξiξ^i=0(Cαi)ξi=0, (Cαi^)ξ^i=0 \left\{\begin{aligned} &\alpha_i(f(x_i)-y_i-\varepsilon-\xi_i)=0\\ &\hat{\alpha_i}(y_i-f(x_i)-\varepsilon-\hat{\xi}_i)=0\\ &\alpha_i\hat{\alpha_i}=0,\ \xi_i\hat{\xi}_i=0\\ &(C-\alpha_i)\xi_i=0,\ (C-\hat{\alpha_i})\hat{\xi}_i=0 \end{aligned}\right.

SVR的解表示为:f(x)=i=1m(αi^αi)xiTx+bf(x)=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b

其中,b=yi+εj=1m(αj^αj)xjTxib=y_i+\varepsilon-\sum_{j=1}^m(\hat{\alpha_j}-\alpha_j)x_j^Tx_i


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

相关文章:

  • 2021-10-15
  • 2021-05-21
  • 2021-04-11
  • 2021-09-21
  • 2021-12-13
  • 2021-08-14
  • 2021-12-08
  • 2021-09-28
猜你喜欢
  • 2021-10-12
  • 2021-08-13
  • 2021-10-10
  • 2021-06-18
  • 2021-09-22
  • 2021-12-29
  • 2021-06-24
相关资源
相似解决方案