支持向量机(SVMSVMSVM)
1 导读部分
- SVMSVMSVM是一种二分类模型
- SVMSVMSVM的基本模型是定义在特征空间上的间隔最大的线性分类器
- SVMSVMSVM还包括核技巧,这使得它成为非线性分类器
- SVMSVMSVM的学习策略是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题
- SVMSVMSVM模型由简至繁的分类:
- 线性可分支持向量机:训练数据线性可分,通过硬间隔最大化,学习一个线性的分类器
- 线性支持向量机:训练数据近似线性可分,通过软间隔最大化,学习一个线性的分类器
- 非线性支持向量机:训练数据线性不可分,通过核技巧和软间隔最大化,学习一个非线性的分类器
2 线性可分支持向量机与硬间隔最大化
一个特征空间上的数据集:
-
T={(x1,y1),(x2,y2),⋯ ,(xN,yN)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1}x_{i} \in \mathcal{X}=\mathbf{R}^{n},y_{i} \in \mathcal{Y}=\{+1,-1\}xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋯ ,Ni=1,2, \cdots, Ni=1,2,⋯,N,xix_ixi是第iii个特征向量,也称为实例,yiy_iyi为xix_ixi的类别标记
-
当y=+1y=+1y=+1时,称xix_ixi为正例;当y=−1y=-1y=−1时,称xix_ixi为正例
-
(xi,yi)(x_i,y_i)(xi,yi)为样本点,假设数据集是线性可分的
-
分离超平面为:w⋅x+b=0w \cdot x+b=0w⋅x+b=0,由法向量www和截距bbb决定,由(w,b)(w, b)(w,b)表示;将特征空间分为两部分:正类和负类
函数间隔和几何间隔:
-
函数间隔:
- 给定数据集TTT和超平面(w,b)(w, b)(w,b),超平面(w,b)(w,b)(w,b)和样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔为:γ^i=yi(w⋅xi+b)\hat{\gamma}_{i}=y_{i}\left(w \cdot x_{i}+b\right)γ^i=yi(w⋅xi+b)
- 函数间隔可以表示分类预测的正确性及确信度
- 定义超平面(w,b)(w,b)(w,b)关于训练数据集TTT的函数间隔为超平面(w,b)(w,b)(w,b)关于TTT中所有样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔之和最小值,即:γ^=mini=1,⋯ ,Nγ^i\hat \gamma=\displaystyle \min_{i=1,\cdots,N}\hat\gamma_iγ^=i=1,⋯,Nminγ^i
-
几何间隔:
- 给定数据集TTT和超平面(w,b)(w, b)(w,b),超平面(w,b)(w,b)(w,b)和样本点(xi,yi)(x_i,y_i)(xi,yi)的几何间隔为:γi=yi(w∥w∥⋅xi+b∥w∥)\gamma_{i}=y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right)γi=yi(∥w∥w⋅xi+∥w∥b)
- 几何间隔对法向量www和截距bbb做了规范化处理,同除www的L2L_2L2范数,是样本点到超平面带符号的距离
- 定义超平面(w,b)(w,b)(w,b)关于训练数据集TTT的函数间隔为超平面(w,b)(w,b)(w,b)关于TTT中所有样本点(xi,yi)(x_i,y_i)(xi,yi)的几何间隔之和最小值,即:γ=mini=1,⋯ ,Nγi\gamma=\displaystyle \min_{i=1,\cdots,N}\gamma_iγ=i=1,⋯,Nminγi
-
函数间隔和几何间隔的关系:γi=γ^i∥w∥\gamma_{i}=\frac{\hat{\gamma}_{i}}{\|w\|}γi=∥w∥γ^i,γ=γ^∥w∥\gamma=\frac{\hat{\gamma}}{\|w\|}γ=∥w∥γ^
间隔最大化:
-
支持向量机学习:正确分类训练数据集+找到几何间隔最大的分离超平面(以获得比较好的泛化能力),这个超平面是唯一的
-
求函数间隔最大化的超平面:
maxw,bγ s.t. yi(w∥w∥⋅xi+b∥w∥)⩾γ,i=1,2,⋯ ,N \begin{array}{ll}{\displaystyle\max _{w, b}} & {\gamma} \\ {\text { s.t. }} & {y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right) \geqslant \gamma, \quad i=1,2, \cdots, N}\end{array} w,bmax s.t. γyi(∥w∥w⋅xi+∥w∥b)⩾γ,i=1,2,⋯,N -
求几何间隔最大化的超平面:
maxw,bγ^∥w∥ s.t. yi(w⋅xi+b)⩾γ^,i=1,2,⋯ ,N \begin{array}{cl}{\displaystyle\max _{w, b}} & {\frac{\hat{\gamma}}{\|w\|}} \\ {\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right) \geqslant \hat{\gamma}, \quad i=1,2, \cdots, N}\end{array} w,bmax s.t. ∥w∥γ^yi(w⋅xi+b)⩾γ^,i=1,2,⋯,N -
该优化问题与几何间隔γ^\hat{\gamma}γ^的取值无关,故等价优化问题为:
minw,b12∥w∥2 s.t. yi(w⋅xi+b)−1⩾0,i=1,2,⋯ ,N \color{red} \begin{array}{ll}{\displaystyle\min _{w, b}} & {\frac{1}{2}\|w\|^{2}} \\ {\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N}\end{array} w,bmin s.t. 21∥w∥2yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
这是一个凸二次规划问题,这个式子是SVM的原始最优化问题 -
求得最优解:w∗,b∗w^{*}, b^{*}w∗,b∗,得分离超平面:w∗⋅x+b∗=0w^{*} \cdot x+b^{*}=0w∗⋅x+b∗=0,得分类超平面:f(x)=sign(w∗⋅x+b∗)f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)f(x)=sign(w∗⋅x+b∗)
-
最大间隔分离超平面的存在唯一性可证明
支持向量和间隔边界:
-
支持向量对应于:yi(w⋅xi+b)−1=0y_i(w\cdot x_i+b)-1 = 0yi(w⋅xi+b)−1=0
-
对应于两个超平面:
对应yi=+1y_i=+1yi=+1的正例点,支持向量在超平面:H1:w⋅x+b=1H_{1}: w \cdot x+b=1H1:w⋅x+b=1
对应yi=−1y_i=-1yi=−1的负例点,支持向量在超平面:H2:w⋅x+b=−1H_{2}: w \cdot x+b=-1H2:w⋅x+b=−1;
-
在H1,H2H_1,H_2H1,H2上的点称为支持向量,分离超平面位于H1,H2H_1,H_2H1,H2中央,H1,H2H_1,H_2H1,H2称为间隔边界
-
H1,H2H_1,H_2H1,H2之间的距离称为间隔,等于:2∥w∥\frac{2}{\|w\|}∥w∥2
-
在确定分离超平面时只有支持向量起着决定作用,所以将这种分类模型称为支持向量机
-
例7.17.17.1的解法,PythonPythonPython程序实现为:
from scipy import optimize import numpy as np fun = lambda x: ((x[0]) ** 2 + (x[1]) ** 2)/2 cons = ({'type': 'ineq', 'fun': lambda x: 3 * x[0] + 3 * x[1] + x[2] - 1}, {'type': 'ineq', 'fun': lambda x: 4 * x[0] + 3 * x[1] + x[2] - 1}, {'type': 'ineq', 'fun': lambda x: -x[0] - x[1] - x[2] - 1}) res = optimize.minimize(fun, np.ones(3), method='SLSQP', constraints=cons) res
学习的对偶问题:
-
对偶问题往往更容易求解;自然引入核函数,进而推广到非线性分类问题
-
针对每个不等式约束,定义拉格朗日乘子αi≥0\alpha_i\ge0αi≥0,定义拉格朗日函数:
KaTeX parse error: No such environment: align at position 19: …olor{red}\begin{̲a̲l̲i̲g̲n̲}̲ L(w,b,\alpha)&…
其中α=(α1,α2,…,αN)T\alpha=(\alpha_1,\alpha_2,\dots,\alpha_N)^Tα=(α1,α2,…,αN)T为拉格朗日乘子向量 -
原始问题是极小极大问题,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
maxαminw,bL(w,b,α) \max\limits_\alpha\min\limits_{w,b}L(w,b,\alpha) αmaxw,bminL(w,b,α) -
求minw,bL(w,b,α)\displaystyle \min _{w, b} L(w, b, \alpha)w,bminL(w,b,α):
∇wL(w,b,α)=w−∑i=1Nαiyixi=0∇bL(w,b,α)=∑i=1Nαiyi=0 \begin{array}{l}{\nabla_{w} L(w, b, \alpha)=w-\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0} \\ {\nabla_{b} L(w, b, \alpha)=\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array} ∇wL(w,b,α)=w−i=1∑Nαiyixi=0∇bL(w,b,α)=i=1∑Nαiyi=0得:
w=∑i=1Nαiyixi∑i=1Nαiyi=0 \begin{array}{l}{w=\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}} \\ {\displaystyle \sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array} w=i=1∑Nαiyixii=1∑Nαiyi=0
代入L(w,b,α)L(w,b,\alpha)L(w,b,α)后得:
L(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi((∑j=1Nαjyjxj)⋅xi+b)+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi \begin{aligned} L(w, b, \alpha) &=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j}\right) \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \end{aligned} L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi即:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi \min _{w, b} L(w, b, \alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi -
求minw,bL(w,b,α)\displaystyle \min _{w, b} L(w, b, \alpha)w,bminL(w,b,α)对α\alphaα的极大,既是对偶问题:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi s.t. ∑i=1Nαiyi=0αi⩾0,i=1,2,⋯ ,N \begin{array}{cl}{\displaystyle \max _{\alpha}} & {-\frac{1}{2} \displaystyle\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}} \\ {\text { s.t. }} & \displaystyle{\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array} αmax s.t. −21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N目标函数转化为最小:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi s.t. ∑i=1Nαiyi=0αi⩾0,i=1,2,⋯ ,N \color{red}\begin{array}{cl}\displaystyle {\min _{\alpha}} & {\frac{1}{2} \displaystyle\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}} \\ {\text { s.t. }} & \displaystyle {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array} αmin s.t. 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N -
根据上不等式可求得α∗=(α1∗,α2∗,⋯ ,αN∗)T\alpha^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \cdots, \alpha_{N}^{*}\right)^{\mathrm{T}}α∗=(α1∗,α2∗,⋯,αN∗)T,进一步求得:w∗,b∗w^{*}, b^{*}w∗,b∗
w∗=∑i=1Nαi∗yixib∗=yj−∑i=1Nαi∗yi(xi⋅xj) \color{red}\begin{aligned} w^{*} &=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i} \\ b^{*}=& y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x_{i} \cdot x_{j}\right) \end{aligned} w∗b∗==i=1∑Nαi∗yixiyj−i=1∑Nαi∗yi(xi⋅xj)
分离超平面为:
∑i=1Nαi∗yi(x⋅xi)+b∗=0 \color{red} \sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}=0 i=1∑Nαi∗yi(x⋅xi)+b∗=0
线性可分支持向量机的对偶形式,分类决策函数:
f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗) \color{red}f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}\right) f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
定义:训练数据集中对应于αi∗>0\alpha_{i}^{*}>0αi∗>0的样本点(xi,yi)\left(x_{i}, y_{i}\right)(xi,yi)的实例点xi∈Rnx_{i} \in \mathbf{R}^{n}xi∈Rn称为支持向量
由KKTKKTKKT互补条件可知:αi∗(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯ ,N\alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1\right)=0, \quad i=1,2, \cdots, Nαi∗(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯,N
对于αi∗>0\alpha_{i}^{*}>0αi∗>0的样本点(xi,yi)\left(x_{i}, y_{i}\right)(xi,yi),有:yi(w∗⋅xi+b∗)−1=0y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1=0yi(w∗⋅xi+b∗)−1=0
或者:w∗⋅xi+b∗=±1w^{*} \cdot x_{i}+b^{*}=\pm 1w∗⋅xi+b∗=±1
即:样本点(xi,yi)\left(x_{i}, y_{i}\right)(xi,yi)一定在间隔边界上