文章目录
- 7.支持向量机(Support vector machines,SVM)
- 7.1 线性可分支持向量机
- 7.1.2 概念
- 7.1.2 硬间隔最大化数学表示
- 7.2线性支持向量机
- 7.2.1软件隔最大化概念
- 7.2.3 软间隔最大化数学表示
- 7.2.3合页损失
- 7.3非线性支持向量机
- 7.4线性可分向量机、线性支持向量机、非线性支持向量机的最优解总结
- 7.5序列最小最优化算法(SMO,sequential minimal optimization)
7.支持向量机(Support vector machines,SVM)
- 是二分类模型。学习策略是间隔最大化
- 包含三种:
- 线性可分支持向量机:训练数据线性可分,通过硬间隔最大化学习。
- 线性支持向量机:训练数据近似线性可分(有outlier点),通过软间隔最大化学习
- 非线性支持向量机:训练数据线性不可分,通过使用核技巧及软间隔最大化学习
7.1 线性可分支持向量机
7.1.2 概念
和感知机的区别
- 感知机利用误分类最小的策略,求得分离超平面,但此时解有无穷多个
- 线性可分支持向量机利用间隔最大化求分离超平面,解是唯一的。
支持向量机的决策函数
- 数据集T, x ∈ R n , y ∈ { + 1 , − 1 } x \in R^n, y \in \{+1,-1\} x∈Rn,y∈{+1,−1},y为+1时,称实例为正例,反之为负例
- 学习到的分离超平面:
w ∗ ⋅ x + b ∗ = 0 w^*\cdot x + b^* = 0 w∗⋅x+b∗=0
相应的决策函数为
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x) = sign(w^*\cdot x + b^*) f(x)=sign(w∗⋅x+b∗)
函数间隔
- 超平面(w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的函数间隔为
r ^ i = y i ( w ⋅ x i + b ) \hat{r}_i = y_i(w\cdot x_i+b) r^i=yi(w⋅xi+b)
- 超平面(w,b)关于样本集T的函数间隔,为所有样本点函数间隔的最小值
r ^ = min i = 1 , 2 , ⋯   , N r ^ i \hat{r} = \min_{i=1,2,\cdots,N}\hat{r}_i r^=i=1,2,⋯,Nminr^i
几何间隔
令 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1
- 超平面(w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔为
r i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) r_i = y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||}) ri=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)
- 超平面(w,b)关于样本集T的函数间隔,为所有样本点函数间隔的最小值
r = min i = 1 , 2 , ⋯   , N r i r = \min_{i=1,2,\cdots,N}r_i r=i=1,2,⋯,Nminri
支持向量
- 支持向量:在线性可分的情况下,训练数据集的样本点中与分离超平距离最近的样本点实例称为支持向量。满足:
y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i + b)-1=0 yi(w⋅xi+b)−1=0
- 支撑超平面:正例支持向量所在的超平面, w ⋅ x + b = 1 w\cdot x +b = 1 w⋅x+b=1,负例支持向量所在的超平面, w ⋅ x + b = − 1 w\cdot x +b=-1 w⋅x+b=−1
- 间隔,两个支撑超平面的距离: 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2
- 支持向量在确定分离超平面中起决定性作用。
函数间隔和几何间隔的关系
- 当 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1时,函数间隔与集合间隔相等
- 当w,b成比例改变时,函数间隔也按比例改变,但几何间隔不变
硬间隔最大化
- 支持向量机基本想法:对训练数据集找到几何间隔最大的超平面,以充分大的确认度对训练数据进行分类
- 硬间隔最大化:当训练数据线性可分时(即能找到一个线性分离超平面对每个数据都正确的分类),硬性要求每个样本点到超平面的距离>几何间隔
7.1.2 硬间隔最大化数学表示
求解目标
max w , b r s . t . y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ⩾ r , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{w,b} &\quad r \\ s.t. & \quad y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||}) \geqslant r, \quad i=1,2,\cdots,N \end{aligned} w,bmaxs.t.ryi(∣∣w∣∣w⋅xi+∣∣w∣∣b)⩾r,i=1,2,⋯,N
N是数据集T的数据数目,等价于
max w , b r ^ ∣ ∣ w ∣ ∣ s . t . y i ( w ⋅ x i + b ) ⩾ r ^ , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{w,b} &\quad \frac{\hat{r}}{||w||} \\ s.t. & \quad y_i(w\cdot x_i+b) \geqslant \hat{r}, \quad i=1,2,\cdots,N \end{aligned} w,bmaxs.t.∣∣w∣∣r^yi(w⋅xi+b)⩾r^,i=1,2,⋯,N
由于 r ^ \hat{r} r^可以根据w,b的比例改变而改变,那么取 r ^ = 1 \hat{r}=1 r^=1,上述问题等价于
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w ⋅ x i + b ) − 1 ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \min_{w,b} &\quad \frac{1}{2}||w||^2 \\ s.t. & \quad y_i(w\cdot x_i+b) -1 \geqslant 0 , \quad i=1,2,\cdots,N \end{aligned} w,bmins.t.21∣∣w∣∣2yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
- 由于目标函数 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2是二次凸函数,不等式约束 y i ( w ⋅ x i + b ) − 1 ⩾ 0 \quad y_i(w\cdot x_i+b) -1 \geqslant 0 yi(w⋅xi+b)−1⩾0是仿射函数也是凸函数,有凸集;上述问题称为凸二次规划问题。
- 此时 w , b w,b w,b有唯一解
拉格朗日函数
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) ] + ∑ i = 1 N α i L(w,b,\alpha) = \frac{1}{2}||w||^2 - \sum_{i=1}^N\alpha_i[y_i(w\cdot x_i+b)] + \sum_{i=1}^N\alpha_i L(w,b,α)=21∣∣w∣∣2−i=1∑Nαi[yi(w⋅xi+b)]+i=1∑Nαi
其中 α i ⩾ 0 \alpha_i \geqslant0 αi⩾0,原问题为
min w , b max α L ( w , b , α ) \min_{w,b} \quad \max_\alpha L(w,b,\alpha) w,bminαmaxL(w,b,α)
拉格朗日对偶问题
max α min w , b L ( w , b , α ) \max_\alpha \quad \min_{w,b}L(w,b,\alpha) αmaxw,bminL(w,b,α)
- 对 w , b w,b w,b求导,得到最小值 L ( α ) L(\alpha) L(α)
∂ L ( w , b , α ) ∂ w = w − ∑ i = 1 N α i y i x i = 0 ∂ L ( w , b , α ) ∂ b = − ∑ i = 1 N α i y i = 0 \begin{aligned} \frac{\partial L(w,b,\alpha)}{\partial{w}} &= w -\sum_{i=1}^N\alpha_iy_i x_i=0\\ \frac{\partial L(w,b,\alpha)}{\partial{b}} &= -\sum_{i=1}^N\alpha_iy_i=0 \end{aligned} ∂w∂L(w,b,α)∂b∂L(w,b,α)=w−i=1∑Nαiyixi=0=−i=1∑Nαiyi=0
- 带入L得到 L ( α ) L(\alpha) L(α)
L ( α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j − ∑ i = 1 N α i y i ( ∑ j = 1 N α j y j x j ) ⋅ x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i \begin{aligned} L(\alpha) &= \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j - \sum_{i=1}^N\alpha_iy_i(\sum_{j=1}^N\alpha_jy_j x_j)\cdot x_i - \sum_{i=1}^N\alpha_iy_ib+\sum_{i=1}^N\alpha_i \\ &=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \end{aligned} L(α)=21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj−i=1∑Nαiyi(j=1∑Nαjyjxj)⋅xi−i=1∑Nαiyib+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi
此时对偶问题转为
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad \alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
- 求使 L ( α ) L(\alpha) L(α)最大的最优解 α ∗ \alpha^* α∗
根据下文的最小序列算法求解最优 α ∗ \alpha^* α∗值
- 根据最优解 α ∗ \alpha^* α∗,及互补松弛条件 α i ∗ [ y i ( w ⋅ x i + b ) − 1 ] = 0 \alpha_i^*[y_i(w\cdot x_i+b) -1]=0 αi∗[yi(w⋅xi+b)−1]=0,得到 w ∗ , b ∗ w^*,b^* w∗,b∗
- 当 α i ∗ > 0 \alpha^*_i>0 αi∗>0时, y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i+b) -1=0 yi(w⋅xi+b)−1=0,此时样本点为支持向量
- 当 y i ( w ⋅ x i + b ) − 1 > 0 y_i(w\cdot x_i+b) -1> 0 yi(w⋅xi+b)−1>0时, α i ∗ = 0 \alpha^*_i=0 αi∗=0,样本点不是支持向量机.
找到最优解 α ∗ \alpha^* α∗中大于0的分量,设此项index为j,得到:
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i x_i \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot x_j \end{aligned} w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
求得分离超平面 w ∗ ⋅ x + b ∗ = 0 w^*\cdot x + b^* =0 w∗⋅x+b∗=0,分类决策函数 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*\cdot x + b^*) f(x)=sign(w∗⋅x+b∗)
最优解
- 获得 α ∗ \alpha^* α∗
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad \alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
- 获得 w ∗ , b ∗ w^*,b^* w∗,b∗(找到最优解 α ∗ \alpha^* α∗中大于0的分量,设此项index为j)
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i x_i \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot x_j \end{aligned} w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
对于 α \alpha α向量,支持向量( y i ( w ⋅ x i + b ) = 1 y_i(w\cdot x_i + b)=1 yi(w⋅xi+b)=1)对应的 α i > 0 \alpha_i >0 αi>0,其他样本( y i ( w ⋅ x i + b ) > 1 y_i(w\cdot x_i + b)>1 yi(w⋅xi+b)>1)对应的 α i = 0 \alpha_i =0 αi=0。所以对于 w ∗ = ∑ i = 1 N α i ∗ y i x i w^* =\sum_{i=1}^N\alpha_i^*y_i x_i w∗=∑i=1Nαi∗yixi及 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ c j b^* =y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot c_j b∗=yj−∑i=1Nαi∗yixi⋅cj值,只由 α i ≠ 0 \alpha_i \neq0 αi̸=0的样本决定,即支持向量决定。
7.2线性支持向量机
- 对于一些近似线性可分数据,由于存在一些特异点,模型不能把所有的样本都分类正确。
7.2.1软件隔最大化概念
- 所有样本点的函数间隔不能都满足大于样本集的函数间隔这一条件。
- 所以硬间隔最大化需要修改为软间隔最大化。即对每个样本点引进一个松弛变量 ε i ⩾ 0 \varepsilon_i \geqslant 0 εi⩾0
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ε i s . t . y i ( w ⋅ x i + b ) ⩾ 1 − ε i , i = 1 , 2 , ⋯   , N ε i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \min_{w,b} &\quad \frac{1}{2}||w||^2 + C\sum_{i=1}^N\varepsilon_i\\ s.t. & \quad y_i(w\cdot x_i+b) \geqslant 1- \varepsilon_i , \quad i=1,2,\cdots,N\\ &\quad \varepsilon_i \geqslant 0,i=1,2,\cdots,N \end{aligned} w,bmins.t.21∣∣w∣∣2+Ci=1∑Nεiyi(w⋅xi+b)⩾1−εi,i=1,2,⋯,Nεi⩾0,i=1,2,⋯,N
- 其中 ε i ⩾ 0 \varepsilon_i \geqslant 0 εi⩾0是松弛变量; C ⩾ 0 C \geqslant 0 C⩾0是惩罚参数,表示对松弛变量的支付代价。
- 最小化的目标是,使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2尽可能小,即间隔尽量大,同时使误分类点的个数尽量小。
- 此时w有唯一解,b的解存在一个区间
- 线性支持向量机包含线性可分向量机( ε i = 0 \varepsilon_i = 0 εi=0)
7.2.3 软间隔最大化数学表示
原问题
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ε i s . t . y i ( w ⋅ x i + b ) ⩾ 1 − ε i , i = 1 , 2 , ⋯   , N ε i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \min_{w,b} &\quad \frac{1}{2}||w||^2 + C\sum_{i=1}^N\varepsilon_i\\ s.t. & \quad y_i(w\cdot x_i+b) \geqslant 1- \varepsilon_i , \quad i=1,2,\cdots,N\\ &\quad \varepsilon_i \geqslant 0,i=1,2,\cdots,N \end{aligned} w,bmins.t.21∣∣w∣∣2+Ci=1∑Nεiyi(w⋅xi+b)⩾1−εi,i=1,2,⋯,Nεi⩾0,i=1,2,⋯,N
拉格朗日函数
L ( w , b , ε , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ε i − ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) − 1 + ε i ] − ∑ i = 1 N μ i ε i L(w,b,\varepsilon,\alpha,\mu) = \frac{1}{2}||w||^2 + C\sum_{i=1}^N\varepsilon_i- \sum_{i=1}^N\alpha_i[y_i(w\cdot x_i+b)-1+\varepsilon_i] - \sum_{i=1}^N\mu_i\varepsilon_i L(w,b,ε,α,μ)=21∣∣w∣∣2+Ci=1∑Nεi−i=1∑Nαi[yi(w⋅xi+b)−1+εi]−i=1∑Nμiεi
其中 α i ⩾ 0 , μ i ⩾ 0 \alpha_i \geqslant0,\mu_i\geqslant 0 αi⩾0,μi⩾0,原问题为
min w , b , ε max α , μ L ( w , b , ε , α , μ ) \min_{w,b,\varepsilon} \quad \max_{\alpha,\mu} L(w,b,\varepsilon,\alpha,\mu) w,b,εminα,μmaxL(w,b,ε,α,μ)
拉格朗日对偶问题
max α , μ min w , b , ε L ( w , b , ε , α , μ ) \max_{\alpha,\mu} \quad \min_{w,b,\varepsilon}L(w,b,\varepsilon,\alpha,\mu) α,μmaxw,b,εminL(w,b,ε,α,μ)
KKT条件
- 对 w , b , ε w,b,\varepsilon w,b,ε求导,得到最小值 L ( α , μ ) L(\alpha,\mu) L(α,μ)
∂ L ( w , b , ε , α , μ ) ∂ w = w − ∑ i = 1 N α i y i x i = 0 ∂ L ( w , b , ε , α , μ ) ∂ b = − ∑ i = 1 N α i y i = 0 ∂ L ( w , b , ε , α , μ ) ∂ ε i = C − α i − μ i = 0 \begin{aligned} \frac{\partial L(w,b,\varepsilon,\alpha,\mu)}{\partial{w}} &= w -\sum_{i=1}^N\alpha_iy_i x_i=0\\ \frac{\partial L(w,b,\varepsilon,\alpha,\mu)}{\partial{b}} &= -\sum_{i=1}^N\alpha_iy_i=0 \\ \frac{\partial L(w,b,\varepsilon,\alpha,\mu)}{\partial{\varepsilon_i}} &= C - \alpha_i - \mu_i =0 \end{aligned} ∂w∂L(w,b,ε,α,μ)∂b∂L(w,b,ε,α,μ)∂εi∂L(w,b,ε,α,μ)=w−i=1∑Nαiyixi=0=−i=1∑Nαiyi=0=C−αi−μi=0
带入L得到
L ( α , μ ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + C ∑ i = 1 N ε i − ∑ i = 1 N α i y i ( ∑ j = 1 N α j y j x j ) ⋅ x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i − ∑ i = 1 N α i ε i ∑ i = 1 N μ i ε i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i + ∑ i = 1 N ( C − α i − μ i ) ε i − ∑ i = 1 N α i y i b = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i \begin{aligned} L(\alpha,\mu) &= \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j + C\sum_{i=1}^N\varepsilon_i - \sum_{i=1}^N\alpha_iy_i(\sum_{j=1}^N\alpha_jy_j x_j)\cdot x_i - \sum_{i=1}^N\alpha_iy_ib+\sum_{i=1}^N\alpha_i -\sum_{i=1}^N\alpha_i\varepsilon_i\sum_{i=1}^N\mu_i\varepsilon_i\\ &=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i + \sum_{i=1}^N(C-\alpha_i-\mu_i)\varepsilon_i - \sum_{i=1}^N\alpha_iy_ib \\ &=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \end{aligned} L(α,μ)=21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+Ci=1∑Nεi−i=1∑Nαiyi(j=1∑Nαjyjxj)⋅xi−i=1∑Nαiyib+i=1∑Nαi−i=1∑Nαiεii=1∑Nμiεi=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi+i=1∑N(C−αi−μi)εi−i=1∑Nαiyib=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi
此时对偶问题转为
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N μ i ⩾ 0 , i = 1 , 2 , ⋯   , N C − α i − μ i = 0 , i = 1 , 2 , ⋯   , N ( 即 0 ⩽ α i ⩽ C ) \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad \alpha_i \geqslant 0,i=1,2,\cdots,N \\ &\quad \mu_i \geqslant 0,i=1,2,\cdots,N \\ &\quad C - \alpha_i - \mu_i =0,i=1,2,\cdots,N \quad (\text{即} 0\leqslant\alpha_i\leqslant C) \end{aligned} αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,Nμi⩾0,i=1,2,⋯,NC−αi−μi=0,i=1,2,⋯,N(即0⩽αi⩽C)
- 求使 L ( α ) L(\alpha) L(α)最大的最优解 α ∗ \alpha^* α∗
根据下文的最小序列算法求解最优 α ∗ \alpha^* α∗值
- 根据最优解 α ∗ \alpha^* α∗,及互补松弛条件 α i ∗ [ y i ( w ⋅ x i + b ) − 1 + ε i ] = 0 \alpha_i^*[y_i(w\cdot x_i+b) -1+\varepsilon_i]=0 αi∗[yi(w⋅xi+b)−1+εi]=0及 μ i ε i = 0 \mu_i\varepsilon_i=0 μiεi=0,得到 w ∗ , b ∗ w^*,b^* w∗,b∗
-
当 0 < α i ∗ < C 0<\alpha^*_i<C 0<αi∗<C时, 0 < μ i 0<\mu_i 0<μi,且 ε i = 0 \varepsilon_i=0 εi=0,此时, y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i+b) -1=0 yi(w⋅xi+b)−1=0.
-
但 α i = C \alpha_i=C αi=C,此时 μ i = 0 \mu_i=0 μi=0,且 ε i > 0 \varepsilon_i>0 εi>0
- 如果 0 < ε i < 1 0<\varepsilon_i<1 0<εi<1, 0 < y i ( w ⋅ x i + b ) < 1 0<y_i(w\cdot x_i+b)<1 0<yi(w⋅xi+b)<1样本点在间隔边界和分离超平面之间
- ε i = 1 \varepsilon_i=1 εi=1, y i ( w ⋅ x i + b ) = 0 y_i(w\cdot x_i+b)=0 yi(w⋅xi+b)=0样本点在分离超平面之上
- ε i > 1 \varepsilon_i>1 εi>1, y i ( w ⋅ x i + b ) < 0 y_i(w\cdot x_i+b)<0 yi(w⋅xi+b)<0样本点在分离超平面之误分类一侧
-
当 α i = 0 \alpha_i=0 αi=0,此时 μ i = C \mu_i=C μi=C,且 ε i = 0 \varepsilon_i=0 εi=0, y i ( w ⋅ x i + b ) > 1 y_i(w\cdot x_i+b)>1 yi(w⋅xi+b)>1,此时样本点是被分离超平面明确分类正确的点,对分离超平面的 w , b w,b w,b不起作用
- 我对b有多解的直观理解:w的解是唯一的, w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_i x_i w∗=∑i=1Nαi∗yixi,虽说w值唯一,但 α \alpha α的解不唯一, ε \varepsilon ε的解不唯一。假如两个点分别为正负样本点,都在间隔平面内,当间隔平面平行移动时,正负样例点距正负间隔平面距离之和是不变的。
找到最优解 α ∗ \alpha^* α∗中满足 0 < α i ∗ < C 0<\alpha^*_i<C 0<αi∗<C的分量,设此项index为j,得到:
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i x_i \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot x_j \end{aligned} w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
求得分离超平面 w ∗ ⋅ x + b ∗ = 0 w^*\cdot x + b^* =0 w∗⋅x+b∗=0,分类决策函数 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*\cdot x + b^*) f(x)=sign(w∗⋅x+b∗)
最优解
- 获得 α ∗ \alpha^* α∗
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 C ⩾ α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad C \geqslant\alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
与线性可分向量机的区别在于 α i \alpha_i αi的取值范围。
- 获得 w ∗ , b ∗ w^*,b^* w∗,b∗(找到最优解 α ∗ \alpha^* α∗中满足 0 < α i ∗ < C 0<\alpha^*_i<C 0<αi∗<C的分量,设此项index为j)
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i x_i \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot x_j \end{aligned} w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
对于 w ∗ = ∑ i = 1 N α i ∗ y i x i w^* =\sum_{i=1}^N\alpha_i^*y_i x_i w∗=∑i=1Nαi∗yixi及 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ c j b^* =y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot c_j b∗=yj−∑i=1Nαi∗yixi⋅cj值,只由 α i ≠ 0 \alpha_i \neq0 αi̸=0的样本决定,即支持向量决定。
7.2.3合页损失
线性支持向量机的另一种解释,最小化结构化风险
∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 \sum_{i=1}^N[1-y_i(w\cdot x_i +b)]_+ + \lambda||w||^2 i=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
- 合页损失函数:
L ( y ( w ⋅ x + b ) ) = [ 1 − y ( w ⋅ x + b ) ] + L(y(w\cdot x+b))=[1-y(w\cdot x +b)]_+ L(y(w⋅x+b))=[1−y(w⋅x+b)]+
其中
[ z ] + = { z , z > 0 0 , z ⩽ 0 [z]_+=\begin{cases}z,&z>0\\0,&z\leqslant0\end{cases} [z]+={z,0,z>0z⩽0
当样本点被正确分类,且函数间隔(确信度)大于1时,损失0;在间隔边界另一侧的样本(分类正确但确信度不够大,或分类错误的样本),损失为 1 − y ( w ⋅ x + b ) 1-y(w\cdot x +b) 1−y(w⋅x+b).
- 等价于线性支持向量机
令 1 − y i ( w ⋅ x i + b ) = ε i 1-y_i(w\cdot x_i +b)=\varepsilon_i 1−yi(w⋅xi+b)=εi, ε i ⩾ 0 \varepsilon_i \geqslant 0 εi⩾0
那么 min ∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 \min \quad \sum_{i=1}^N[1-y_i(w\cdot x_i +b)]_+ + \lambda||w||^2 min∑i=1N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2等价于 min ∑ i = 1 N ε i + λ ∣ ∣ w ∣ ∣ 2 \min \quad \sum_{i=1}^N\varepsilon_i + \lambda||w||^2 min∑i=1Nεi+λ∣∣w∣∣2取 λ = 1 2 C \lambda = \frac{1}{2C} λ=2C1
等价于 min C ∑ i = 1 N ε i + 1 2 ∣ ∣ w ∣ ∣ 2 \min \quad C\sum_{i=1}^N\varepsilon_i + \frac{1}{2}||w||^2 minC∑i=1Nεi+21∣∣w∣∣2
7.3非线性支持向量机
当分类问题非线性,利用核技巧学习
7.3.1 核技巧
- 非线性可分问题:用一个超曲面将正负例正确分开。
- 使用一个变换将原空间的数据映射到新空间,在新空间里用线性分类学习方法从训练数据中学习模型。
- 当输入空间为欧式空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。
核函数数学表达
设X(欧式空间)是输入空间,H为特征空间(希尔伯特),如果存在一个从X到H的映射
ϕ ( x ) : x → H \phi(x):x\rightarrow H ϕ(x):x→H
使所有的 x , z ∈ X x,z \in X x,z∈X,核函数满足条件
K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z) = \phi(x)\cdot\phi(z) K(x,z)=ϕ(x)⋅ϕ(z)
则K(x,z)为核函数, ϕ ( x ) \phi(x) ϕ(x)为映射函数
最优解
- 获得 α ∗ \alpha^* α∗
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 C ⩾ α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j K(x_i,x_j) +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad C \geqslant\alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
- 获得 w ∗ , b ∗ w^*,b^* w∗,b∗(找到最优解 α ∗ \alpha^* α∗中满足 0 < α i ∗ < C 0<\alpha^*_i<C 0<αi∗<C的分量,设此项index为j)
w ∗ = ∑ i = 1 N α i ∗ y i ϕ ( x i ) b ∗ = y j − ∑ i = 1 N α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x j ) = y j − ∑ i = 1 N α i ∗ y i K ( x i , x j ) \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i \phi(x_i) \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i \phi(x_i)\cdot \phi(x_j)=y_j - \sum_{i=1}^N\alpha_i^*y_i K(x_i,x_j) \end{aligned} w∗b∗=i=1∑Nαi∗yiϕ(xi)=yj−i=1∑Nαi∗yiϕ(xi)⋅ϕ(xj)=yj−i=1∑Nαi∗yiK(xi,xj)
- 分离超平面
f ( x ) = s i g n ( w ∗ ⋅ ϕ ( x ) + b ∗ ) = s i g n ( ∑ i = 1 N α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x ) + b ∗ ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x i , x ) + b ∗ ) \begin{aligned} f(x) &= sign(w^*\cdot \phi(x) + b^*)\\ &=sign(\sum_{i=1}^N\alpha_i^*y_i \phi(x_i)\cdot \phi(x) + b^*) \\ &=sign(\sum_{i=1}^N\alpha_i^*y_i K(x_i,x) + b^*) \end{aligned} f(x)=sign(w∗⋅ϕ(x)+b∗)=sign(i=1∑Nαi∗yiϕ(xi)⋅ϕ(x)+b∗)=sign(i=1∑Nαi∗yiK(xi,x)+b∗)
7.3.2 常用核函数
- 多项式核函数(polynomial kernel function)
K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z) = (x\cdot z+1)^p K(x,z)=(x⋅z+1)p
此时分类决策函数为
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x i ⋅ x + 1 ) p + b ∗ ) f(x) = sign(\sum_{i=1}^N\alpha_i^*y_i (x_i\cdot x+1)^p + b^*) f(x)=sign(i=1∑Nαi∗yi(xi⋅x+1)p+b∗)
- 高斯核函数(Gaussian kernel function)
K ( x , z ) = e x p ( − ∥ x − z ∥ 2 2 σ 2 ) K(x,z) = exp(-\frac{\parallel x-z \parallel^2}{2\sigma^2}) K(x,z)=exp(−2σ2∥x−z∥2)
对应的支持向量机是高斯径向基函数(radius basis function)分类器。此时分类决策函数是
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i e x p ( − ∥ x i − z ∥ 2 2 σ 2 ) + b ∗ ) f(x) = sign(\sum_{i=1}^N\alpha_i^*y_i exp(-\frac{\parallel x_i-z \parallel^2}{2\sigma^2}) + b^*) f(x)=sign(i=1∑Nαi∗yiexp(−2σ2∥xi−z∥2)+b∗)
7.4线性可分向量机、线性支持向量机、非线性支持向量机的最优解总结
线性可分向量机
- 获得 α ∗ \alpha^* α∗
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad \alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
- 获得 w ∗ , b ∗ w^*,b^* w∗,b∗(找到最优解 α ∗ \alpha^* α∗中大于0的分量,设此项index为j)
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i x_i \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot x_j \end{aligned} w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
线性支持向量机
- 获得 α ∗ \alpha^* α∗
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 C ⩾ α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j x_i \cdot x_j +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad C \geqslant\alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
与线性可分向量机的区别在于 α i \alpha_i αi的取值范围。
- 获得 w ∗ , b ∗ w^*,b^* w∗,b∗(找到最优解 α ∗ \alpha^* α∗中满足 0 < α i ∗ < C 0<\alpha^*_i<C 0<αi∗<C的分量,设此项index为j)
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i x_i \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot x_j \end{aligned} w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
对于 w ∗ = ∑ i = 1 N α i ∗ y i x i w^* =\sum_{i=1}^N\alpha_i^*y_i x_i w∗=∑i=1Nαi∗yixi及 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ c j b^* =y_j - \sum_{i=1}^N\alpha_i^*y_i x_i\cdot c_j b∗=yj−∑i=1Nαi∗yixi⋅cj值,只由 α i ≠ 0 \alpha_i \neq0 αi̸=0的样本决定,即支持向量决定。
非线性支持向量机
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 C ⩾ α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j K(x_i,x_j) +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad C \geqslant\alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
- 获得 w ∗ , b ∗ w^*,b^* w∗,b∗(找到最优解 α ∗ \alpha^* α∗中满足 0 < α i ∗ < C 0<\alpha^*_i<C 0<αi∗<C的分量,设此项index为j)
w ∗ = ∑ i = 1 N α i ∗ y i ϕ ( x i ) b ∗ = y j − ∑ i = 1 N α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x j ) = y j − ∑ i = 1 N α i ∗ y i K ( x i , x j ) \begin{aligned} w^* &=\sum_{i=1}^N\alpha_i^*y_i \phi(x_i) \\ b^* &=y_j - \sum_{i=1}^N\alpha_i^*y_i \phi(x_i)\cdot \phi(x_j)=y_j - \sum_{i=1}^N\alpha_i^*y_i K(x_i,x_j) \end{aligned} w∗b∗=i=1∑Nαi∗yiϕ(xi)=yj−i=1∑Nαi∗yiϕ(xi)⋅ϕ(xj)=yj−i=1∑Nαi∗yiK(xi,xj)
区别
- 线性可分向量机利用硬间隔最大化, α i ⩾ 0 \alpha_i \geqslant 0 αi⩾0
- 线性支持向量机利用软间隔最大化, C ⩾ α i ⩾ 0 C \geqslant \alpha_i \geqslant 0 C⩾αi⩾0
- 非线性向量机利用核技巧, C ⩾ α i ⩾ 0 C \geqslant \alpha_i \geqslant 0 C⩾αi⩾0,用 K ( x i , x j ) K(x_i,x_j) K(xi,xj)代替 x i ⋅ x j x_i\cdot x_j xi⋅xj
7.5序列最小最优化算法(SMO,sequential minimal optimization)
主要针对求解 α \alpha α的最优解
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 C ⩾ α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\alpha} &\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j K(x_i,x_j) +\sum_{i=1}^N\alpha_i \\ s.t. &\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\quad C \geqslant\alpha_i \geqslant 0,i=1,2,\cdots,N \end{aligned} αmaxs.t.−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
每次选择两个 α \alpha α变量去优化,使所有的 α \alpha α变量一直满足 ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 ∑i=1Nαiyi=0的条件。
KKT条件
原始条件 min x ∈ R n f ( x ) s . t . c i ( x ) ⩽ 0 , i = 1 , 2 , ⋯   , k h j ( x ) = 0 , j = 1 , 2 , ⋯   , l \begin{aligned} \min_{x \in R^n} \quad &f(x) \\ s.t. \quad &c_i(x)\leqslant0,i=1,2,\cdots,k \\ & h_j(x)=0,j=1,2,\cdots,l \end{aligned} x∈Rnmins.t.f(x)ci(x)⩽0,i=1,2,⋯,khj(x)=0,j=1,2,⋯,l KKT条件 ∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ α L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ β L ( x ∗ , α ∗ , β ∗ ) = 0 α i ∗ c i ( x ∗ ) = 0 , i = 1 , 2 , ⋯   , k c i ( x ∗ ) ⩽ 0 , i = 1 , 2 , ⋯   , k α i ∗ ⩾ 0 , i = 1 , 2 , ⋯   , k h j ( x ∗ ) = 0 , j = 1 , 2 , ⋯   , j \begin{aligned} \nabla_xL(x^*,\alpha^*,\beta^*)=0 \\ \nabla_\alpha L(x^*,\alpha^*,\beta^*)=0 \\ \nabla_\beta L(x^*,\alpha^*,\beta^*)=0 \\ \alpha_i^*c_i(x^*)=0,& \quad i=1,2,\cdots,k\\ c_i(x^*)\leqslant 0 ,& \quad i=1,2,\cdots,k\\ \alpha_i^* \geqslant 0,& \quad i=1,2,\cdots,k \\ h_j(x^*) =0 ,& \quad j=1,2,\cdots,j \end{aligned} ∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗ci(x∗)=0,ci(x∗)⩽0,αi∗⩾0,hj(x∗)=0,i=1,2,⋯,ki=1,2,⋯,ki=1,2,⋯,kj=1,2,⋯,j