S V M SVM SVM模型想要找到一个最鲁棒(即某些点更难划分之后结果仍然不变)的超平面来划分两类样本,当训练样本线性可分时,通过硬间隔最大化找到线性可分支持向量机;当训练样本近似线性可分时,通过软间隔最大化可以找到线性支持向量机;当训练样本线性不可分时,通过引入核技巧及软间隔最大化可以找到非线性支持向量机,即在高维空间中找线性支持向量机。假设标签是 + 1 / − 1 +1/-1 +1/−1,超平面是 w T x + b = 0 w^Tx+b=0 wTx+b=0,给定数据 x x x,决策函数是 s i g n ( w T x + b ) sign(w^Tx+b) sign(wTx+b),那么 y i ( w T x i + b ) > 0 y_i(w^Tx_i+b)>0 yi(wTxi+b)>0表示分类正确, x i x_i xi到平面的距离是 ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^Tx+b|}{||w||} ∣∣w∣∣∣wTx+b∣,当 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣确定时, y i ( w T x i + b ) y_i(w^Tx_i+b) yi(wTxi+b)还表示了 x i x_i xi到超平面的相对距离,这个值越大表示 x i x_i xi距离最优超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0的距离越远,分类更确信,定义样本 x i x_i xi的函数间隔是 γ i ^ = y i ( w T x i + b ) \hat{\gamma_i}=y_i(w^Tx_i+b) γi^=yi(wTxi+b),数据集的函数间隔是 γ ^ = m i n i γ i ^ \hat{\gamma}=min_i\hat{\gamma_i} γ^=miniγi^,样本 x i x_i xi的几何间隔是 γ i = y i ( w T x i + b ) ∣ ∣ w ∣ ∣ \gamma_i=\frac{y_i(w^Tx_i+b)}{||w||} γi=∣∣w∣∣yi(wTxi+b),数据集的几何间隔是 γ = m i n i γ i {\gamma}=min_i{\gamma_i} γ=miniγi,它们的关系是 γ = γ ^ ∣ ∣ w ∣ ∣ \gamma=\frac{\hat{\gamma}}{||w||} γ=∣∣w∣∣γ^,当 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1时两者相等。
点 ( x , y ) (x,y) (x,y)到线 a x + b y + c = 0 ax+by+c=0 ax+by+c=0的距离是 ∣ a x + b y + c ∣ a 2 + b 2 \frac{|ax+by+c|}{\sqrt{a^2+b^2}} a2+b2∣ax+by+c∣,即 x x x到 w T x + b = 0 w^Tx+b=0 wTx+b=0的距离是 ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^Tx+b|}{||w||} ∣∣w∣∣∣wTx+b∣,推导过程:
- 直线上的向量以及与之共线的向量叫做直线的方向向量,任取直线上两点,求它们两点组成的向量就是方向向量。这里取 ( 0 , − c b ) (0,-\frac{c}{b}) (0,−bc)和 ( − c a , 0 ) (-\frac{c}{a},0) (−ac,0),它们相减就是方向向量 ( − c a , c b ) (-\frac{c}{a},\frac{c}{b}) (−ac,bc),同乘 a b c \frac{ab}{c} cab不改变向量的方向,得到 ( − b , a ) (-b,a) (−b,a)
- 直线的法向量是与直线方向向量正交的向量,容易得到是 ( a , b ) (a,b) (a,b),单位法向量即 1 a 2 + b 2 ( a , b ) \frac{1}{\sqrt{a^2+b^2}}(a,b) a2+b21(a,b)
- 向量 a a a在向量 b b b上的投影是 ∣ ∣ a ∣ ∣ c o s θ ||a||cos\theta ∣∣a∣∣cosθ,即 a T b ∣ ∣ b ∣ ∣ \frac{a^Tb}{||b||} ∣∣b∣∣aTb
- 在直线上任取一点,求点 ( x , y ) (x,y) (x,y)与其组成的向量在单位法向量上的投影即是点到直线的距离。这里取 ( 0 , − c b ) (0,-\frac{c}{b}) (0,−bc), ( x , y + c b ) (x,y+\frac{c}{b}) (x,y+bc)在单位法向量 1 a 2 + b 2 ( a , b ) \frac{1}{\sqrt{a^2+b^2}}(a,b) a2+b21(a,b)上的投影是 a T b ∣ ∣ b ∣ ∣ = 1 a 2 + b 2 ( a x + b y + c ) 1 = ∣ a x + b y + c ∣ a 2 + b 2 \frac{a^Tb}{||b||}=\frac{1}{\sqrt{a^2+b^2}}\frac{(ax+by+c)}{1}=\frac{|ax+by+c|}{\sqrt{a^2+b^2}} ∣∣b∣∣aTb=a2+b211(ax+by+c)=a2+b2∣ax+by+c∣
- 上面的推导过程可以推广到 n n n维空间中,即 x x x到 w T x + b = 0 w^Tx+b=0 wTx+b=0的距离是 ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^Tx+b|}{||w||} ∣∣w∣∣∣wTx+b∣
硬间隔最大化想要找到几何间隔最大化的超平面:
m a x w , b γ s . t . y i ( w T x i + b ) ∣ ∣ w ∣ ∣ ≥ γ , i = 1 , 2 , … , N max_{w,b}\ \gamma\\ s.t.\ \frac{y_i(w^Tx_i+b)}{||w||}\ge\gamma,i=1,2,\dots,N maxw,b γs.t. ∣∣w∣∣yi(wTxi+b)≥γ,i=1,2,…,N
考虑几何间隔和函数间隔之间的关系,这个问题可以转化为:
m a x w , b γ ^ ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ γ ^ , i = 1 , 2 , … , N max_{w,b}\ \frac{\hat{\gamma}}{||w||}\\s.t.\ y_i(w^Tx_i+b)\ge\hat{\gamma},i=1,2,\dots,N maxw,b ∣∣w∣∣γ^s.t. yi(wTxi+b)≥γ^,i=1,2,…,N
函数间隔 γ ^ \hat{\gamma} γ^的取值不影响最优化问题的解,这里固定为 1 1 1,最优化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1和最优化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2等价,于是得到线性可分支持向量机基本型,这是一个凸二次规划问题:
m a x w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , N max_{w,b}\ \frac{1}{2}||w||^2\\s.t.\ y_i(w^Tx_i+b)\ge1,i=1,2,\dots,N maxw,b 21∣∣w∣∣2s.t. yi(wTxi+b)≥1,i=1,2,…,N
《统计学习方法》中提到函数间隔 γ ^ \hat{\gamma} γ^的取值不影响最优化问题的解,这里有点模糊
支持向量是训练集中与超平面最近的样本点,它使得约束条件的等号成立。正例支持向量使得 w T x i + b = + 1 w^Tx_i+b=+1 wTxi+b=+1,反例支持向量使得 w T x i + b = − 1 w^Tx_i+b=-1 wTxi+b=−1,这两个点之间的距离 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2称为间隔,最优超平面的解只与这些支持向量相关,去掉其他点解不会发生变化,这也可以从西瓜书124页 K K T KKT KKT条件的解释中得到( α i > 0 \alpha_i>0 αi>0的那些样本是支持向量),引入拉格朗日乘子之后,原问题转化对偶问题:
m a x α ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , … , N max_\alpha\ \sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx^T_ix_j\\ s.t.\ \sum_{i=1}^N\alpha_iy_i=0\\ \alpha_i\ge0,i=1,2,\dots,N maxα i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjxiTxjs.t. i=1∑Nαiyi=0αi≥0,i=1,2,…,N
通用的二次规划算法求解这个最优化问题时,开销与训练样本数成正比,为了避开这个问题,提出使用 S M O SMO SMO算法求解最优 a l p h a alpha alpha,再用 w = ∑ α i y i x i w=\sum \alpha_iy_ix_i w=∑αiyixi和 b = 1 ∣ S ∣ ∑ s ∈ S ( y s − ∑ i ∈ S α i y i x i T x s ) b=\frac{1}{|S|}\sum_{s\in S}(y_s-\sum_{i\in S}\alpha_iy_ix^T_ix_s) b=∣S∣1∑s∈S(ys−∑i∈SαiyixiTxs)( S = { i ∣ α i > 0 , i = 1 , 2 , … , N } S=\{i|\alpha_i>0,i=1,2,\dots,N\} S={i∣αi>0,i=1,2,…,N},即支持向量的下标集合)得到分类模型 s i g n ( w T x + b ) sign(w^Tx+b) sign(wTx+b)
S M O SMO SMO算法每次选择两个 α i , α j \alpha_i,\alpha_j αi,αj来做优化,其他 N − 2 N-2 N−2个 α \alpha α固定(只选择一个 α i \alpha_i αi,固定其他 N − 1 N-1 N−1个不可以,因为存在约束条件 ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 ∑i=1Nαiyi=0,其他 N − 1 N-1 N−1个 α \alpha α可以导出剩下的一个)
当样本中存在一些特异点,去掉这些特异点后剩下的样本大部分是线性可分的,这样的问题是近似可分的问题,为了解决这些问题对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)引入松弛变量 ξ i \xi_i ξi,允许样本点满足更松弛的条件 y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b)\ge1-\xi_i yi(wTxi+b)≥1−ξi,但同时在优化目标上增加惩罚 ξ i \xi_i ξi,并有参数 C C C调节,线性不可分的线性支持向量机学习问题就转化成了下面的原始问题:
m a x w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , … , N ξ i ≥ 0 , i = 1 , 2 , … , N max_{w,b}\ \frac{1}{2}||w||^2+C\sum_{i=1}^{N}\xi_i \\s.t.\ y_i(w^Tx_i+b)\ge1-\xi_i,i=1,2,\dots,N\\ \xi_i\ge0,i=1,2,\dots,N maxw,b 21∣∣w∣∣2+Ci=1∑Nξis.t. yi(wTxi+b)≥1−ξi,i=1,2,…,Nξi≥0,i=1,2,…,N
同样引入拉格朗日乘子后转化为对偶问题:
m a x α ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , … , N max_\alpha\ \sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx^T_ix_j\\ s.t.\ \sum_{i=1}^N\alpha_iy_i=0\\ 0\le\alpha_i\le C,i=1,2,\dots,N maxα i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjxiTxjs.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,…,N
支持向量的分析也可以看这里