SVM个人理解
核心
SVM(Support Vector Machine),二分类模型(可扩展为多分类模型, One-vs-rest or one-vs-one,也可做回归,参考SVR)。其要点如下:
- Maximum geometric margin: 求空间中一超平面得到最大分类间隔
- Hinge loss: 对支持向量施加的松弛惩罚
- Kernel trick: 利用核函数非线性分类
概念
- 问题形式化:给定训练数据集
T=(x1,y1),(x2,y2),…,(xN,yN)
其中,xi∈Rn,yi∈{+1,−1},i=1,2,…,N,xi是第i个特征向量,yi是xi的类标记 - 线性可分: 假设训练集在输入空间线性可分,即存在一个超平面: wx+b=0 能够完全划分正负实例点。
- 函数间隔
γ^=mini=1,…,Nyi⋅(w⋅xi+b)
- 几何间隔
γ=mini=1,…,Nyi⋅(w⋅xi+b)∥w∥=γ^∥w∥
线性可分支持向量机
对于线性可分的训练数据集,可以证明一定存在唯一的超平面能够最大化几何间隔。我们认为具有最大间隔的超平面具有最佳分类效果。
在这,个人对函数间隔与几何间隔这样理解。对同一个超平面,通过比例缩放
w
和
因此,线性可分支持向量机学习算法-最大硬间隔法
约束最优化问题
minw,b12∥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∗)
拉格朗日对偶问题
约束最优化问题
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0αi≥0,i=1,2,…,N
求得α∗=(α∗1,α∗2,…,α∗N)T
求wi=∑i=1Nα∗iyixi
选择一个正分量 α∗j>0 ,计算b∗=yj−∑i=1Nαiyi(xi⋅xj)
超平面w∗⋅x+b∗=0
分类决策函数f(x)=sign(w∗⋅x+b∗)
称 α∗i≠0 的实例为支持向量。
线性支持向量机
对于线性不可分训练集,也就是说不存在一个超平面能够完全正确地把正负实例点分隔开来。我们通过对实例点的函数间隔小于1的情况施加一个松弛因子,并对此施加惩罚。并把惩罚与 ∥w∥ 的加权和作为最优化目标,称之为最大化软间隔。
采取损失函数为hinge loss
因此,线性可分支持向量机学习算法- 最大软间隔法
约束最优化问题
minw,b12∥w∥2+C∑i=1Nζi s.t. yi(w⋅xi+b)≥1−ζi,i=1,2,…,Nζi≥0,i=1,2,…,N
求得最优解 w∗ 和 b∗
超平面w∗⋅x+b∗=0
分类决策函数f(x)=sign(w∗⋅x+b∗)
拉格朗日对偶问题
约束最优化问题
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=00≤αi≤C,i=1,2,…,N
求得α∗=(α∗1,α∗2,…,α∗N)T
求w∗=∑i=1Nα∗iyixi
选择一个正分量 0<α∗j<C ,计算b∗=yj−∑i=1Nαiyi(xi⋅xj)
超平面w∗⋅x+b∗=0
分类决策函数f(x)=sign(w∗⋅x+b∗)
称
α∗i>0
的实例为支持向量。若
α∗i<C
则
ζi=0
, 支持向量
xi
在间隔边界上。若
α∗i=C,0<ζi<1
,则分类正确,支持向量
xi
在间隔边界与分类超平面之间。若
α∗i=C,ζi=1
,支持向量
xi
在分类超平面。若
α∗i=C,ζi>1
,支持向量
xi
在分离超平面误分类一侧。(存在约束,参考引用)
显然,线性支持向量机更具一般化。
另外,据证明
E(Ltest)≤NsvN
,其中左侧方程表示测试集上错误率的期望,右侧表示支持向量数目,表示样本总数。他的意义是:支持向量越多,测试集上错误率可能会越高。这其实很容易理解,如果数据离分界面很远,那么支持向量一般会很少,测试性能自然会不错;反之,如果数据全部分布在分界面上,那表明数据缠绕很严重,测试集效果基本不靠谱。
参考SVM在线性不可分的情况下,利用核函数升维后就一定线性可分吗?-肖寒的回答
非线性支持向量机与核函数
对于输入空间相互缠绕程度比较强的训练集合,通过以上方法很难找到理想的分类超平面。我们知道,高维空间具有更强的数据表现能力,那么我们把输入空间映射到更高维空间,在高维空间最大化软间隔很可能取得更好的效果,very promising。
在此,我们定义核函数
ϕ(x) 为输入空间到特征空间(高维)的映射。
注意,我们没有显式定义映射 ϕ(x) 。也就是说,特征空间的定义和输入空间到高维特征空间的映射都是隐式完成的。我们只要定义适当的核函数,那么一定存在对应的映射函数,使得两个实例在高维上映射的内积等于二者的核函数。在这,经常说的核函数是正定核函数。
因此,线性可分支持向量机学习算法-最大软间隔与核技法
- 选取适当的核函数 K(x,z) 和适当的参数 C ,构造并求解最优化问题
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t. ∑i=1Nαiyi=00≤αi≤C,i=1,2,…,N
求得α∗=(α∗1,α∗2,…,α∗N)T
选择一个正分量 0<α∗j<C ,计算b∗=yj−∑i=1NαiyiK(xi,xj)
分类决策函数f(x)=sign(∑i=1NαiyiK(xi,x)+b∗)
SMO
序列最小最优算法:解决凸二次规划的对偶问题,即支持向量机对偶问题 α∗ 的求解。
思路:选取两个变量 αi,αj ,固定其他 N−2 个参数变量,解二次规划问题。不断迭代,直到所有 αi 满足KKT条件。
- 求解两个变量二次规划的解析方法
- 选择变量启发式方法:违反KKT最严重的 αi ,另一个由约束确定。
引用
李航《统计学习方法》
维基百科:SVM
SVM在线性不可分的情况下,利用核函数升维后就一定线性可分吗?-肖寒的回答
作者是个beginner,有问题请提出!欢迎交流!谢谢