《统计学习方法》--支持向量机

《统计学习方法》第七章–支持向量机

支持向量机概述

支持向量机是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。支持向量机由简至繁依次可分为:线性可分支持向量机,线性支持向量机,非线性支持向量机。当数据线性可分时,通过硬间隔最大化的约束来学习一个分类器,称为线性可分支持向量机;当数据近似线性可分时,通过软间隔最大化的约束来学习一个分类器,称为线性支持向量机;当数据线性不可分时通过使用核技巧及软间隔最大化,学习非线性支持向量机。故此,支持向量机可以简化的描述为通过训练数据集来寻找一个能够将数据正确分类的超平面,此分离超平面满足数据集中的数据点距此超平面的间隔(软间隔/硬间隔)最大化。

基础前提

函数间隔和几何间隔

间隔最大化是贯穿于整个支持向量机模型的最核心的部分。一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度,在分离超平面确定的情况下,若一个点离超平面越远则分类正确的可信度越高。故此,支持向量机寻求间隔最大化的意义在于分离超平面不仅可以正确分类数据点,而且对于最难分的实例(距离超平面最近的点)也有较大的分类可信度,因此该模型再对未知数据分类时应该也具有较好的性能。

函数间隔

对于给定的训练数据集 T T T和超平面 ( ω , b ) (\omega,b) (ω,b)

定义超平面 ( ω , b ) (\omega,b) (ω,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的函数间隔为 γ i ^ = y i ( ω ⋅ x i + b ) \hat{\gamma_i}=y_i(\omega\cdot x_i+b) γi^=yi(ωxi+b)
定义超平面 ( ω , b ) (\omega,b) (ω,b)关于训练数据集 T T T的函数间隔为超平面 ( ω , b ) (\omega,b) (ω,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的函数间隔最小值,即 γ ^ = min ⁡ i = 1 , 2 , . . , N γ i ^ \hat{\gamma}=\min_{i=1,2,..,N}\hat{\gamma_i} γ^=i=1,2,..,Nminγi^

几何间隔

由于函数间隔在当 ω \omega ω b b b成比例的改变时候,得到的分离超平面并没有变化,但是函数间隔却也成比例的改变,故此自然想到应该对其进行规范化处理,令 ∣ ∣ ω ∣ ∣ = 1 ||\omega||=1 ω=1,这样就得到了几何间隔的定义。

对于给定的训练数据集 T T T和超平面 ( ω , b ) (\omega,b) (ω,b)

定义超平面 ( ω , b ) (\omega,b) (ω,b)关于样本点 ( x i , y ) i (x_i,y_)i (xi,y)i的几何间隔为 γ i = y i ( ω ∣ ∣ ω ∣ ∣ ⋅ x i + b ∣ ∣ ω ∣ ∣ ) \gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||}) γi=yi(ωωxi+ωb)
定义超平面 ( ω , b ) (\omega,b) (ω,b)关于训练数据集 T T T的几何间隔为超平面 ( ω , b ) (\omega,b) (ω,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔最小值,即 γ = min ⁡ i = 1 , 2 , . . . , N γ i \gamma=\min_{i=1,2,...,N}\gamma_i γ=i=1,2,...,Nminγi

线性可分支持向量机与硬间隔最大化

给定线性可分训练数据集,通过间隔最大化(几何间隔最大化)或等价的求解相应的凸二次规划问题得到的分离超平面为 ω ∗ ⋅ x + b ∗ = 0 \omega^*\cdot x+b^*=0 ωx+b=0,相应的分类决策函数为 f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^*\cdot x+b^*) f(x)=sign(ωx+b)。线性可分支持向量机可以表述为下列形式: max ⁡ ω , b γ − − − − ( 1 ) \max_{\omega,b}\gamma----(1) ω,bmaxγ1 s . t . y i ( ω ∣ ∣ ω ∣ ∣ ⋅ x i + b ∣ ∣ ω ∣ ∣ ) ≥ γ , i = 1 , 2... , N − − − − ( 2 ) s.t. y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||})\geq\gamma,i=1,2...,N----(2) s.t.yi(ωωxi+ωb)γ,i=1,2...,N2

即我们希望找到的分类超平面是与整个训练数据集有着最大的几何间隔(硬间隔)。

公式(1)表示我们的目标函数,即最大化分类超平面关于训练数据集的几何间隔,
公式(2)表示我们需要满足的约束条件,即训练数据集中的每一个样本点与分类超平面的几何间隔都应该至少是所求的 γ \gamma γ

