基础
本文基本上参考《李航-统计学习方法》进行学习、排版。
- 二类分类模型;
- 基本模型是定义在特征空间上、间隔最大的线性分类器;
- 学习策略是间隔最大化,可形式化为求解凸二次规划问题,等价于正则化的损失函数最小化问题;
- 和感知机有何区别:SVM是间隔最大化;
- 模型细分类:
(1)线性可分支持向量机:数据线性可分时,通过硬间隔最大化,学习线性上分类的SVM。
(2)线性支持向量机(软间隔支持向量机):数据近似线性可分时,通过软间隔最大化,学习线性SVM。
(3)非线性支持向量机:数据线性不可分,通过核技巧(kernal) 以及软间隔最大化,学习非线性的SVM。
-
核函数(kernal):
输入空间为欧氏空间(多维),或者离散集合,特征空间为希尔伯特空间(完备性)时,核函数表示了,从输入空间映射到特征空间得到的特征向量之间的内积。(之后再解释)
- 最开始应该如何定义数据集和系数的维度?笔者不太理解《李航-统计学习方法》中,在对偶问题中,是否直接将xi视作一个点?
笔者的理解:
单个点计算情况
yi |
(w
|
xi |
+ |
b ) |
1*1 |
1*d |
d*1 |
|
1*1 |
Y=⎣⎢⎢⎡y1y2...yn⎦⎥⎥⎤
ω=⎣⎢⎢⎡ω1ω2...ωd⎦⎥⎥⎤
xi=⎣⎢⎢⎡xi,1xi,2...xi,d⎦⎥⎥⎤
X=⎣⎢⎢⎡x1Tx2T...xnT⎦⎥⎥⎤
7.1 线性可分SVM
7.1.1 线性可分SVM定义
假设给定一个特征空间上的训练数据集为:
T={(x1,y1),...,(xi,yi),...,(xN,yN)}
yi∈y=[−1,+1]
其中,xi∈x≡Rn 称作第i个特征向量,或者实例(理解为样本点)。
定义7.1(线性可分SVM): 这里是引用《李航-统计学习方法》
给定的线性可分训练数据集,通过间隔最大化或者等价求解 —> 凸二次规划问题,学习到模型即分离超平面,以及判断函数:
w∗∗x+b=0f(x)=sign(w∗∗x+b)(7.1)
7.1.2 函数间隔和集合间隔
函数间隔概念:分类准确度存在确定程度,在确定w∗∗x+b=0 的超平面之后,能够得到目标点距离超平面的距离,距离越远,说明判断的确信程度更高。利用变量y(w∗∗x+b)来表示正确性和确信程度。
定义7.2(函数间隔,有hat): 这里是引用《李航-统计学习方法》
给定的数据集T以及超平面(w,b),定义样本点和超平面的函数间隔为
γi^=yi∗(w∗xi+b)(7.3)
此外,定义超平面(w,b)关于训练数据集T的函数间隔为超平面关于所有样本点的函数间隔的最小值【也就是,最靠近】
γ^=minγi^(7.4)
定义7.3(几何间隔,无hat): 这里是引用《李航-统计学习方法》
由于w的值对于距离有影响,所以需要进行规范化,使得它的范数为1。如果∣∣w∣∣=1则两种间隔相同。
γi=yi∗(∣∣w∣∣w∗xi+∣∣w∣∣b)(7.5)
类推,超平面关于关于训练数据集T的几何间隔为超平面关于所有样本点的几何间隔的最小值【也就是,最靠近】
γ=minγi(7.6)
7.1.3 间隔最大化(学习策略)
直观解释:找到“几何间隔”最大化的超平面,以达到最大的确信程度来进行分类。(尚未涉及可能出现分类混杂于彼此的样本小现象)
-
最大间隔分离超平面
w,bmax γsubject to γi^=yi∗(∣∣w∣∣w∗xi+∣∣w∣∣b)γ^=minγi^
由于几何间隔的“地板”为γ,然后再最大化这个指标,写作:
w,bmax γs.t. yi∗(∣∣w∣∣w∗xi+∣∣w∣∣b)≥γ(7.10)
写成函数间隔(带hat)的形式,可能存在λ使得距离进行拉伸,
λw,λb−−>λγ,所以取γ=1
重新写最优化问题:
w,bmin 21∣∣w∣∣2s.t. yi(w∗xi+b)−1≥0, i=1,2,...,N
求解之后,得到:超平面+分类决策函数
-
最大间隔分离超平面的存在性及唯一性
存在性:数据集线性可分,而且目标函数有下界,因此有解。而且,如果w=0则无法单纯依靠系数b得到分类,因此解满足w̸=0
唯一性:分别证明w以及b
(1)证明w:
假设有两个w符合要求,即(w1,b1)以及(w2,b2);
因为取最优的最小值,得到∣∣w1∣∣=∣∣w2∣∣=const;
令w=2w1+w2以及b=2b1+b2,则没法达到最小值,有c≤∣∣w∣∣;
依靠模的计算,有∣∣w∣∣≤21∣∣w1∣∣+21∣∣w2∣∣=c;
(夹逼)因此有∣∣w∣∣=21∣∣w1∣∣+21∣∣w2∣∣,w1,w2角度为0,方向相同,w1=λw2,∣λ∣=1,λ取-1时,则w=0不满足存在性,应该取1,则有w1=w2
(2)证明b:
7.1.4 学习的对偶算法
笔者疑问:对偶问题求解相比原始问题有何优势?
引子1:拉格朗日
- 原始问题:各式子均可微
x∈Rnminf(x)s.t. ci(x)≤0hj(x)=0
- 引进拉格朗日函数:αi≥0
L(x,α,β)=f(x)+i=1∑kαici(x)+i=1∑lβjhj(x)
引入 x的函数:注意max底下并没有x,说明其中的f(x)项并没有起到最大化效果。p表示原始问题。
θP(x)=α,β;α≥0maxL(x,α,β)
换言之:
假设x引发两个条件,即存在i,j使得ci(x)≤0,hj(x)=0无法成立,因为αi,βj−>+∞则
α,β;α≥0maxi=1∑kαici(x)=+∞α,β;α≥0maxi=1∑lβjhj(x)=+∞
因此有:
θP(x)=α,β;α≥0maxL(x,α,β)={f(x),ConditionsSatisfied+∞,NotSatisfied
- 考虑原始问题minx∈Rnf(x) 则有“拉格朗日极小极大问题”:
x∈Rnminf(x)=x∈RnminθP(x)=x∈Rnminα,β;α≥0maxL(x,α,β)
- 原始问题的值:p∗=minx∈RnθP(x)
引子2:拉格朗日对偶问题
- “拉格朗日极大极小问题”(min,max的下标一样需要跟进):
α,β;α≥0maxθD(α,β)=α,β;α≥0maxx∈RnminL(x,α,β)
对偶问题的值:d∗=maxα,β;α≥0θD(α,β)
- 对偶问题和原始问题的关系:
(1)
θD(α,β)=x∈RnminL(x,α,β)≤L(x,α,β)≤α,β;α≥0maxL(x,α,β)=θP(x)
即有,θD(α,β)≤θP(x)
所以两者的最优值有大小关系,d∗=α,β;α≥0maxθD(α,β)≤x∈RnminθP(x)=p∗
(2)x∗是原始问题的解,α∗,β∗是对偶问题的解
<— 充分必要条件 —>
KKT条件(图片来自于《统计学习方法-李航》)
拉格朗日函数要对x,α,β求导得0,其他满足于前文所示条件。
如何进行学习的对偶算法
由7.1.3我们得到应该求得的最优化凸二次规划问题
w,bmin 21∣∣w∣∣2s.t. yi(w∗xi+b)−1≥0, i=1,2,...,N
构造拉格朗日函数:在此拉格朗日中的x为问题中的ω,b
L(ω,b,α,β)=f(ω,b)+i=1∑kαici(ω,b)+i=1∑lβjhj(ω,b)=21∣∣w∣∣2+i=1∑kαi(1−yi(w∗xi+b))=21∣∣w∣∣2−i=1∑kαiyi(w∗xi+b)+i=1∑kαi∗1
通过对偶问题来求解,极大极小问题
α;α≥0maxωb∈RnminL(ω,b,α)
(1)先求解 minωb∈RnL(ω,b,α): 对于ω,b求导
∇ωL(ω,b,α)=w−i=1∑Nαiyixi=0∇bL(ω,b,α)=−i=1∑Nαiyi=0
所以,得到目标的表达式和另外的条件。如果看下表,则ω不应该按照如下公式表示,xi需要转置。(但暂时不看向量的积的维度问题)
yi |
(w
|
xi |
+ |
b ) |
1*1 |
1*d |
d*1 |
|
1*1 |
w=i=1∑Nαiyixii=1∑Nαiyi=0
将其代入L(ω,b,α)之中,得到
L(ω,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)
得到下一步的输入物:
ω,b∈RnminL(ω,b,α)=i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)
(2)开始求极大极小中的极大问题,
α;α≥0maxωb∈RnminL(ω,b,α)=αmaxi=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)s.t. i=1∑Nαiyi=0αi≥0
转化为极小问题
α;α≥0minL(ω,b,α)=αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t. i=1∑Nαiyi=0αi≥0
支持向量
将训练数据集中对应于αi>0的样本点(xi,yi)的实例xi∈Rn称为支持向量。由于存在KKT条件,αi(yi(w∗xi+b)−1)=0,需要解同时符合
yi(w∗xi+b)=1
因此xi是在间隔边界上。
优缺点
【参考 https://blog.****.net/x1kz18nkbqg/article/details/78690795 】
SVM算法的主要优点有:
- 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
- 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
- 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
- 样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点有:
- 如果特征维度远远大于样本数,则SVM表现一般。
- SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
- 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
- SVM对缺失数据敏感。
用于回归问题
【参考】
https://blog.****.net/x1kz18nkbqg/article/details/78690795
https://blog.****.net/luoshixian099/article/details/51121767
参考书目
- 李航-统计学习方法
- 西瓜书
- 清华大学深圳研究生院袁春ppt