彻底理解支持向量机(二)

线性SVM的对偶问题

最大间隔的优化问题:
   m i n 1 2 ∥ ω ∥ 2 s . t .   y i ( ω T x i + b ) ≥ 1 , i = 1 , . . . , n min \frac{1}{2}\|\omega\|^2 \quad s.t.\, y_i(\omega^Tx_i + b) \ge 1, i=1,...,n min21ω2s.t.yi(ωTxi+b)1,i=1,...,n

这是一个凸二次优化问题,转化为拉格朗日对偶问题,通过求解与原问题等价的对偶问题得到原始问题的最优解,使得在一定的约束条件下,目标最优,损失最小
此时目标函数变为:

   L ( ω , b , α ) = 1 2 ∥ ω ∥ 2 − ∑ i = 1 n α i ( y i ( ω T x i + b ) − 1 ) L(\omega,b,\alpha)=\dfrac{1}{2}\|\omega\|^2 - \sum_{i=1}^{n}\alpha_i(y_i(\omega^Tx_i + b) - 1) L(ω,b,α)=21ω2i=1nαi(yi(ωTxi+b)1)

把原始问题的最小化,转化为拉格朗日函数的最大化:
   max ⁡ α i ≥ 0 L ( ω , b , α ) \mathop{\max}_{\alpha_i\ge 0}L(\omega,b,\alpha) maxαi0L(ω,b,α)
拉格朗日乘子 α \alpha α相当于惩罚因子:

当不满足原约束条件(即 y i ( ω T x i + b ) < 1 y_i(\omega^Tx_i + b) < 1 yi(ωTxi+b)<1)时,乘上非负的拉格朗日乘子 α \alpha α,整个L(w,b,a)变大了;

满足约束条件 y i ( ω T x i + b ) ≥ 1 y_i(\omega^Tx_i + b) \ge 1 yi(ωTxi+b)1时,拉格朗日乘子 α \alpha α使得L()变小了,L的极大值就是 1 2 ∥ ω ∥ 2 \frac{1}{2}\|\omega\|^2 21ω2,与原始目标一致!

越不满足约束条件,L就越大,表示偏离原始目标越远;符合约束条件时,L越来越小,max(L)等价于原始问题,这样
L ( α ) L(\alpha) L(α)使约束条件和原始目标绑定到了一起,方便优化求解。

问题就变成了L关于 α \alpha α最大化,然后在约束条件得到满足的情况下最小化 1 2 ∥ ω ∥ 2 \frac{1}{2}\|\omega\|^2 21ω2
写成公式:
   min ⁡ w , b max ⁡ α i ≥ 0 L ( ω , b , α ) = p ∗ → max ⁡ α i ≥ 0 min ⁡ w , b L ( ω , b , α ) = d ∗ \mathop{\min}\limits_{w,b} \mathop{\max}\limits_{\alpha_i\ge 0}L(\omega,b,\alpha)=p^* \rightarrow \mathop{\max}\limits_{\alpha_i\ge 0} \mathop{\min}\limits_{w,b} L(\omega,b,\alpha)=d^{*} w,bminαi0maxL(ω,b,α)=pαi0maxw,bminL(ω,b,α)=d

p ∗ p^* p是原始问题的最优值, d ∗ d^* d表示其对偶问题的最优值,且 d ∗ ≤ p ∗ d^* \le p^* dp,当满足KTT条件时,对偶问题的最优值等于原始问题的最优值。

求解,先分别对w, b求偏导并令其等于0,代入拉格朗日函数,得到:
   min ⁡ ω , b   L ( ω , b , α ) = − 1 2 ∑ i ∑ j α i α j y i y j ( x i ⋅ x j ) + ∑ i α i s . t . ∑ α i y i = 0 \mathop{\min}\limits_{\omega,b}\ L(\omega,b,\alpha) = - \dfrac{1}{2}\sum_i\sum_j \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)+\sum_i \alpha_i \quad s.t. \sum\alpha_iy_i = 0 ω,bmin L(ω,b,α)=21ijαiαjyiyj(xixj)+iαis.t.αiyi=0
再对 α \alpha α求最大值:
max ⁡ α − 1 2 ∑ i ∑ j α i α j y i y j ( x i ⋅ x j ) + ∑ i α i \mathop{\max}_{\alpha} - \dfrac{1}{2}\sum_i\sum_j \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)+\sum_i \alpha_i maxα21ijαiαjyiyj(xixj)+iαi
等价于:
   min ⁡ α 1 2 ∑ i ∑ j α i α j y i y j ( x i ⋅ x j ) − ∑ i α i \mathop{\min}_{\alpha} \dfrac{1}{2}\sum_i\sum_j \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)-\sum_i \alpha_i minα21ijαiαjyiyj(xixj)iαi
这种算法称为线性可分支持向量机的对偶学习算法。

最后得到:
ω ∗ = ∑ i α i ∗   y i x i   ; b ∗ = y i − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) \omega^* = \sum_i\alpha_i^*\ y_i x_i \, ; \\ b^*=y_i-\sum\limits_{i=1}^{N}\alpha_i^*y_i(x_i\cdot x_j) ω=iαi yixi;b=yii=1Nαiyi(xixj)


松弛变量

以上我们都只关心一个目的:寻找能够最大化间隔的分类超平面。然而,由于样本点中异常点的存在,只考虑这一个因素往往无法得到一个最佳的分类器。
如果我们能够放宽对于间隔的限制,便可以一定程度的忽略异常点的影响,反而能得到间隔更大的分类超平面。

