支持向量机
笔记摘要
- SVM的基本模型是定义在特征空间上的间隔最大的线性分类器
- 线性可分支持向量机和线性支持向量机假设输入空间和特征空间的元素一一对应,并将输入空间中的输入映射为特征空间的特征向量;非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量
- 支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数最小化问题
- 仿射变换是保凸变换
- 通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机
函数间隔
- 对于给定数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的函数间隔为
γ^i=yi(w⋅xi+b)
- 定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔之最小值,即
γ^=i=1,⋯,Nminγ^i
- 函数间隔可以表示分类预测的正确性及确信度
几何间隔
- 对于给定数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的几何间隔为
γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)
- 定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi,yi)的几何间隔之最小值,即
γ=i=1,⋯,Nminγ^i
- 超平面(w,b)关于样本点(xi,yi)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离
- 如果超平面参数成比例地改变,此时超平面没有发生改变,但函数间隔按此比例改变,而几何间隔不变
线性可分支持向量机
-
问题描述
w,bmin21∣∣w∣∣2s.t. yi(w⋅xi+b)−1⩾0,i=1,2,…,N
-
这是个凸二次规划问题,如果求出了上述方程的解w∗,b∗,就可得到分离超平面
w∗⋅x+b∗=0
-
以及相应的分类决策函数
f(x)=sign(w∗⋅x+b∗)
对偶算法
- 对偶问题往往更容易求解
- 自然引入核函数,进而推广到非线性分类问题
-
针对每个不等式约束,定义拉格朗日乘子αi≥0,定义拉格朗日函数
L(w,b,α)=21w⋅w−[i=1∑Nαi[yi(w⋅xi+b)−1]]=21∥w∥2−[i=1∑Nαi[yi(w⋅xi+b)−1]]=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi
αi⩾0,i=1,2,…,N
其中α=(α1,α2,…,αN)T为拉格朗日乘子向量
-
原始问题是极小极大问题,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
αmaxw,bminL(w,b,α)
-
转换后的对偶问题
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t. i=1∑Nαiyi=0αi⩾0,i=1,2,…,N
-
根据KKT条件求解,其中α不为零的点对应的实例为支持向量,通过支持向量可以求得b值
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yi(xi⋅xj)
-
b∗的求解,通过argmaxα∗实现,因为支持向量共线,所以通过任意支持向量求解都可以
线性支持向量机
-
问题描述
w,b,ξmins.t. 21∥w∥2+Ci=1∑Nξiyi(w⋅xi+b)⩾1−ξi,i=1,2,…,Nξi⩾0,i=1,2,…,N
-
对偶问题描述
- 原始问题里面有两部分约束,涉及到两个拉格朗日乘子向量
αmin s.t. 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαii=1∑Nαiyi=00⩽αi⩽C,i=1,2,…,N
通过求解对偶问题, 得到α,然后求解w,b的过程和之前一样
-
线性支持向量机的解w∗唯一但b∗不一定唯一
-
线性支持向量机是线性可分支持向量机的超集
合页损失
-
最小化目标函数
w,bmini=1∑N[1−yi(w⋅x+b)]++λ∥w∥2
-
其中
- 第一项是经验损失或经验风险,函数L(y(w⋅x+b))=[1−y(w⋅x+b)]+称为合页损失,可以表示成L=max(1−y(w⋅x+b),0)
- 第二项是系数为λ的w的L2范数的平方,是正则化项
-
书中通过定理7.4说明了用合页损失表达的最优化问题和线性支持向量机原始最优化问题的关系
w,b,ξmins.t. 21∥w∥2+Ci=1∑Nξiyi(w⋅xi+b)⩾1−ξi,i=1,2,…,Nξi⩾0,i=1,2,…,N
-
等价于
w,bmini=1∑N[1−yi(w⋅x+b)]++λ∥w∥2
-
证明如下
-
令合页损失[1−yi(w⋅x+b)]+=ξi,合页损失非负,所以有ξi≥0,这个对应了原始最优化问题中的第二个约束
-
还是根据合页损失非负,当1−yi(w⋅x+b)≤0的时候,有[1−yi(w⋅x+b)]+=ξi=0,所以有1−yi(w⋅x+b)≤0=ξi,这对应了原始最优化问题中的第一个约束
-
所以,在满足这两个约束的情况下,有
w,bminw,bminw,bmini=1∑N[1−yi(w⋅x+b)]++λ∥w∥2i=1∑Nξi+λ∥w∥2C1(21∥w∥2+Ci=1∑Nξi),with λ=2C1
-
合页损失函数

