『白板推导系列笔记』6.2.支持向量机

161 阅读4分钟

一、硬间隔SVM

1. 模型定义

假设有以下数据:

{(xi,yi)}i=1N,xiRp,yi{+1,1}\left\{\left(x_i, y_i\right)\right\}_{i=1}^N, x_i \in \mathbb{R}^p, y_i \in\{+1,-1\}

SVM的主要思想是在特征空间中寻找一个最大间隔的超平面 wTx+bw^T x+b 实现数据的二分类,SVM属于判别模型。这里的间隔指的是样本点到分离超平面的距离的最小值,用函数 margin(w,b)\operatorname{margin}(w, b) 来表达。下图中在 wx+b=1w \cdot x+b=1wx+b=1w \cdot x+b=-1 线上的样本点就叫支持向量:

2490c4ccafe34dc09a00af179d00d8aetplv-k3u1fbpfcp-watermark.webp

超平面实现将数据的正例和负例分隔开,因此有:

yi=+1,wTxi+b>0yi=1,wTxi+b<0}yi(wTxi+b)>0,for  i=1,2,,N\left.\begin{matrix} y_{i}=+1,w^{T}x_{i}+b>0\\ y_{i}=-1,w^{T}x_{i}+b<0 \end{matrix}\right\}y_{i}(w^{T}x_{i}+b)>0,for\; \forall i=1,2,\cdots ,N

另外最大间隔通过以下方式来表达:

  首先要明确样本点到超平面的距离公式:distance(w,b,xi)=wTx+bw(可以参考初中知识点:点到直线距离d=Ax+By+CA2+B2)  因此间隔可以表达为:margin(w,b)=minxi  distance(w,b,xi)=minxiwTxi+bw,i=1,2,,N  最大间隔可以表达为:maxw,b  margin(w,b)=maxw,b  minxiwTxi+bw=maxw,b  minxiyi(wTxi+b)w,i=1,2,,N①\; 首先要明确样本点到超平面的距离公式:\\ distance(w,b,x_{i})=\frac{\left | w^{T}x+b\right |}{\left \| w\right \|}\\ (可以参考初中知识点:点到直线距离d=\frac{\left | Ax+By+C\right |}{\sqrt{A^{2}+B^{2}}})\\ ②\; 因此间隔可以表达为:\\ margin(w,b)=\underset{x_{i}}{min}\; distance(w,b,x_{i})=\underset{x_{i}}{min}\frac{\left | w^{T}x_{i}+b\right |}{\left \| w\right \|},i=1,2,\cdots ,N\\ ③\; 最大间隔可以表达为:\\ \underset{w,b}{max}\; margin(w,b)=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{\left | w^{T}x_{i}+b\right |}{\left \| w\right \|}=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|},i=1,2,\cdots ,N

然后求解支持向量机就可以转化为以下带约束的优化问题:

{maxw,b  margin(w,b)=maxw,b  minxiyi(wTxi+b)w,i=1,2,,Ns.t.  yi(wTxi+b)>0,i=1,2,,N\left\{\begin{matrix} \underset{w,b}{max}\; margin(w,b)=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|},i=1,2,\cdots ,N\\ s.t.\; y_{i}(w^{T}x_{i}+b)>0,i=1,2,\cdots ,N \end{matrix}\right.

上述优化问题还可以进一步转化:

由约束yi(wTxi+b)>0,i=1,2,,N可以得出γ>0使得minxi  yi(wTxi+b)=γ由于确定同一个超平面的w,b可以任意放缩,所以这里的γ可以约束等于1maxw,b  margin(w,b)=maxw,b  minxiyi(wTxi+b)w=maxw,b1wminxi  yi(wTxi+b)=γ=1=maxw,b1w=minw,b12wTwi=1,2,,N由约束y_{i}(w^{T}x_{i}+b)>0,i=1,2,\cdots ,N可以得出\\ \exists \gamma >0使得\underset{x_{i}}{min}\; y_{i}(w^{T}x_{i}+b)=\gamma \\ 由于确定同一个超平面的w,b可以任意放缩,\\所以这里的\gamma 可以约束等于1。\\ 则\underset{w,b}{max}\; margin(w,b)\\ =\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|}\\ =\underset{w,b}{max}\frac{1}{\left \| w\right \|}\underset{=\gamma =1}{\underbrace{\underset{x_{i}}{min}\; y_{i}(w^{T}x_{i}+b)}}\\ =\underset{w,b}{max}\frac{1}{\left \| w\right \|}\\ =\underset{w,b}{min}\frac{1}{2}w^{T}w\\ i=1,2,\cdots ,N