这样就把问题转化为了一个约束最优化问题。依据函数间隔和几何间隔的关系 γ = γ ^ ∣ ∣ ω ∣ ∣ \gamma=\frac{\hat{\gamma}}{||\omega||} γ=ωγ^带入公式(1)(2)中即可得: max ⁡ ω , b γ ^ ∣ ∣ ω ∣ ∣ − − − − ( 3 ) \max_{\omega,b}\frac{\hat{\gamma}}{||\omega||}----(3) ω,bmaxωγ^3 s . t . y i ( ω ∣ ∣ ω ∣ ∣ ⋅ x i + b ∣ ∣ ω ∣ ∣ ) ≥ γ ^ ∣ ∣ ω ∣ ∣ , i = 1 , 2... , N − − − − ( 4 ) s.t. y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||})\geq\frac{\hat{\gamma}}{||\omega||},i=1,2...,N----(4) s.t.yi(ωωxi+ωb)ωγ^,i=1,2...,N4考虑到函数间隔 γ i ^ = y i ( ω ⋅ x i + b ) \hat{\gamma_i}=y_i(\omega\cdot x_i+b) γi^=yi(ωxi+b)仅依赖于 ω 和 b \omega和b ωb,因此函数间隔的取值并不会影响目标函数和约束条件,所以令 γ ^ = 1 \hat{\gamma}=1 γ^=1可以约简为等价的问题: max ⁡ ω , b 1 ∣ ∣ ω ∣ ∣ − − − − ( 5 ) \max_{\omega,b}\frac{1}{||\omega||}----(5) ω,bmaxω15 s . t . y i ( ω ⋅ x i + b ) ≥ 1 , i = 1 , 2... , N − − − − ( 6 ) s.t. y_i(\omega\cdot x_i+b)\geq1,i=1,2...,N----(6) s.t.yi(ωxi+b)1,i=1,2...,N6

可以将上述求解最大值的问题转化为求解最小值的问题,即: min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \min_{\omega,b}\frac{1}{2}||\omega||^2 ω,bmin21ω2 s . t . y i ( ω ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2... , N s.t. y_i(\omega\cdot x_i+b)-1\geq 0,i=1,2...,N s.t.yi(ωxi+b)10,i=1,2...,N

注:本质上我们的目标是求解 m i n ∣ ∣ ω ∣ ∣ min||\omega|| minω,这里之所以构造为求 m i n 1 2 ∣ ∣ ω ∣ ∣ 2 min \frac{1}{2}||\omega||^2 min21ω2的形式
,而不是 m i n 1 3 ∣ ∣ ω ∣ ∣ 3 , m i n 1 4 ∣ ∣ ω ∣ ∣ 4 min \frac{1}{3}||\omega||^3,min \frac{1}{4}||\omega||^4 min31ω3min41ω4的形式,是为了将问题构造成等价的凸二次优化问题,方便后边求解。

故此可以有线性可分支持向量机算法为:

输入:线性可分训练数据集 T = { ( x 1 , y 2 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_2),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y2),(x2,y2),...,(xN,yN)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , . . . , N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2,...,N xiX=Rn,yiY={+1,1},i=1,2,...,N

输出:最大间隔分离超平面及分类决策函数

(1) 构造并求解约束最优化问题: min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \min_{\omega,b}\frac{1}{2}||\omega||^2 ω,bmin21ω2 s . t . y i ( ω ⋅ x i + b ) − 1 ≥ 1 , i = 1 , 2... , N s.t. y_i(\omega\cdot x_i+b)-1\geq 1,i=1,2...,N s.t.yi(ωxi+b)11,i=1,2...,N得到最优解 ω ∗ \omega^* ω, b ∗ b^* b
(2) 由此得到分离超平面: ω ∗ ⋅ x + b ∗ = 0 \omega^* \cdot x+b^* = 0 ωx+b=0,分类决策函数 f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^* \cdot x+b^*) f(x)=sign(ωx+b)

以上就是线性可分支持向量机的建模过程,是支持向量机的最简单形式,但也是最基础的形式,后续的线性支持向量机和非线性支持向量机都是在此基础上对数据进行线性可分化的处理。线性支持向量机是对约束条件做了一定的宽松化的处理,使得样本点与分类超平面的间隔有一个弹性范围,不再是必须都大于给定的硬间隔。非线性支持向量机则是通过使用核函数的方式将线性不可分的数据集转化为另一个空间中线性可分的数据集,在应用线性支持向量机去求解分类超平面。

线性支持向量机与软间隔最大化