非线性支持向量机
-
核技巧的想法是在学习和预测中只定义核函数K(x,z),而不是显式的定义映射函数ϕ
-
通常,直接计算K(x,z)比较容易, 而通过ϕ(x)和ϕ(z)计算K(x,z)并不容易。
W(α)=21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi
f(x)=sign(i=1∑Nsαi∗yiϕ(xi)⋅ϕ(x)+b∗)=sign(i=1∑Nsαi∗yiK(xi,x)+b∗)
学习是隐式地在特征空间进行的,不需要显式的定义特征空间和映射函数
核函数
-
对于给定的核K(x,z),特征空间H和映射函数ϕ(x)的取法并不唯一,可以取不同的特征空间,即便是同一特征空间里也可以取不同的映射
-
下面这个例子里面ϕ(x)实现了从低维空间到高维空间的映射
K(x,z)=(x⋅z)2X=R2,x=(x(1),x(2))TH=R3,ϕ(x)=((x(1))2,2x(1)x(2),(x(2))2)TH=R4,ϕ(x)=((x(1))2,x(1)x(2),x(1)x(2),(x(2))2)T
K(⋅,x)⋅f=f(x)K(⋅,x)⋅K(⋅,z)=K(x,z)
-
通常所说的核函数就是正定核函数
-
问题描述
- 将向量内积替换成了核函数,而SMO算法求解的问题正是该问题
- 构建最优化问题:
αmin s.t. 21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαii=1∑Nαiyi=00⩽αi⩽C,i=1,2,…,N
- 求解得到α∗=(α1∗,α2∗,⋯,αN∗)T
选择α∗的一个正分量计算
b∗=yj−i=1∑Nαi∗yiK(xi,xj)
构造决策函数
f(x)=sign(i=1∑Nαi∗yiK(x,xi)+b∗)
SMO算法
问题描述
αmin s.t. 21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαii=1∑Nαiyi=00⩽αi⩽C,i=1,2,…,N
这个问题中,变量是α,一个变量αi对应一个样本点(xi,yi),变量总数等于N
KKT 条件
- KKT条件是该最优化问题的充分必要条件
- 简单来说,约束最优化问题包含⩽0,和=0两种约束条件
x∈Rnmins.t.f(x)ci(x)⩽0,i=1,2,…,khj(x)=0,j=1,2,…,l
L(x,α,β)=f(x)+i=0∑kαici(x)+j=1∑lβjhj(x)
∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗ci(x∗)=0,i=1,2,…,kci(x∗)≤0,i=1,2,…,kαi∗≥0,i=1,2,…,khj(x∗)=0,j=1,2,…,l
- 前面三个条件是由解析函数的知识,对于各个变量的偏导数为0,后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束,第四个条件是KKT的对偶互补条件
算法内容
整个SMO算法包括两部分:
- 求解两个变量二次规划的解析方法
- 选择变量的启发式方法
αmin s.t. 21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαii=1∑Nαiyi=00⩽αi⩽C,i=1,2,…,N
Part I
- 两个变量二次规划求解
- 选择两个变量α1,α2,由等式约束可以得到α1=−y1i=2∑Nαiyi,所以这个问题等价于一个单变量优化问题
α1,α2minW(α1,α2)=s.t. 21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑NyiαiKil+y2α2i=3∑NyiαiKi2α1y1+α2y2=−i=3∑Nyiαi=ς0⩽αi⩽C,i=1,2
- 线性等式约束
- 边界约束
- 根据简单的线性规划可以得出等式约束使得(α1,α2)在平行于盒子[0,C]×[0,C]的对角线的直线上

