支持向量机(SVM)是一种二类分类模型。基本模型是定义在特征空间上的间隔最大的线性分隔器,间隔最大使它有别于感知机——误分类点到超平面S的总距离最小。
核技巧使它成为实质上的非线性分类器。间隔最大化可形式化为一个求解的凸二次规划,也等价于正则化的合页损失函数的最小化问题——求解凸二次规划的最优化算法
线性可分支持向量机
分离超平面为:
w∗⋅x+b∗=0
分类决策函数:
f(x)=sign(w∗⋅x+b∗=0)
函数间隔与几何间隔
在超平面
w⋅x+b=0
确定的情况下,l
w⋅x+b
l能够表示点x距离超平面的远近.而
w⋅x+b
与符号与类标记y的符号是否一致能够表示分类是否正确。所以可用
y(w⋅x+b)
来表示分类的正确性及确信度—等价于l
w⋅x+b
l
这就是函数间隔,定义:
γi=yi(w⋅xi+b)
i=1,….,N
γ=minγi
若对分离超平面的法向量w加某些约束,如规范化, ∥w∥=1 ,使得间隔是确定的,此时函数间隔为几何间隔
几何间隔定义
γi=yi(w∥w∥⋅xi+b∥w∥)
i=1,….,N
γ=minγi
(硬)间隔最大化
对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的.这里的间隔最大化又称为硬间隔最大化(与将讨论的训练数据集近似线性可分的软间隔最大化相对应)
最大间隔分离超平面,表示为下面的约束最优化问题
maxw,bγ
s.t.
yi(w∥w∥⋅xi+b∥w∥)>=γ,i=1,2,....,N
可改写为
maxw,bγ∥w∥
s.t.
yi(w⋅xi+b)>=γ,i=1,2,....,N
然而函数间隔γ并不影响最优化问题的解(因为有
∥w∥
的存在),令γ=1最后改写为
minw,b∥w∥22
s.t.
yi(w⋅xi+b)−1>=0,i=1,2,....,N
算法(线性可分支持向量机学习算法——最大间隔法)
1)
minw,b∥w∥22
s.t.
yi(w⋅xi+b)−1>=0,i=1,2,....,N
2)利用拉格朗日算法整合函数求偏导等于0,得到参数即可
最大间隔分离超平面的存在且唯一
支持向量和间隔边界
支持向量是使约束条件式等号成立的点,即
yi(w⋅xi+b)−1=0
对
yi=+1
的正例点,支持向量在超平面:
H1:w⋅xi+b=1
对
yi=−1
的负例点,支持向量在超平面:
H1:w⋅xi+b=−1
间隔边界即: 2∥w∥
给个例子,二维情况
学习的对偶算法
应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解
因为:一是对偶问题往往更易求解;二是引进核函数,今儿推广非线性分类问题
引进拉格朗日乘子αi>=0,i=1,2,…,N,定义拉格朗日函数:
L(w,b,α)=∥w∥22−∑Ni=1αiyi(w⋅xi+b)+∑Ni=1αi
α=(α1,α2,...,αN)T
为拉格朗日乘子向量
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
max(对α)min(对w,b)L(w,b,α)
得到下面与之等价的对偶最优化问题:
minα12∑Ni=1∑Nj=1αiαjyiyj(xi⋅xj)−∑Ni=1αi
s.t.
∑Niαiyi=0
αi>=0,i=1,2,....,N
定理,设 α∗=(α∗1,α∗2,...,α∗l)T 是对偶最优化问题—上述等价问题 的解,则存在下标 j,使得 α∗j>0 ,并按下式求得原始最优化问题的解 w∗,b∗ :
w∗=∑Ni=1α∗iyixi
b∗=yj−∑Ni=1α∗iyi(xi⋅xj)
算法(线性可分支持向量机学习算法)
1)构造并求解约束最优化问题
minα12∑Ni=1∑Nj=1αiαjyiyj(xi⋅xj)−∑Ni=1αi
s.t.
∑Niαiyi=0
αi>=0,i=1,2,....,N
求得最优解
α∗=(α∗1,α∗2,...,α∗N)T
.
2)计算
w∗=∑Ni=1α∗iyixi
并选择
α∗
的一个正分量
α∗j
>0计算
b∗=yj−∑Ni=1α∗iyi(xi⋅xj)
3)求得分离超平面
w∗⋅x+b∗=0
分类决策函数:
f(x)=sign(x∗⋅x+b∗)
对于支持向量的定义
考虑原始最优化问题和对偶最优化问题,将训练数据集中对应于
α∗i>0的样本点(xi,yi)的实例xi∈Rn
称为支持向量
根据这一定义,支持向量一定在间隔边界上
αi(yi(w∗⋅x+b∗)−1)=0,i=1,2,....,N
对于
α∗i>0的实例xi
,有
yi(w∗⋅x+b∗)−1=0
或
w∗⋅x+b∗=±1
一个例子:
线性支持向量机与软间隔最大化
线性支持向量机
训练数据集:
T=(x1,y1,....,xn,yn)
其中,xi∈χ=Rn,yi∈Υ=+1,−1,i=1,...,N,xi为第i个特征向量,yi为xi的类标记
再假设训练数据集不是线性可分的,通常情况是,训练数据中有一些特异点,将这些特异点去除后,剩下大部分的样本点组成的集合是线性可分的
所以引入松弛变量ϵi⩾0
约束条件变为yi(w⋅xi+b)⩾1−ϵi
目标函数由12∥w∥2变成12∥w∥2+C∑Ni=1ϵi
C>0为惩罚参数,最小化目标函数包含两层含义:使\frac{1}{2}|w|^2尽量小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数.
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题):
minw,b,ϵ12∥w∥2+C∑Ni=1ϵi
s.t.yi(w⋅xi+b)⩾1−ϵi
ϵi⩾0,i=1,2,...,N
下面给出支持向量机定义
定义(线性支持向量机),
得到分离超平面为
w∗⋅x+b∗=0
以及相应的分类决策函数
f(x)=sign(w∗⋅x+b∗=0)
称为线性支持向量机
相应的学习对偶算法
minα12∑Ni=1∑Nj=1αiαjyiyj(xi⋅xj)−∑Ni=1αi
s.t.
∑Niαiyi=0
0⩽αi⩽C,i=1,2,....,N
定理,对偶问题的解可通过下式求得
w∗=∑Ni=1α∗iyixi
b∗=yj−∑Ni=1yiα∗i(xi⋅xj)
中间证明用到所谓KKT条件
算法(线性支持向量机学习算法)
输入:训练数据集T
输出:分离超平面和分类决策函数
1)选择惩罚参数C>0,构造并求解凸二次规划问题
minα12∑Ni=1∑Nj=1αiαjyiyj(xi⋅xj)−∑Ni=1αi
s.t.
∑Niαiyi=0
0⩽αi⩽C,i=1,2,....,N
求得最优解
α∗=(α∗1,...,α∗N)T
2)计算
w∗=∑Ni=1α∗iyixi
选择α∗的一个分量α∗j适合条件0<α∗j<C
计算
b∗=yj−∑Ni=1yiα∗i(xi⋅xj)
求得分离超平面
分离超平面
w∗⋅x+b∗=0
相应的分类决策函数
f(x)=sign(w∗⋅x+b∗=0)
步骤2中对任意是和条件分量都可以求出 b∗ ,但是由于解不唯一,求出来不一样,所以一般实际计算可以取所有符合条件的样本点上的均值
支持向量
图示化理解
合页损失函数
对于线性支持向量机来说,学习策略为软间隔最大化,学习算法为凸二次规划.
还有另外一种解释,就是最小化以下目标函数:
∑Ni=1[1−yi(w⋅xi+b)]++λ∥w∥2
目标函数第一项是经验损失或者经验风险,函数
L(y(w⋅x+b))=[1−y(w⋅x+b)]+
称为合页损失函数,下标”+”表示一下取正值的函数
[z]+[=z,z>0;=0,z⩽0]
定理,原始最优化问题等价于最优化问题
原始最优化问题:
minw,b,ϵ=12∥w∥2+C∑Ni+1ϵi
s.t.yi(w⋅xi+b)⩾1−ϵi,i=1,2,...,N
ϵi⩾0,i=1,2...,N
等价于最优化问题
minw,b∑Ni=1[1−yi(w⋅xi+b)]++λ∥w∥2
(易证明)
损失函数
损失函数可以看做 误差部分(loss term) + 正则化部分(regularization term)
0-1损失函数,记录分类错误的次数
合页损失函数
因为函数形状像合页,故名合页损失函数
图中还画出0-1损失函数,可认为它是二分类问题的真正的损失函数
合页损失函数是其的上界,由于0-1损失函数不是连续可导的,直接优化其构成的目标函数较难。
上界函数因此称为代理损失函数
虚线显示的是感知机损失函数[yi(w⋅xi+b)]+,这样当样本点正确分类时,损失是0,否则损失是−yi(w⋅xi+b),相比之下,合页损失函数不仅要分类正确,而且确信度足够高损失才为0
合页损失函数对学习有更高的要求
非线性支持向量机与核函数
有时分类问题是非线性的,这时可以使用非线性支持向量机。先介绍核技巧,不仅运用于支持向量机,也应用于其他统计学习问题
核技巧
非线性分类问题
将左图中椭圆变换成右图的直线。
定义从原空间到新空间的映射
z=ϕ(x)=((x(1))2,(x(2))2)T
原空间的椭圆:
w1(x(1))2+w2(x(2))2+b=0
变换为新空间的直线:
w1z(1)+w2z(2)+b=0
核技巧就是通过一个非线性变换将输入空间(欧氏空间
Rn
或离散集合)对应于一个特征空间(希尔伯特空间
H
),使得在输入空间
核函数定义
ϕ(x):χ→H
使得对所有x,z∈χ,函数K(x,z)满足条件
K(x,z)=ϕ(x)⋅ϕ(z)
则称K(x,z)为核函数,ϕ(x)为映射函数,式中ϕ(x)⋅ϕ(z)为ϕ(x)与ϕ(z)的内积
在学习和预测中只定义核函数,而不显式地定义映射函数,通常直接计算K(x,z)较容易
ϕ是输入空间Rn到特征空间H的映射,特征空间H一般是高维的,甚至无穷维的
对于给定核K(x,z),特征空间H和映射函数ϕ的取法并不唯一
例,假设输入空间是R2,核函数是K(x,z)=(x⋅z)2,试找出其相关特征空间H和映射ϕ(x):R2→H
取特征空间H=R3,记x=(x(1),x(2))T,z=(z(1),z(2))T
,由于
(x⋅z)2=(x(1)z(1)+x(2)z(2))2=(x(1)z(1))2+2x(1)z(1)x(2)z(2)+(x(2)z(2))2
可以取映射
ϕ(x)=((x1)2,2√x(1)x(2),(x(2))2)T
仍取
H=R3
以及
ϕ(x)=12√((x(1))2−x(2))2,2x(1)x(2),(x(1))2+x(2))2)T
满足
ϕ(x)⋅ϕ(z)=K(x,z)=(x⋅z)2
还可以取
H=R4
和
ϕ(x)=((x(1))2,x(1)x(2),x(1)x(2),x(2))T
核技巧在支持向量机中的应用
在对偶问题的目标函数中的内积x1⋅xj可以用核函数K(xi,xj)=ϕ(xi)⋅ϕ(xj)
代替
此时对偶问题的目标函数:
W(α)=12∑Ni=1∑Nj=1αiαjyiyjK(xi,xj)−∑Ny=1αi
分类决策函数:
f(x)=sign[∑Nsi=1a∗iyiϕ(xi)⋅ϕ(xj)+b∗]=sign[∑Nsi=1a∗iyiK(xi,x)+b∗]
实际应用中,往往依赖领域知识直接选择核函数,核函数选择的有效性需要通过实验验证。
正定核
函数K(x,z)满足什么条件才能成为核函数?
假设K(x,z)是定义在χ×χ上的对称函数,并且对任意xi∈χ,K(x,z)关于xi的Gram矩阵是半正定的,可以依据函数K(x,z),构成一个希尔伯特空间:
首先定义映射ϕ并构成向量空间S
然后再S上定义内积构成内积空间
最后将S完备化构成希尔伯特空间
1.定义映射,构成向量空间S
定义映射
ϕ:x→K(⋅,x)
定义线性组合
f(⋅)=∑mi=1αiK(⋅,xi)
考虑线性组合集合S,由于集合S对加法和数乘是封闭的,所以S构成一个向量空间
2.在S上定义内积,使其成为内积空间
f(⋅)=∑mi=1αiK(⋅,xi)
g(⋅)=∑li=1βiK(⋅,zi)
定义运算*
f∗g=∑mi=1∑lj=1αiβjK(xi,zj)
证明运算*是空间S的内积,为此要证:
1)(cf)∗g=c(f∗g),c∈R
2)(f+g)∗h=f∗h+g∗h,h∈S
3)f∗g=g∗f
4)f∗f⩾0
,
f∗f=0⇆f=0
2.将S完备化为希尔伯特空间
定义||f||=f⋅f−−−−√
因此,S是一个赋范向量空间.根据泛函分析理论,对于不完备的赋范向量空间S,一定可以完备化。一个内积空间,作为赋范向量空间是完备的时侯,就是希尔伯特空间。
这一希尔伯特空间称为再生希尔伯特空间。
这是由于核K有再生性:
K(⋅,x)⋅g=f(x)及K(⋅,x)⋅K(⋅,z)=K(x,z)
称为再生核
4.正定核的充要条件
定理(正定核的充要条件)
设K:χ×χ→R是对称函数,则K(x,z)为正定核函数的充要条件是
对任意xi∈χ,i=1,2,...,m,K(x,z)对应的Gram矩阵:
K=[K(xi,xj)]m×m
是半正定矩阵
定义(正定核的等价定义)
设χ⊂Rn,K(x,z)是定义在χ×χ的对称函数,
过对任意xi∈χ,i=1,2,...,m,K(x,z)对应的Gram矩阵:
K=[K(xi,xj)]m×m
是半正定矩阵,则称
K(x,z)
是正定矩阵
这一定义在构造核函数很有用,但对于一个具体函数,检验是否为正定函数不容易,在实际问题往往运用已有的核函数
另外,由Mercer定理可以得到Mercer核,正定核比Mercer核更具有一般性
常用的核函数
1.多项式核函数
K(x,z)=(x⋅z+1)p
对应的支持向量机是一个p次多项式分类器,分类决策函数:
f(x)=sign[∑Nxi=1a∗iyi(xi⋅x+1)p+b∗]
2.高斯核函数
K(x,z)=exp(−||x−z||22σ2)
对应的支持向量机是一个高斯径向基函数分类器,分类决策函数:
f(x)=sign[∑Nxi=1a∗iyiexp(−||x−z||22σ2)+b∗]
3.字符串核函数
核函数不仅可以定义在欧氏空间,还可以定义在离散数据的集合上,比如,字符串核是定义在字符串集合上的核函数.字符串核函数在文本分类、信息检索、生物信息学等方面都有应用
非线性支持向量分类机
将线性支持向量机对偶形式中的内积换为核函数,就可拓展为非线性支持向量机
系统归纳定义和算法
定义:
f(x)=sign[∑Nsi=1a∗iyiK(xi,x)+b∗]
称为非线性支持向量,
K(x,z)是正定核函数
算法:
1)选择适当的核函数K(x,z)和惩罚参数C>0,构造并求解最优化问题
minα12∑Ni=1∑Nj=1αiαjyiyjK(xi⋅xj)−∑Ni=1αi
s.t.
∑Niαiyi=0
0⩽αi⩽C,i=1,2,....,N
求得最优解
α∗=(α∗1,...,α∗N)T
2)
选择α∗的一个分量α∗j适合条件0<α∗j<C
计算
b∗=yj−∑Ni=1yiα∗i(xi⋅xj)
3)构造决策函数:
f(x)=sign[∑Nsi=1a∗iyiK(xi,x)+b∗]
当
K(x,z)
是正定核函数时,此问题时凸二次规划问题,解是存在的
序列最小优化算法
支持向量机学习问题最后归化为凸二次规划问题,有全局最优解,并且有许多最优化算法课用于求解
但当训练数据样本容量很大的时,这些算法往往变得很低效,所以如何高效实现支持向量机学习是一个重要问题
目前人们已提出许多快速实现算法,SMO序列最小优化算法就是之一
SMO算法要解如下对偶问题
minα12∑Ni=1∑Nj=1αiαjyiyjK(xi⋅xj)−∑Ni=1αi
s.t.
∑Niαiyi=0
0⩽αi⩽C,i=1,2,....,N
一个变量
αi对应于一个样本点(xi,xj)
,变量的总数等于训练样本容量N
SMO算法是一种启发式算法:
如果所有变量的解都满足此最优化问题的KKT条件,那么解就得到。
否则,选择两个变量,固定其他变量,针对这两个变量构造一个二次规划问题
这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使原始二次规划问题的目标函数值变得更小,重要的是,这是子问题可以通过解析方法求解,这样可以大大提高整个算法的计算速度,子问题有两个变量,一个是违反KKT条件最严重的那个,另一个由约束条件自动确定。
讲原问题不断分解为子问题
整个SMO算法包括两部分:求解两个变量二次规划的解析方法和选择变量的启发式方法
两个变量二次规划的求解方法
假设选择
α1,α2
,于是最优化问题的子问题可以写成:
minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1∑Ni=3yiαiKi1+y2α2∑Ni=3yiαiKi2
s.t.α1y1+α2y2=−∑Ni=3yiαi=ζ
0⩽αi⩽C,i=1,2
其中
Kij=K(xi,xj),i,j=1,2,...,N,ζ
是常数,目标函数式中省略了不含
α1,α2
的常数项
变量的选择方法
SMO算法在每个子问题中选择两个变量优化,其中至少一个变量是违反KKT条件的
1.第一个变量的选择
SMO称选择第一个变量的过程为外层循环.外层循环在训练样本中违反KKT条件最严重的样本点
具体:
αi=0⇄yig(xi)⩾1
0<αi<C⇄yig(xi)=1
αi=C⇄yig(xi)⩽1
其中,
g(xi)=∑Nj=1αjyjK(xi,xj)+b
该检验是在
ϵ
范围内进行
检验过程,先遍历所有满足条件
0<αi<C
的样本点,即在间隔边界上的支持向量点,是否满足KKT条件
如果都满足KKT,那么遍历整个训练集,是否满足KKT
2.第二个变量的选择
SMO称选择第二个变量的过程为内层循环.
选择
α2使对应的|E1−E2|
最大
3.计算阈值b和差值
Ei
bnew1=−E1−y1K11(αnew1−αold1)−y2K21(αnew2−αold2)+bold
bnew2=−E2−y2K12(αnew1−αold1)−y2K22(αnew2−αold2)+bold
Enewi=∑SyjαjK(xi,xj)+bnew−yi
SMO算法
算法
输入:训练数据集,精度
ξ
输出:近似解
α^
1)取初值
α(0),令k=0
2)选取优化变量
a(k)1,a(k)2
,解析求解两个变量的最优化问题,求得最优解
a(k+1)1,a(k+1)2
,更新
α为α(k+1)
3)若在精度
ξ
范围内满足停机条件
∑Ni=1αiyi=0
0⩽αi⩽C,i=1,2,...,N
yi⋅g(xi)=⎧⎩⎨⎪⎪⩾1=1⩽1{xi|αi=0}{xi|0<αi<C}{xi|αi=C}
其中,
g(xi)=∑Nj=1αjyjK(xj,xi)+b
则转4);否则另k=k+1,转2)
4)取
α^=αk+1