当数据集线性不可分时表明对于数据集中的一些实例,上述约束方法中的约束不等式不能都成立,即存在一些实例,无法满足函数间隔大于等于1的约束要求。为了解决这个问题,可以对每个样本点引入一个松弛变量 ζ i ≥ 0 \zeta_i\geq0 ζi0,使得函数间隔加上松弛变量大于等于1,即约束条件放宽为: y i ( ω ⋅ x i + b ) ≥ 1 − ζ i y_i(\omega\cdot x_i+b)\geq 1-\zeta_i yi(ωxi+b)1ζi,同时对每个松弛变量支付一个代价 ζ i \zeta_i ζi。目标函数则变为 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 N ζ i \frac{1}{2}||\omega||^2+C \sum_{i=1}^{N}\zeta_i 21ω2+Ci=1Nζi,这里 C > 0 C>0 C>0称为惩罚参数, C C C值大时对误分类的惩罚增大, C C C值小时对误分类的惩罚小。故由此可得到线性支持向量机算法的原始表达形式为: min ⁡ ω , b , ζ 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 N ζ i \min_{\omega,b,\zeta} \frac{1}{2}||\omega||^2+C\sum_{i=1}^N\zeta_i ω,b,ζmin21ω2+Ci=1Nζi s . t . y i ( ω ⋅ x i + b ) ≥ 1 − ζ i , i = 1 , 2 , . . . , N s.t. y_i(\omega\cdot x_i+b)\geq 1-\zeta_i,i=1,2,...,N s.t.yi(ωxi+b)1ζi,i=1,2,...,N ζ i ≥ 0 , i = 1 , 2 , . . . , N \zeta_i\geq 0,i=1,2,...,N ζi0,i=1,2,...,N这样根据原始问题求解得到 ω ∗ \omega^* ω, b ∗ b^* b即可得到分离超平面以及分类决策函数

非线性支持向量机与核函数

对于线性分类问题,线性支持向量机是一种非常有效的方法。但是有时要解决的是非线性问题,此时就需要使用非线性支持向量机,其重点在于利用核技巧。核技巧不仅应用于支持向量机,而且也可以应用于其他统计学问题中。核技巧就是通过首先使用一个变换将原空间的数据映射到新的空间,然后在新空间里用线性分类学习方法从训练数据中学习分类模型。

核技巧的基本想法是通过一个非线性变换将输入空间( R n R^n Rn 欧 式 空 间 1 欧式空间^1 1或离散集合)对应于一个特征空间( H H H 希 尔 伯 特 空 间 2 希尔伯特空间^2 2),使得在输入空间 R n R^n Rn中的超曲面模型对应于特征空间 H \mathrm{H} H中的超平面模型。这样,分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。

核函数

χ \chi χ是输入空间(欧式空间 R n R^n Rn的子集或离散集合),又设 H \mathrm{H} H为特征空间(希尔伯特空间),如果存在一个从 χ \chi χ H \mathrm{H} H的映射 ϕ ( x ) : χ → H \phi(x):\chi \to \mathrm{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) ϕ ( x ) \phi(x) ϕ(x) ϕ ( z ) \phi(z) ϕ(z)的內积

也就是说通过定义核函数,可以在不需要构造映射函数的情况下实现数据从低维到高维的映射。通过这样的方法就可以快速的实现数据维度的转换。

非线性支持向量机

从非线性分类训练集,通过核函数与软间隔最大化学习得到的分类决策函数 f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x , x i ) + b ∗ ) f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^ *) f(x)=sign(i=1NαiyiK(x,xi)+b)称为非线性支持向量机, K ( x , z ) K(x,z) K(x,z)是正定核函数

输入:训练数据集 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 ∈ Y = { − 1 , + 1 } , i = 1 , 2 , . . . , N x_i\in\chi=R^n,y_i\in Y=\{-1,+1\},i=1,2,...,N xiχ=Rn,yiY={1,+1},i=1,2,...,N

输出:分类决策函数

(1) 选取适当的核函数 K ( x , z ) K(x,z) K(x,z)和适当的参数 C C C,构造并求解最优化问题 min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i \min_\alpha \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_j y_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi s . t . ∑ i = 1 N α i y i = 0 s.t. \sum_{i=1}^N\alpha_iy_i=0 s.t.i=1Nαiyi=0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N 0\leq\alpha_i\leq C,i=1,2,...,N 0αiC,i=1,2,...,N求出最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T
(2) 选择 α ∗ \alpha^* α的一个正分量 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj<C,计算 b ∗ = y j − ∑ i = 1 N α i ∗ y i K ( x i , x j ) b^*=y_j-\sum_{i=1}^N\alpha_i^ *y_iK(x_i,x_j) b=yji=1NαiyiK(xi,xj)
(3) 构造决策函数: f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x , x i ) + b ∗ ) f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^ *) f(x)=sign(i=1NαiyiK(x,xi)+b)

思考与总结

对于支持向量机算法(三种不同的类型),其整个的核心思想是希望对于整个训练数据集而言训练出一个这样的分类器:即该分类器对于整个数据集而言有最大的间隔(软间隔/硬间隔),这样可以保证对于训练数据而言,分类器有充分大的置信度,这样对新数据预测得到的结果也应该有较大的置信度。

基于以上这种思想,支持向量机算法其实就是构造分类平面,求解分类平面的过程。 针对三种不同类型的数据,支持向量机采用了不同的处理方法,但最终目的都是使得数据线性可分(在低维或者是高维)的基础上,通过求解分类超平面来得到分类决策函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值