SVM整理

支持向量机Support Vector Machine

数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
其 中 x i ∈ R n , y i = ± 1 其中x_i\in R^n,y_i=\pm 1 xiRn,yi=±1
SVM通过找最大间隔或解等价的凸优化问题学得分离超平面 ω ∗ x + b ∗ \omega ^*x+b^* ωx+b

决策函数 f ( x ) = s i g n ( ω ∗ x + b ∗ ) f(x)=sign(\omega ^*x+b^*) f(x)=sign(ωx+b)
函数间隔在成比例改变时,函数间隔会发生变化,但决策平面实际不变,所以引入几何间隔
几何间隔:可分数据集情况下样本点到超平面的最小距离
γ = min ⁡ i = 1 , . . . , N 2 y i ( ω x i + b ) ∥ ω ∥ = 2 ∥ ω ∥ \gamma =\min_{i=1,...,N}\frac{2y_i(\omega x_i+b)}{\parallel \omega \parallel}=\frac{2}{\parallel \omega \parallel} γ=i=1,...,Nminω2yi(ωxi+b)=ω2
几何间隔自带L2正则化,所以SVM本身有防止过拟合的能力.
SVM要求解约束优化问题使得在样本被正确分类的情况下,间隔最大
max ⁡ ω , b γ s . t .   y i ( ω x i + b ) ≥ γ \max_{\omega ,b}\gamma \\s.t. \ y_i(\omega x_i+b)\geq \gamma ω,bmaxγs.t. yi(ωxi+b)γ
等价为 min ⁡ w , b   1 2 ∥ ω ∥ 2 \min_{w,b} \ \frac{1}{2}\parallel \omega \parallel ^2 \\ w,bmin 21ω2 s . t .   y i ( ω x i + b ) ≥ 1 s.t. \ y_i(\omega x_i+b)\geq 1 s.t. yi(ωxi+b)1
支持向量:样本点中与支持向量距离最近的实例,既满足上式中等号成立的样本点
问题的目标函数是二次函数,约束条件为线性约束,所以是凸优化问题。

考虑对偶问题原因:
1.更容易求解和计算,决策函数只与数据中支持向量有关,节约计算量
2.形式上便于引入核函数
要把把有约束的优化问题转化为无约束的优化问题求解,用拉格朗日乘数法,有
L ( ω , b , α ⃗ ) = 1 2 ∥ ω ∥ 2 − ∑ i = 1 N α i y i ( ω x i + b ) + ∑ i = 1 N α i \mathcal{L}(\omega,b, \vec{\alpha})=\frac{1}{2}\parallel \omega \parallel^2-\sum_{i=1}^{N}\alpha _iy_i(\omega x_i+b)+\sum_{i=1}^{N}\alpha_i L(ω,b,α )=21ω2i=1Nαiyi(ωxi+b)+i=1Nαi
其中 α ⃗ = [ α 1 , α 2 , . . . , α n ] 为 L a g r a n g e 因 子 \vec{\alpha}=[\alpha _1,\alpha _2,...,\alpha_n]为Lagrange因子 α =[α1,α2,...,αn]Lagrange
要解决
max ⁡ α ⃗ min ⁡ ω , b L ( ω , b , α ⃗ ) \max_{\vec{\alpha}}\min_{\omega,b}\mathcal{L}(\omega,b, \vec{\alpha}) α maxω,bminL(ω,b,α )
经过推导
决策函数变为
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ ) f(x)=sign(\sum_{i=1}^{N}\alpha_i^*y_i(x\cdot x_i)+b^*) f(x)=sign(i=1Nαiyi(xxi)+b)
此时决策函数与内积有关

第二种解决方法:
引入损失函数hinge loss折页损失
J = ∑ i = 1 N m a x ( 0 , [ 1 − y i ( ω x i + b ) ] ) + λ ∥ ω ∥ 2 \mathscr{J}=\sum_{i=1}^{N}max(0,[1-y_i(\omega x_i+b)])+\lambda\parallel\omega\parallel^2 J=i=1Nmax(0,[1yi(ωxi+b)])+λω2
可用梯度下降法直接进行求解

不可分数据集时

数据集不可分时,加入松弛条件 ξ i ≥ 0 ,   y i ( ω x i + b ) ≥ 1 − ξ i \xi_i\geq0,\ y_i(\omega x_i+b)\geq1-\xi_i ξi0, yi(ωxi+b)1ξi

目标函数变为 1 2 ∥ ω ∥ 2 + C ∑ i = 1 N ξ i \frac{1}{2}\parallel\omega\parallel^2+C\sum_{i=1}^{N}\xi_i 21ω2+Ci=1Nξi