- 首先求沿着约束方向未经剪辑,即不考虑约束0⩽αi⩽C时α2的最优解,然后再求剪辑后的解
Ei=g(xi)−yi=(j=1∑NαjyjK(xi,xj)+b)−yi,i=1,2
Ei为函数g(x)对输入的预测值与真实输出yi的差
Part II
- 第一个变量α1外层循环,寻找违反KKT条件最严重的样本点
- 第二个变量α2内层循环,希望能使α2有足够大的变化
- 计算阈值b和差值Ei
输入:训练数据集T=(x1,y1),(x2,y2),…,(xN,yN),其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N,精度ϵ
输出:近似解α^
-
取初值α0=0,令k=0
-
选取优化变量α1(k),α2(k),解析求解两个变量的最优化问题,求得最优解α1(k+1),α2(k+1),更新α为αk+1
-
若在精度ϵ范围内满足停止条件
i=1∑Nαiyi=00⩽αi⩽C,i=1,2,…,Nyi⋅g(xi)=⎩⎪⎪⎨⎪⎪⎧⩾1,{xi∣αi=0}=1,{xi∣0<αi<C}⩽1,{xi∣αi=C}g(xi)=j=1∑NαjyjK(xj,xi)+b
则转4,否则,k=k+1转2
-
取α^=α(k+1)
习题解答
- 1.比较感知机的对偶形式与线性可分支持向量机的对偶形式
- 感知机的对偶形式
f(x)=sign(∑j=1Nαjyjxj⋅x+b),α=(α1,α2,⋯,αN)T
- 线性可分支持向量机的对偶形式
f(x)=sign(∑i=1Nαi∗yixi⋅x+b∗),α∗=(α1∗,α2∗,⋯,αN∗)T
感知机学习算法的原始形式和对偶形式与线性可分支持向量机学习算法的原始形式和对偶形式相对应。在线性可分支持向量机的对偶形式中,w也是被表示为实例 xi和标记yi的线性组合的形式
w=i=1∑Nαiyixi
而它们的偏置b的形式不同,前者b=∑i=1Nαiyi,而后者b∗=yj−∑i=1Nαi∗yi(xi⋅xj)

w,b,ξmin21∥w∥2+Ci=1∑Nξi2s.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,Nξi≥0,i=1,2,⋯,N
**试求其对偶形式**
- 首先求得原始化最优问题的拉格朗日函数是:
L(w,b,α,ξ,μ)=21∥w∥2+C∑i=1Nξi2−∑i=1Nαi(yi(w⋅xi+b−1)+ξi)−∑i=1Nμiξi
- 对偶问题是拉格朗日的极大极小问题。首先求L(w,b,α,ξ,μ)对w,b,ξ的极小,即对该三项求偏导,得
w=i=1∑Nαiyixii=1∑Nαiyi=02Cξi−αi−μi=0
将上述带入拉格朗日函数,得
−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−Ci=1∑Nξi2+i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−4C1i=1∑N(αi+μi)2+i=1∑Nαi
- 4.证明内积的正整数幂函数K(x,z)=(x⋅z)p是正定核函数,这里p是正整数,x,z∈Rn
-
要证明正整数幂函数是正定核函数,只需证明其对应得Gram矩阵K=[K(xi,xj)]m×m是半正定矩阵
-
对任意c1,c2…cm∈R,有
i,j=1∑mcicjK(xi,xj)===i,j=1∑mcicj(xi⋅xj)p(i=1∑mcixi)(j=1∑mcjxj)(xixj)p−1∣∣i=1∑mcixi∣∣2(xixj)p−1
- 由于p大于等于1,该式子也大于等于0,即Gram矩阵半正定,所以正整数的幂函数是正定核函数