2022优化理论与应用---SVM

1、简单介绍 

  • 支持向量机(support vector machines, SVM)是一种二分类模型。
  • 它的基本模型是定义在特征空间上的间隔最大的分类,间隔最大是它有别于感知机(PLA)。
  • 支持向量机的学习策略就是使间隔最大化,可形式化为一个求解凸二次规划的问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

2、支持向量机的三大法宝--> 间隔 、对偶、核技巧

2.1 .1 间隔(margin)

        训练集: D=\left\{\left(x_1, y_1\right),\left(x_2, y_2\right), \ldots,\left(\boldsymbol{x}_m, y_m\right)\right\}, y_i \in\{-1,+1\}

        2022优化理论与应用---SVM_第1张图片

        分类学习最基本的思想就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,但是就如上图所示,能将训练样本分开的划分超平面有很多。支持向量机的核心问题就是怎么找到这样一个线性超平面。

        在样本空间中划分超平面可以通过如下线性方程来描述:

w^Tx+b=0

        其中\boldsymbol{w}=\left(w_1 ; w_2 ; \ldots ; w_d\right)为法向量,决定了超平面的方向。b为位移项,决定了超平面与原点的距离。

        超平面可以由w和b唯一确定,我们将其记为(w,b)。样本空间中任意一点x到超平面的的距离可以写为:

r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|}

        假设超平面(w,b)能将训练样本正确分类,在超平面之上的样本(x_i,y_i)记为+1,在超平面下面的样本记为-1,就有:

\begin{cases}\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b \geqslant+1, & y_i=+1 \\ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b \leqslant-1, & y_i=-1\end{cases}

可以写成:y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right) \geqslant 1, \quad i=1,2, \ldots, m     (2.1)

2022优化理论与应用---SVM_第2张图片

        距离超平面最近的这几个训练样本使得上式等号成立,它们被称作“支持向量”(support vector)。两个异类支持向量到超平面的距离之和就是间隔为:

\gamma=\frac{2}{\|\boldsymbol{w}\|}

2022优化理论与应用---SVM_第3张图片

2.1.2 间隔最大化        

        支持向量机学习的基本思想就是求解能够正确划分训练数据集并且间隔最大化的划分超平面。对于线性可分的数据集而言,这样的划分超平面有无穷多个,但是使得间隔最大的划分超平面是唯一的。这里的间隔最大化又被称为硬间隔(hard-margin)最大化。

        间隔最大化的直观解释是:对训练集找到间隔最大的超平面意味着以充分大的确信度对训练数据集进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。

        欲找到具有“最大间隔”(maximum margin)的划分超平面,也就是要找到能够满足式(2.1)中约束的参数w和b,使得\gamma最大:

     \begin{aligned} \max _{\boldsymbol{w}, b} & \frac{2}{\|\boldsymbol{w}\|} \\ \text { s.t. } & y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right) \geqslant 1, \quad i=1,2, \ldots, m . \end{aligned}       (2.2)

显然可以写成:

\begin{aligned} \min _{\boldsymbol{w}, b} & \frac{1}{2}\|\boldsymbol{w}\|^2 \\ \text { s.t. } & y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right) \geqslant 1, \quad i=1,2, \ldots, m . \end{aligned}        (2.3)

上式(2.3)就是支持向量机的基本型。

2.2 对偶问题(dual problem)

2.2.1 拉格朗日乘子法

        我们希望求解式(2.3)来得到最大间隔划分超平面所对应的模型:

f(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b

        其中w和b是模型的参数,式(2.3)本身是一个凸二次规划问题(convex quadratic programming),能使用现成的优化计算包求解,但是这里我们应用更加高效的办法。

        拉格朗日乘子法:

L(\boldsymbol{w}, b, \boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^2+\sum_{i=1}^m \alpha_i\left(1-y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)\right)  (2.4)

        对式(2.4)直接求解比较复杂,我们可以将其转化成对偶问题(dual problem)进行求解。

        \underset{\alpha}{max} \, \underset{w,b}{inf}L(w,b,\alpha)  (2.5)

        令L(w,b,\alpha )对w和b求偏导等于0,

\frac{\partial L}{\partial w}=0 \: \:\:\:\: \frac{\partial L}{\partial b}=0

得:w=\sum_{i=1}^{m}\alpha _iy_ix_i           0=\sum_{i=1}^{m}\alpha _iy_i

带入式(2.4)

2022优化理论与应用---SVM_第4张图片

  \max _{\boldsymbol{\alpha}} \sum_{i=1}^m \alpha_i-\frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \boldsymbol{x}_i^{\mathrm{T}} \boldsymbol{x}_j

                                               s.t.\:\sum_{i=1}^{m}\alpha _iy_i=0

                                                      \alpha _i\geq 0 ,\:\:i=1,2,...,m    

        可将上式写成:

\min _{\boldsymbol{\alpha}} -\sum_{i=1}^m \alpha_i+\frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \boldsymbol{x}_i^{\mathrm{T}} \boldsymbol{x}_j

                                             s.t.\:\sum_{i=1}^{m}\alpha _iy_i=0

                                                     \alpha _i\geq 0 ,\:\:i=1,2,...,m  (2.6)

        即将原问题(2.3)转化为对偶问题(2.6)。 上述过程需要满足KKT(Karush-Kuhn-Tucker)条件,即要求:

\left\{\begin{array}{l} \alpha_i \geqslant 0 \\ y_i f\left(\boldsymbol{x}_i\right)-1 \geqslant 0 \\ \alpha_i\left(y_i f\left(\boldsymbol{x}_i\right)-1\right)=0 \end{array}\right.

        满足KKT条件,对偶问题与原问题满足强对偶关系。显然,大部分的训练样本都不用保留,最终的模型至于支持向量有关。

        对对偶问题求解,只需要求出\alpha的解就可以求出原问题的解。

        假设\alpha^*=(\alpha _1^*,\alpha _2^*,...,\alpha _n^*)^T是对偶问题的解,一定存在\alpha_j^*> 0,使得:

        ​​​​​​​ 

w^*=\sum_{i=1}^{m}\alpha _iy_ix_i

         b^*=y_j-\sum_{i=1}^{m}\alpha _i^*y_i<x_i,x_j>

        2022优化理论与应用---SVM_第5张图片

因此分类决策函数可以写成:

f(x)=sign(\sum_{i=1}^{m}\alpha _i^*y_i<x,x_i>+b^*)

 2.3 核技巧              

2022优化理论与应用---SVM_第6张图片

参考资料:

周志华《机器学习》

李航《统计学方法》

Stephen Boyd《凸优化》

  

你可能感兴趣的:(算法)