核函数kernel function

数据集不可分时,将数据映射到高维空间中,就可能可分
映射 ϕ ( x ) \phi (x) ϕ(x) x x x映射到高维空间中,核函数有如下性质 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z)=\phi(x)\cdot\phi(z) K(x,z)=ϕ(x)ϕ(z)
即可通过核函数直接求得高维空间中的内积。
任意半正定的 R n ∗ R n − > R R^n*R^n->R RnRn>R的映射,只要对特征向量空间满足对称半正定,都可以作为核函数(Mercer’s Theorem)。至于具体的升维方式不重要

此时目标函数为 W ( x ) = 1 2 ∑ i = 1 N ∑ i = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i W(x)=\frac{1}{2}\sum_{i=1}^N\sum_{i=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i W(x)=21i=1Ni=1NαiαjyiyjK(xi,xj)i=1Nαi
决策函数为 f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x i , x ) + b ∗ ) f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x_i,x)+b^*) f(x)=sign(i=1NαiyiK(xi,x)+b)

使用高斯核函数时(最常用),由于高斯核函数考察的是相对距离的大小,所以需要做归一化操作。核函数的选取一般采取结果导向。特征纬度很高的情况下,采取线性核函数即可。

多分类问题

处理多分类问题时,一般有两种策略
1.one-against-all
一类为正集,其余所有为负即,需训练n个分类器
可能出现数据偏斜问题(SVM对数据集不平衡不是十分敏感)
2.one-against-one
任意两个类别训练出一个分类器,需 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n1)个分类器,最后结果投票产生
3.层次支持向量机(H-SVMs)
4.无环图SVM(Directed Acyclic Graph SVMs,简称DAG-SVMs)

KKT条件

条件极值问题等式约束时用拉格朗日乘数法求解,不等式约束时用KKT(Karush Kuhn Tucker)条件求解
考虑n个不等式的条件极值问题
min ⁡ x f ( x ) s . t .     g k ( x ) ≤ 0 , k = 0 , 1 , 2 , . . . , n \min_xf(x) \\ s.t. \ \ \ g_k(x)\leq0,k=0,1,2,...,n xminf(x)s.t.   gk(x)0,k=0,1,2,...,n
转化为
L ( x , μ ) = f ( x ) + ∑ k = 1 n μ k   g k ( x ) u k ≥ 0 g k ( x ) ≤ 0 μ k g k ( x ) ≤ 0               ( 1 ) L(x,\mu) = f(x)+\sum_{k=1}^n\mu_k \ g_k(x) \\u_k\geq0\\ g_k(x) \leq0 \\ \mu_kg_k(x)\leq0 \ \ \ \ \ \ \ \ \ \ \ \ \ (1) L(x,μ)=f(x)+k=1nμk gk(x)uk0gk(x)0μkgk(x)0             (1)

其中(1)式为互补松弛条件
x x x同时满足 ∂ L ∂ x = 0 \frac{\partial L}{\partial x}=0 xL=0
时, f ( x ) f(x) f(x)取极值
KKT条件是拉格朗日乘数法在不等式条件下的推广。
若满足KKT条件,则求极值顺序可以调换
min ⁡ w , b f ( x ) = min ⁡ w , b max ⁡ α i L ( w , b , α ) = max ⁡ α i min ⁡ w , b L ( w , b , α ) \min_{w,b}f(x) = \min_{w,b}\max_{\alpha_i}L(w,b,\alpha) = \max_{\alpha_i}\min_{w,b}L(w,b,\alpha) w,bminf(x)=w,bminαimaxL(w,b,α)=αimaxw,bminL(w,b,α)
L L L先对 w , b w,b w,b求极值,再对 α i \alpha_i αi 求极值,即对 w , b w,b w,b求偏导等于0
得到 w , b w,b w,b α i , x i , y i \alpha_i,x_i,y_i αi,xi,yi的关系
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i [ y i ( w T x + b ) − 1 ] L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^m\alpha_i[y_i(w^Tx+b)-1] L(w,b,α)=21w2i=1mαi[yi(wTx+b)1]
∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 ∂ L ∂ b = ∑ i = 1 m α i y i = 0 \frac{\partial{L}}{\partial w}= w-\sum_{i=1}^m\alpha_iy_ix_i=0 \\ \frac{\partial{L}}{\partial b}= \sum_{i=1}^m\alpha_iy_i=0 wL=wi=1mαiyixi=0bL=i=1mαiyi=0
将关系带入 L L L
可以消去 w , b w,b w,b同时添加约束条件 ∑ i = 1 m α i y i = 0 \sum{}_{i=1}^m\alpha_iy_i=0 i=1mαiyi=0
整理得 max ⁡ α L ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_\alpha L(\alpha)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j αmaxL(α)=i=1mαi21i=1mj=1mαiαjyiyjxiTxj
此时只要在KKT即 ∑ i = 1 m α i y i = 0 \sum{}_{i=1}^m\alpha_iy_i=0 i=1mαiyi=0的条件下优化 α i \alpha_i αi上式即可求得SVM的解,再通过 α i \alpha_i αi求解出 w , b w,b w,b
w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^m\alpha_iy_ix_i w=i=1mαiyixi
再由互补松弛条件 α i ( 1 − y i ( w T x + b ) ) = 0 \alpha_i(1-y_i(w^Tx+b))=0 αi(1yi(wTx+b))=0, α i \alpha_i αi不为0时,即可通过支持向量求出 b i b_i bi,当数据集严格可分时,所有 b i b_i bi的值都相同,不可分时,可取所有 b i b_i bi的平均值。

