机器学习笔记7-支持向量机(2/3)

机器学习笔记6-支持向量机(2/3)

  1. 线性支持向量机
    对于线性不可分数据,线性可分支持向量机不适用,因为其不等式约束并不能都成立。线性不可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi)不能满足函数间隔大于等于一的约束条件,这时可对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)引入一个松弛变量 ξ i ≥ 0 {\xi _i} \ge 0 ξi0,使函数间隔加上松弛变量大于等于一,此时约束条件为 y i ( w x i + b ) ≥ 1 − ξ i {y_i}{\rm{(}}w{x_i} + b{\rm{)}} \ge {\rm{1}} - {\xi _i} yi(wxi+b)1ξi。同时对每个松弛变量 ξ i {\xi _i} ξi支付一个代价,使目标函数变成 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \frac{{\rm{1}}}{{\rm{2}}}{\left\| w \right\|^2} + C\sum\limits_{i = {\rm{1}}}^N {{\xi _i}} 21w2+Ci=1Nξi C C C为惩罚参数, C C C值大时对误分类的惩罚增大, C C C值小时对误分类的惩罚减小。这样,线性不可分的线性支持向量机变成如下凸二次规划问题:
    min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \mathop {\min }\limits_{w,b,\xi } \frac{{\rm{1}}}{{\rm{2}}}{\left\| w \right\|^2} + C\sum\limits_{i = {\rm{1}}}^N {{\xi _i}} w,b,ξmin21w2+Ci=1Nξi y i ( w x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 {y_i}{\rm{(}}w{x_i} + b{\rm{)}} \ge {\rm{1}} - {\xi _i},{\xi _i} \ge 0 yi(wxi+b)1ξi,ξi0
    学习的对偶算法:以上原始问题的拉格朗日函数是:
    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,\xi ,\alpha ,\mu ) = \frac{{\rm{1}}}{{\rm{2}}}{\left\| w \right\|^2} + C\sum\limits_{i = {\rm{1}}}^N {{\xi _i}} - \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}({y_i}(w{x_i} + b) - 1 + {\xi _i})} - \sum\limits_{i = {\rm{1}}}^N {{\mu _i}{\xi _i}} L(w,b,ξ,α,μ)=21w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi其中 α i ≥ 0 , μ i ≥ 0 {{\alpha _i}} \ge 0,{{\mu _i}}\ge 0 αi0,μi0。将 L ( w , b , ξ , α , μ ) L(w,b,\xi ,\alpha ,\mu ) L(w,b,ξ,α,μ)函数对 w , b , ξ w,b,\xi w,b,ξ求偏导并令其为零,可得 w = ∑ i = 1 N α i y i x i w = \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}{y_i}{x_i}} w=i=1Nαiyixi ∑ i = 1 N α i y i = 0 \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}{y_i}} = 0 i=1Nαiyi=0 C − α i − μ i = 0 C - {\alpha _i} - {\mu _i} = 0 Cαiμi=0。将这些代入 L ( w , b , ξ , α , μ ) L(w,b,\xi ,\alpha ,\mu ) L(w,b,ξ,α,μ)函数,即得对偶问题:
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ∙ x j ) − ∑ i = 1 N α i \mathop {\min }\limits_\alpha \frac{{\rm{1}}}{{\rm{2}}}\sum\limits_{i = {\rm{1}}}^N {\sum\limits_{j = {\rm{1}}}^N {{\alpha _i}{\alpha _j}{y_i}{y_j}({x_i} \bullet {x_j})} } - \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}} αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi ∑ i = 1 N α i y i = 0 \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}{y_i}} = 0 i=1Nαiyi=0 C − α i − μ i = 0 C - {\alpha _i} - {\mu _i} = 0 Cαiμi=0 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T {\alpha ^*} = {(\alpha _{_1}^*,\alpha _{_2}^*,...,\alpha _{_N}^*)^T} α=(α1,α2,...,αN)T是对偶问题的解,则存在 C > α j ∗ > 0 C>\alpha _{_j}^*>0 C>αj>0,使得原始问题的解为: w ∗ = ∑ i = 1 N α i ∗ y i x i {w^*} = \sum\limits_{i = {\rm{1}}}^N {\alpha _i^*{y_i}{x_i}} w=i=1Nαiyixi b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) {b^*} = {y_j} - \sum\limits_{i = {\rm{1}}}^N {\alpha _i^*{y_i}{\rm{(}}{x_i}\cdot{x_j}{\rm{)}}} b=yji=1Nαiyi(xixj)。由于对与任一满足 C > α j ∗ > 0 C>\alpha _{_j}^*>0 C>αj>0条件的 α j ∗ \alpha _{_j}^* αj都可求出一个 b ∗ b^* b,因此 b b b的解是不唯一的。将对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T {\alpha ^*} = {(\alpha _{_1}^*,\alpha _{_2}^*,...,\alpha _{_N}^*)^T} α=(α1,α2,...,αN)T中对应于 α j ∗ > 0 \alpha _{_j}^*>0 αj>0的样本点称为支持向量。

  2. 非线性支持向量机
    (1)核技巧:假设 χ \chi χ是输入空间(欧式空间 R n R^n Rn的子集), H H H为特征空间(希尔伯特空间),若存在一个从 χ \chi χ H H H的映射 ϕ ( x ) : χ → H \phi (x):\chi \to H ϕ(x):χH,使得对所有 x , z ∈ χ x,z\in \chi x,zχ,函数 K ( x , z ) K(x,z) K(x,z)满足条件 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z) = \phi (x) \cdot \phi (z) K(x,z)=ϕ(x)ϕ(z),则称 K ( x , z ) K(x,z) K(x,z)为核函数, ϕ ( x ) \phi (x) ϕ(x)为映射函数,式中 ϕ ( x ) ⋅ ϕ ( z ) \phi (x) \cdot \phi (z) ϕ(x)ϕ(z)为内积操作。核技巧的想法是,在学习和预测中只定义核函数 K ( x , z ) K(x,z) K(x,z),而不显示地定义映射函数 ϕ ( x ) \phi (x) ϕ(x)。当给定了核函数 K ( x , z ) K(x,z) K(x,z)时,映射函数 ϕ ( x ) \phi (x) ϕ(x)并不唯一。
    前面说到,对于线性支持向量机,无论目标函数还是决策函数(分离超平面),都只涉及到输入实例与实例之间的内积。而内积 x i ⋅ x j x_i \cdot x_j xixj可以用核函数 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z) = \phi (x) \cdot \phi (z) K(x,z)=ϕ(x)ϕ(z)来代替,此时对偶问题就会变为:
    W ( α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i W(\alpha ) = \frac{{\rm{1}}}{{\rm{2}}}\sum\limits_{i = {\rm{1}}}^N {\sum\limits_{j = {\rm{1}}}^N {{\alpha _i}{\alpha _j}{y_i}{y_j}K({x_i},{x_j})} } - \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}} W(α)=21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi分离超平面中的内积也可以用核函数代替 ∑ i = 1 N α i ∗ y i K ( x , x i ) + b ∗ \sum\limits_{i = {\rm{1}}}^N {\alpha _{_i}^*{y_i}K(x,{x_i})} + {b^*} i=1NαiyiK(x,xi)+b
    在以上操作中,将输入空间中的内积 x i ⋅ x j x_i \cdot x_j xixj变换为特征空间中的内积 ϕ ( x i ) ⋅ ϕ ( x j ) \phi (x_i) \cdot \phi (x_j) ϕ(xi)ϕ(xj),在新的特征空间里从训练样本中学习线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。也就是说,在核函数 K ( x , z ) K(x,z) K(x,z)给定条件下,可以利用线性分类问题的方法求解非线性分类问题的支持向量机。学习是隐式地在特征空间中进行,不需要显示地定义特征空间和映射函数。这样的技巧称为核技巧,它是巧妙地利用线性分类学习方法与核函数解决非线性问题的技术。
    (2)正定核:通常所说的核函数就是正定核。如何判断一个给定的函数 K ( x , z ) K(x,z) K(x,z)是不是正定核?可以证明, K ( x , z ) K(x,z) K(x,z)是正定核的充要条件是 K ( x , z ) K(x,z) K(x,z)对应的Gram矩阵 K = [ K ( x i , x j ) ] m × m K = {{\rm{[}}K{\rm{(}}{x_i},{x_j}{\rm{)]}}_{_{m \times m}}} K=[K(xi,xj)]m×m是半正定矩阵。而对于检验核函数是否为正定核函数并不容易,所以一般会应用已知核函数。
    (3)常用核函数:多项式核函数, K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z) = {(x \cdot z + 1)^p} K(x,z)=(xz+1)p;高斯核函数, K ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 2 σ 2 ) K(x,z) = \exp ( - \frac{{{{\left\| {x - z} \right\|}^2}}}{{2{\sigma ^2}}}) K(x,z)=exp(2σ2xz2);字符串核函数,核函数不仅可以定义在欧式空间,还可以定义在离散数据的集合上,这在文本分类、信息检索、生物信息学等方面都有应用。

  3. 序列最小最优化算法(SMO)
    SMO算法要求解凸二次规划的对偶问题:
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i \mathop {\min }\limits_\alpha \frac{{\rm{1}}}{{\rm{2}}}\sum\limits_{i = {\rm{1}}}^N {\sum\limits_{j = {\rm{1}}}^N {{\alpha _i}{\alpha _j}{y_i}{y_j}K({x_i},{x_j})} } - \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}} αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi ∑ i = 1 N α i y i = 0 \sum\limits_{i = {\rm{1}}}^N {{\alpha _i}{y_i}} = 0 i=1Nαiyi=0 0 ≤ α i ≤ C 0 \le {\alpha _i} \le C 0αiC基本思路:若所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。否则,选择连个变量,固定其它变量,针对这两个变量构建一个二次规划问题。这时子问题就可以通过解析方法求解,这样就可以大大提高整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的那个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题进行求解,进而达到求解原问题的目的。整个算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值