这是一个带N个约束的凸优化问题。

2. 优化问题的转化

上述优化问题可以使用拉格朗日乘子法来求解,构建拉格朗日函数:

L(w,b,λ)=12wTw+i=1Nλi(1yi(wTxi+b))λ=(λ1λ2λN)TL(w,b,\lambda )=\frac {1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ \lambda =\begin{pmatrix} \lambda _{1} & \lambda _{2} & \cdots & \lambda _{N} \end{pmatrix}^{T}

然后上述优化问题就可以转换为以下优化问题:

{minw,b  maxλL(w,b,λ)=12wTw+i=1Nλi(1yi(wTxi+b))s.t.  λi0,i=1,2,,N\left\{\begin{matrix} \underset{w,b}{min}\; \underset{\lambda }{max}L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.

我们可以简单地看一下为什么可以这么转化:

1yi(wTxi+b)>0时,由于λi0,所以maxλL(w,b,λ)=1yi(wTxi+b)0时,由于λi0,所以maxλL(w,b,λ)=12wTw因此minw,b  maxλL(w,b,λ)=minw,b{12wTw,}=12wTw当1-y_{i}(w^{T}x_{i}+b)>0时,由于\lambda _{i}\geq 0,所以\underset{\lambda }{max}L(w,b,\lambda )=\infty \\ 当1-y_{i}(w^{T}x_{i}+b)\leq 0时,由于\lambda _{i}\geq 0,所以\underset{\lambda }{max}L(w,b,\lambda )=\frac{1}{2}w^{T}w \\ 因此\underset{w,b}{min}\; \underset{\lambda }{max}L(w,b,\lambda )=\underset{w,b}{min}\left \{\frac{1}{2}w^{T}w,\infty \right \}=\frac{1}{2}w^{T}w

然后使用以下结论继续对该优化问题进行转化:

min  max  L的对偶问题为max  min  L,有以下结论:min  max  Lmax  min  L可以简单地认为对于L先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大类似于“凤尾”“鸡头”如果min  max  L是凸优化问题,所以min  max  L=max  min  L,为强对偶关系min\; max\; L的对偶问题为max\; min\; L,有以下结论:\\ min\; max\; L\geq max\; min\; L\\ 可以简单地认为对于L先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大\\ 类似于“凤尾”\geq “鸡头”\\ 如果min\; max\; L是凸优化问题,所以min\; max\; L=max\; min\; L,为强对偶关系

因此该优化问题可以继续转化:

{maxλ  minw,b  L(w,b,λ)=12wTw+i=1Nλi(1yi(wTxi+b))s.t.  λi0,i=1,2,,N\left\{\begin{matrix} \underset{\lambda }{max}\; \underset{w,b}{min}\;L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.

总结一下,该优化问题经历了以下转化过程:

  带约束优化问题{maxw,b  margin(w,b)=maxw,b  minxiyi(wTxi+b)w,i=1,2,,Ns.t.  yi(wTxi+b)>0,i=1,2,,N  带约束优化问题{minw,b  12wTws.t.  yi(wTxi+b)1,i=1,2,,N  无约束优化问题{minw,b  maxλL(w,b,λ)=12wTw+i=1Nλi(1yi(wTxi+b))s.t.  λi0,i=1,2,,N  无约束优化问题{maxλ  minw,b  L(w,b,λ)=12wTw+i=1Nλi(1yi(wTxi+b))s.t.  λi0,i=1,2,,N①\; 带约束优化问题\left\{\begin{matrix} \underset{w,b}{max}\; margin(w,b)=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|},i=1,2,\cdots ,N\\ s.t.\; y_{i}(w^{T}x_{i}+b)>0,i=1,2,\cdots ,N \end{matrix}\right.\\ ②\; 带约束优化问题\left\{\begin{matrix} \underset{w,b}{min}\;\frac{1}{2}w^{T}w\\ s.t.\; y_{i}(w^{T}x_{i}+b)\geq 1,i=1,2,\cdots ,N \end{matrix}\right.\\ ③\; 无约束优化问题\left\{\begin{matrix} \underset{w,b}{min}\; \underset{\lambda }{max}L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.\\ ④\; 无约束优化问题\left\{\begin{matrix} \underset{\lambda }{max}\; \underset{w,b}{min}\;L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.

3. 模型求解

  • bb求导
Lb=i=1Nλii=1Nλiyi(wTxi+b)b=i=1Nλiyibb=i=1Nλiyi=0因此得出i=1Nλiyi=0\frac{\partial L}{\partial b}=\frac{\partial \sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}(w^{T}x_{i}+b)}{\partial b}=\frac{\partial -\sum_{i=1}^{N}\lambda _{i}y_{i}b}{\partial b}=-\sum_{i=1}^{N}\lambda _{i}y_{i}=0\\ 因此得出\sum_{i=1}^{N}\lambda _{i}y_{i}=0
  • 求解ww
将上一步的结果代入L(w,b,λ)L(w,b,λ)=12wTw+i=1Nλii=1NλiyiwTxii=1Nλiyib=0=12wTw+i=1Nλii=1NλiyiwTxiLw=wi=1Nλiyixi=0得出w=i=1Nλiyixi将上一步的结果代入L(w,b,\lambda )\\ L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}w^{T}x_{i}-\underset{=0}{\underbrace{\sum_{i=1}^{N}\lambda _{i}y_{i}b}} \\ =\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}w^{T}x_{i} \\ \frac{\partial L}{\partial w}=w-\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i}=0 \\ 得出w^{*}=\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i}

这里我们可以看出ww^{*}是数据的线性组合。

  • 得出minw,b  L(w,b,λ)\underset{w,b}{min}\;L(w,b,\lambda )
接着将上一步的结果代入L(w,b,λ)minw,b  L(w,b,λ)=12(i=1Nλiyixi)T(j=1Nλjyjxj)+i=1Nλii=1Nλiyi(j=1Nλjyjxj)Txi=12i=1Nj=1NλiλjyiyjxiTxji=1Nj=1NλiλjyiyjxjTxi+i=1Nλi=12i=1Nj=1NλiλjyiyjxiTxji=1Nj=1NλiλjyiyjxiTxj+i=1Nλi=12i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi接着将上一步的结果代入L(w,b,\lambda )\\ \underset{w,b}{min}\;L(w,b,\lambda )=\frac{1}{2}(\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i})^{T}(\sum_{j=1}^{N}\lambda _{j}y_{j}x_{j})+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}(\sum_{j=1}^{N}\lambda _{j}y_{j}x_{j})^{T}x_{i}\\ =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{x_{j}^{T}x_{i}}}+\sum_{i=1}^{N}\lambda _{i} \\ =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{x_{i}^{T}x_{j}}}+\sum_{i=1}^{N}\lambda _{i} \\ =-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}+\sum_{i=1}^{N}\lambda _{i}

因此该优化问题就相当于:

{maxλ  12i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi,i=1,2,,Ns.t.  λi0,i=1,2,,N\left\{\begin{matrix} \underset{\lambda }{max}\; -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}+\sum_{i=1}^{N}\lambda _{i},i=1,2,\cdots ,N \\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.

也就相当于:

{minλ  12i=1Nj=1NλiλjyiyjxiTxji=1Nλi,i=1,2,,Ns.t.  λi0,i=1,2,,N\left\{\begin{matrix} \underset{\lambda }{min}\; \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\lambda _{i},i=1,2,\cdots ,N\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.
  • KKT条件

首先定义该优化问题的KKT条件:

{Lw=0,Lb=0λi(1yi(wTxi+b))=0λi01yi(wTxi+b)0\left\{\begin{array}{c} \frac{\partial L}{\partial w}=0, \frac{\partial L}{\partial b}=0 \\ \lambda_i\left(1-y_i\left(w^T x_i+b\right)\right)=0 \\ \lambda_i \geq 0 \\ 1-y_i\left(w^T x_i+b\right) \leq 0 \end{array}\right.

该优化问题满足上述KKT条件,这是由于以下定理:

原问题、对偶问题具有强对偶关系 \Leftrightarrow 满足 KKTK K T 条件

KKT条件中 λi(1yi(wTxi+b))=0\lambda_i\left(1-y_i\left(w^T x_i+b\right)\right)=0 也叫松弛互补条件,即 λi\lambda_i1yi(wTxi+b)1-y_i\left(w^T x_i+b\right) 总有一个为 0。 也就是说只有支持向量(1yi(wTxi+b)=01-y_i\left(w^T x_i+b\right) = 0时的λ)对应的 λi\lambda_i 才可能有值 (λi0)\left(\lambda_i \neq 0\right) ,而其他不在 wx+b=1w \cdot x+b=1wx+b=1w \cdot x+b=-1 上的样本点对应的 λi\lambda_i- 定为 0 ,该性质可以用来求出 bb^* 。 我们已经根据 Lw=0\frac{\partial L}{\partial w}=0 求出了 ww^* ,接下来要求出 bb^* ,我们可以通过求解

minλ12i=1Nj=1Nλiλjyi>yjxiTxji=1Nλi,i=1,2,,N\min _\lambda \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \lambda_i \lambda_j y_i > y_j x_i^T x_j-\sum_{i=1}^N \lambda_i, i=1,2, \cdots, N

来得出各个 λi\lambda_i , 而这个过程也是支持向量机算法计算量最大的地方,这里我们就不展示过程了。 找出求解得到的不等于 0 的 λi\lambda_i ,也就是支持向量对应的 λi\lambda_i ,假设其中一个支持向量为 (xk,yk)\left(x_k, y_k\right) ,则有 1yk(wTxk+b)=01-y_k\left(w^T x_k+b\right)=0 ,最终可以解得:

b=ykwTxk=yki=1NλiyixiTxkb^*=y_k-w^T x_k=y_k-\sum_{i=1}^N \lambda_i y_i x_i^T x^k

二、软间隔SVM

我们的训练数据通常不是理想的线性可分,有时甚至是线性不可分的数据。对于存在噪声的一些数据,我们应该允许一点分类错误,因此我们需要对目标函数进行一些调整:

minw,b  12wTw+loss\underset {w,b}{min}\; \frac{1}{2}w^{T}w+loss

1. 使用误分类点的个数作为loss

loss=i=1NI{yi(wTxi+b)<1}loss=\sum_{i=1}^{N}I\left \{y_{i}(w^{T}x_{i}+b)<1\right \}

显然使用的指示函数是不连续的,不利于求解,所以不使用这种loss函数。

2. 使用距离作为loss

如果yi(wTxi+b)1,loss=0如果yi(wTxi+b)<1,loss=1yi(wTxi+b)}loss=max{0,1yi(wTxi+b)}\left.\begin{matrix} 如果y_{i}(w^{T}x_{i}+b)\geq 1,loss=0\\ 如果y_{i} (w^{T}x_{i}+b)< 1,loss=1-y_{i}(w^{T}x_{i}+b) \end{matrix}\right\}loss=max\left \{0,1-y_{i}(w^{T}x_{i}+b)\right \}

该函数为合页损失函数(hinge loss),令z=yi(wTxi+b)z=y_{i}(w^{T}x_{i}+b),则losslosszz的图像如下:

a20852a1662246c19809a8417c1a3bfetplv-k3u1fbpfcp-watermark.webp

3. 软间隔SVM的优化问题

{minw,b12wTw+Ci=1Nmax{0,1>yi(wTxi+b)} s.t. yi(wTxi+b)1,i=1,2,,N\left\{\begin{array}{c} \min _{w, b} \frac{1}{2} w^{T} w+C \sum_{i=1}^{N} \max \left\{0,1->y_{i}\left(w^{T} x_{i}+b\right)\right\} \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, N \end{array}\right.

引入 ξi=1yi(wTxi+b),ξi0,i=1,2,,N\xi_i=1-y_i\left(w^T x_i+b\right), \xi_i \geq 0, i=1,2, \cdots, N ,则该优化问题转化为:

{minw,b12wTw+Ci=1Nξi s.t. yi(wTxi+b)1ξi,i=1,2,,Nξi0\left\{\begin{array}{c} \min _{w, b} \frac{1}{2} w^{T} w+C \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1-\xi_{i}, i=1,2, \cdots, N \\ \xi_{i} \geq 0 \end{array}\right.

上面的式子中,常数 CC 可以看作允许的错误水平,同时上式为了进一步消除 max\max 符号,对数据集中的每一个观测,我们可以认为其大部分满足约束,但是其中部分违反约束,因此这部分约束变成 yi(wTxi+b)1ξiy_i\left(w^T x_i+b\right) \geq 1-\xi_i(该部分将ξi\xi_i带入,也可以看作2yi(wTxi+b)22y_i\left(w^T x_i+b\right) \geq 2,恒成立) ,并且注意此约束其实与引入的ξi\xi_i定义相矛盾,这是因为引入它本来就是为了放松条件,之前的约束作废。 软间隔SVM也是使用拉格朗日乘子法进行求解。

三、小结

分类问题在很长一段时间都依赖 SVM,对于严格可分的数据集,Hard-margin SVM 选定一个超平面,保证所有数据到这个超平面的距离最大,对这个平面施加约束,固定 yi(wTxi+b)=1y_i(w^Tx_i+b)=1,得到了一个凸优化问题并且所有的约束条件都是仿射函数,于是满足 Slater 条件,将这个问题变换成为对偶的问题,可以得到等价的解,并求出约束参数:

maxλ12i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi, s.t. λi0\max_{\lambda}-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i,\ s.t.\ \lambda_i\ge0

对需要的超平面参数的求解采用强对偶问题的 KKT 条件进行。

Lw=0,Lb=0λk(1yk(wTxk+b))=0( slackness complementary )λi01yi(wTxi+b)0\begin{array}{l} \frac{\partial L}{\partial w}=0, \frac{\partial L}{\partial b}=0 \\ \lambda_{k}\left(1-y_{k}\left(w^{T} x_{k}+b\right)\right)=0(\text { slackness complementary }) \\ \lambda_{i} \geq 0 \\ 1-y_{i}\left(w^{T} x_{i}+b\right) \leq 0 \end{array}

解就是:

w^=i=1Nλiyixib^=ykwTxk=yki=1NλiyixiTxk,k,1yk(wTxk+b)=0\hat{w}=\sum\limits_{i=1}^N\lambda_iy_ix_i\\ \hat{b}=y_k-w^Tx_k=y_k-\sum\limits_{i=1}^N\lambda_iy_ix_i^Tx_k,\exist k,1-y_k(w^Tx_k+b)=0

当允许一点错误的时候,可以在 Hard-margin SVM 中加入错误项。用 Hinge Function 表示错误项的大小,得到:

argminw,b12wTw+Ci=1Nξi s.t. yi(wTxi+b)1ξi,ξi0,i=1,2,,N\mathop{argmin}_{w,b}\frac{1}{2}w^Tw+C\sum\limits_{i=1}^N\xi_i\ s.t.\ y_i(w^Tx_i+b)\ge1-\xi_i,\xi_i\ge0,i=1,2,\cdots,N

对于完全不可分的问题,我们采用特征转换的方式,在 SVM 中,我们引入正定核函数来直接对内积进行变换,只要这个变换满足对称性和正定性,那么就可以用做核函数。

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情