线性不可分数据集

对于线性不可分数据集,约束条件相互矛盾,没有解空间。此时需要在约束条件中引入松弛因子。将原本的约束条件 y i ( w T x + b ) ≥ 1 y_i(w^Tx+b)\geq1 yi(wTx+b)1,改为 y i ( w T x + b ) ≥ 1 − ξ i y_i(w^Tx+b)\geq1-\xi_i yi(wTx+b)1ξi,即点到决策面的距离不一定绝对大于间隔,可能小于间隔或者分类错误。同时,我们想让松弛因子尽可能的小,从而时更多的点能满足一般的条件,则此时的优化问题变为
min ⁡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ s . t .      y i ( w T x i + b ) ≥ 1 − ξ i      ( i = 1 , 2 , . . . m ) ξ i ≥ 0 \min \frac{1}{2}\|w\|^2+C\sum_{i=1}^m\xi \\ s.t. \;\; y_i(w^Tx_i + b) \geq 1 - \xi_i \;\;(i =1,2,...m)\\ \xi_i\geq0 min21w2+Ci=1mξs.t.yi(wTxi+b)1ξi(i=1,2,...m)ξi0
C C C为超参数,控制正则化,越大模型对异常点的忍耐越小,需要调参。

求解

依然通过KKT条件求解,此时问题有两组不等式约束,引入两组拉格朗日因子
L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 m μ i ξ i L(w,b,\xi,\alpha,\mu) = \frac{1}{2}\|w\|_2^2 +C\sum\limits_{i=1}^{m}\xi_i - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] - \sum\limits_{i=1}^{m}\mu_i\xi_i L(w,b,ξ,α,μ)=21w22+Ci=1mξii=1mαi[yi(wTxi+b)1+ξi]i=1mμiξi
同样,先优化原本的变量,再优化乘数因子
min ⁡ w , b , ξ max ⁡ α i , μ i L ( w , b , α , ξ , μ ) = max ⁡ α i , μ i min ⁡ w , b , ξ L ( w , b , α , ξ , μ ) \min_{w,b,\xi}\max_{\alpha_i , \mu_i } L(w,b,\alpha, \xi,\mu)=\max_{\alpha_i , \mu_i }\min_{w,b,\xi} L(w,b,\alpha, \xi,\mu) w,b,ξminαi,μimaxL(w,b,α,ξ,μ)=αi,μimaxw,b,ξminL(w,b,α,ξ,μ)
求偏导等于0,得到
∂ L ∂ w = 0    ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = 0    ⇒ ∑ i = 1 m α i y i = 0 ∂ L ∂ ξ = 0    ⇒ C − α i − μ i = 0 \frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i \\ \frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}\alpha_iy_i = 0 \\ \frac{\partial L}{\partial \xi} = 0 \;\Rightarrow C- \alpha_i - \mu_i = 0 wL=0w=i=1mαiyixibL=0i=1mαiyi=0ξL=0Cαiμi=0
消去 w , b , μ i w,b,\mu_i w,b,μi,忽略常数项 C C C,得到
L ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j L(\alpha) = \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j L(α)=i=1mαi21i=1mj=1mαiαjyiyjxiTxj
可见优化函数和之前没有正则项时相同,只是多了约束条件 C − α i − μ i = 0 C-\alpha_i-\mu_i=0 Cαiμi=0, μ i \mu_i μi只有约束条件 μ i ≥ 0 \mu_i\geq0 μi0,所以约束也等价于 0 ≤ α i ≤ C 0\leq\alpha_i\leq C 0αiC
此时模型的支持向量情况较为复杂,只要 α i > 0 \alpha_i >0 αi>0,就是支持向量,包括各种异常点。

四个异常点也是支持向量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值