上述容忍异常点的思路可以通过引入“松弛变量”(slack variable)实现,把约束条件放松到
   y i ( w T x i + b ) + ξ i ≥ 1 ,   i = 1 , 2 , . . . , N y_i(w^Tx_i+b)+\xi_i \geq 1,\ i=1,2,...,N yi(wTxi+b)+ξi1, i=1,2,...,N
可以用 ∑ i = 1 l ξ i \sum_{i=1}^{l}\xi_i i=1lξi来描述训练集被错分的程度。
ξ i \xi_i ξi足够大时,样本点总可以满足间隔尽量大错划尽量少,需要对 ξ i \xi_i ξi加一个惩罚参数C:
     min ⁡ ω , b , ξ   1 2 ∥ ω ∥ 2 + C ∑ i = 1 l ξ i s . t y i ( w T x i + b ) + ξ i ≥ 1 ,   ξ i ≥ 0 ,   i = 1 , 2 , . . . , l \begin{array}{lr} \mathop{\min}_{\omega,b,\xi}\ \dfrac{1}{2}\|\omega\|^2 + C\sum_{i=1}^{l}\xi_i \\ \\ s.t \quad y_i(w^Tx_i+b)+\xi_i \geq 1,\ \xi_i\geq 0,\ i=1,2,...,l \end{array} minω,b,ξ 21ω2+Ci=1lξis.tyi(wTxi+b)+ξi1, ξi0, i=1,2,...,l

  • C取无穷: ξ i \xi_i ξi只能为零,代表无法容忍任何误判样本的出现,即严格遵守“间隔”的限制,得到没有引入松弛变量时的分类超平面
  • C取零: ξ i \xi_i ξi可以任意大,即任何误判结果都可以被容忍,得到分类超平面没有意义
  • C较大: ξ i \xi_i ξi不能很大,因此限制条件难以被忽略,会得到较为狭窄间隔的分类超平面
  • C较小: ξ i \xi_i ξi影响较小,因此限制条件可以被忽略,会得到较为宽间隔的分类超平面

SVM(1)——最大间隔分类器

非线性svm

把数据变换到高维空间,使得在高维特征空间中线性可分,通常使用函数映射比如 k = ( ( x i ⋅ x j ) + 1 ) 2 k=((x_i \cdot x_j)+1)^2 k=((xixj)+1)2

注意到线性间隔分类器只依赖于XiXj,因此转换函数只依赖于 ϕ ( x i ) ϕ ( x j ) = K ( x i ⋅ x j ) \phi(x_i)\phi(x_j)=K(x_i\cdot x_j) ϕ(xi)ϕ(xj)=K(xixj)
   ( x i ⋅ x j ) → K ( x i ⋅ x j ) (x_i\cdot x_j) \rightarrow K(x_i\cdot x_j) (xixj)K(xixj)

决策函数变为 f ( x ) = s g n ( ∑ i = 1 l α i ∗ y i K ( x i , x j ) + b ∗ ) f(x)=sgn(\sum\limits_{i=1}^{l}\alpha_i^*y_iK(x_i,x_j) + b^*) f(x)=sgn(i=1lαiyiK(xi,xj)+b)

这样就可以选择各种形式的K(x,j),一旦选定了该核函数,就可以用上述决策函数求解最优化问题了。

常见的核函数有:

  • 多项式核, K ( x i , x j ) = [ ( x i ⋅ x j ) + c ] q K(x_i,x_j) = [(x_i\cdot x_j)+c]^q K(xi,xj)=[(xixj)+c]q

  • 径向基核(RBF), K ( x i , x j ) = e x p { − ∣ x − x i ∣ 2 σ 2 } K(x_i,x_j) = exp \left \{ - \dfrac {|x-x_i|^2}{\sigma^2} \right \} K(xi,xj)=exp{σ2xxi2}

  • sigmoid核, K ( x i , x j ) = t a n h ( v ( x ⋅ x i ) + c ) K(x_i,x_j) = tanh(v(x\cdot x_i)+c) K(xi,xj)=tanh(v(xxi)+c)

径向基函数 (Radial Basis Function 简称 RBF), 是一类函数,径向基函数是一个它的值(y)只依赖于变量(x)距原点距离的函数,即 ϕ ( x ) = ϕ ( ∥ x ∥ ) \phi(\mathbf{x}) = \phi(\|\mathbf{x}\|) ϕ(x)=ϕ(x);也可以是距其他某个中心点的距离,即 ϕ ( x , c ) = ϕ ( ∥ x − c ∥ ) \phi(\mathbf{x}, \mathbf{c}) = \phi(\|\mathbf{x}-\mathbf{c}\|) ϕ(x,c)=ϕ(xc)。也就是说,可以选定径向基函数来当核函数,譬如SVM里一般都用高斯径向基作为核函数,但是核函数不一定要选择径向基这一类函数。
最常用的径向基函数是高斯核函数 K ( x i , x j ) = e x p { − ∣ x − x i ∣ 2 2 σ 2 } K(x_i,x_j) = exp \left \{ - \dfrac {|x-x_i|^2}{2\sigma^2} \right \} K(xi,xj)=exp{2σ2xxi2}
Ref:
https:// blog.csdn.net/u013630349/article/details/48162589

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值