支持向量机(Support vector machine)
支持向量机是一种二分类模型
基本模型是定义在特征空间上间隔最大化的线性分类器
学习策略:
间隔最大化 可形式化为求解一个凸二次规划的问题
也等价于正则化的合页损失函数的最小化问题
支持向量机的学习算法是求解凸二次规划的最优化算法
支持向量机面对不同的数据集 有不同的分类策略
线性可分支持向量机 硬间隔最大化
线性支持向量机 软间隔最大化
非线性支持向量机 核技巧 软间隔最大化
线性可分支持向量机
考虑一个二分类问题 假设输入空间与特征空间分为两个不同的空间
输入空间为欧式空间或离散集合
输出空间为欧式空间或希尔伯特空间
线性可分支持向量机假设这两个空间的元素 一一对应 并将输入空间中的输入映射为特征空间中的特征向量
非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射到为特征向量
即: 支持向量机的学习是在特征空间上进行的 输入都有输入空间转化到特征空间
假设给定一个特征空间上的训练数据集
T=(x1,y1),(x2,y2),(x3,y3),(x4,y4).....,(xn,yn)
其中
x∈χ=Rn,yi∈Y={−1,+1},i=1,2,3,....,n
xi为第i个特征向量也称为实例yi为xi的类标记
when
yi=+1
时 称
xi为正例
when
yi=−1
时 称
xi为负例
(xi,yi)
为样本点 假设训练数据集是线性可分的
目标: 在特征空间上找到一个分离超平面 能将实例分到不同的类
分离超平面对应方程:
wTx+b=0
即: 分离超平面由法向量w和截距b(w, b)决定
该平面可以将特征空间分为两类 一部分为正类 一部分为父类
特殊情况: 当样本数据集为线性可分时 存在无穷多个可分割超平面
此时 引入概念间隔最大化来求最优分离超平面 此时分割超平面的解是唯一的
小扩展:
什么是法向量? 用方程ax+by+c=d表示的平面 向量(a,b,c)就是其法线
感知机利用误分类最小的策略 分离超平面
综上:
给定线性可分训练数据集 通过间隔最大化或等价地求解相应的凸二次规划问题 学习得到分离超平面为
wTx+b=0
以及相应的分类决策函数
f(x)=sign(wTx+b)
间隔最大化以及相应的约束最优化问题
小扩展:
什么是线性规划问题?
例题:x,y满足约束条件
x−y+3≤0,3x+y+5≤0,x+3≥0
问:
z=x+2y
的最大值为?
函数间隔与几何间隔
函数间隔
一个点距离分离超平面的远近可以表示为分离预测的确信程度
在超平面
wTx+b=0
确定的情况下
(wtx+b)
能够相对表示点x距离超平面的远近
而
wT+b
的符号与类标记 y的符号是否一致能够表示分类是否正确
所以可用
y(wT+b)
来表示分类的正确性及确信度 —- 这就是函数间隔的概念
定义: 对于给定的训练集
T
和超平面(w, b) 定义超平面(w,b)关于样本点(x_i, y_i)的函数间隔为:
r^i=yi(wTxi+b)
定义超平面
(w,b)
关于训练集
T
的函数间隔为超平面(w,b) 关于
T
中所有样本点(x_i, y_i)的函数间隔最小值为:
r^i=mini=1,2,...,nr^i
问题: 只要成比例改变(w,b) 那么函数间隔
r^i
之间的间隔也会成比例的改变
解决方法:对分离超平面的法向量加以约束 函数间隔变为几何间隔
几何间隔
超平面(w, b)法向量w 点A表示某一实例
xi
某类标记为
yi=+1
,那么点A与超平面(w, b)的距离为:
ri=wTx||w||+b||w||
||w||:法向量为w的L2范数向量大小
如果
xi
为负例 那么
yi=−1
该点与超平面的距离为
ri=−(wTx||w||+b||w||)
间隔最大化
间隔最大化的直观解释 在训练数据集中找到几何间隔最大的超平面意味着以充分大的确信度 对训练数据进行分类
实质上 最大间隔分离超平面的问题 —-> 就是约束最优化问题
maxw,brs.t.yi(wTx||w||+b||w||)≥r,i=1,2,3,....,N
即: 期望最大化超平面(w, b)关于训练集的几何间隔
r
约束条件表示的是: 超平面(w, b)关于每个训练样本点的几何间隔至少是r
进一步化简该公式:
maxw,br||w||s.t.yi(wTx+b)≥r,i=1,2,3,....,N
函数距离
r
随着(w, b)成比例的缩放而变大变小 因此函数间隔的取值并不影响最优化问题的解
再化简为
maxw,b1||w||s.t.yi(wTx+b)≥1,i=1,2,3,....,N
即:求
1||w||
在满足约束条件
s.t.yi(wTx+b)≥1,i=1,2,3,....,N
时的最大值
因此转化问题为:
minw,b12||w||2s.t.yi(wTx+b)−1≥0,i=1,2,3,....,N
实质上 该问题是一个凸二次优化问题
小扩展:
凸优化
什么是凸优化?
$~~~~$目标函数f(x)和约束函数g(x)都是R上连续可微的凸函数
$~~~~$约束函数是R^n 上的仿射函数
凸函数的几个重要概念
凸集 凸优化问题 线性规划 二次规划 二次约束规划 半正定规划
凸函数与非凸函数
![这里写图片描述](https://img-blog.csdn.net/20180524194917263?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Ryb3lzcHM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
凸集定义
几何定义: 如果集中C中任意2个元素连线上的点也在集合C中 则C为凸集
常见的凸集有: n维实数空间; 一些范数约束形式的集合; 仿射子空间;凸集的交集;n维半正定矩阵集合
凸函数的定义
几何意义: 表示为函数任意两点连线上的值大于自变量处的函数值
凸函数的一阶充要条件为:
f(y)≥f(x)+▽xf(x)T(y−x)
其中要求
f(x)
为一阶可微
二阶充要条件为:
▽2xf(x)≥0
其中要求
f(x)
为二阶可微 表示二阶导数需大于0才是凸函数
凸优化问题
即: 要求目标函数为凸函数 变量所属集合是凸集合的优化问题 目标函数是凸函数变量的约束函数是凸函数(不等式约束), 或者仿射函数(等式约束)
对于凸优化问题来说, 局部最优解就是全局最优解
常见的凸优化问题
(1)线性规划问题
(2)二次规划问题
(3)二次约束的二次规划
(4)半正定规划
小扩展
约束最优化问题
指具有约束条件的非线性规划问题
极小化问题的一般形式为 (例子)
minw,b12||w||2s.t.yi(wTx+b)−1≥0,i=1,2,3,....,N
仅仅有等式约束条件的约束是最优化问题
解题思路:消元法 拉格朗日乘子法或罚函数法
将其转化为无约束最优化问题求解
对于含有等于约束和不等式约束约束条件的最优化问题
可采用:
将不等式约束化等式约束
将约束问题化为无约束问题
将非线性规划问题用线性逼近的方法来近似求解
在可行域中沿某一方向做一维搜索 寻求最优解
对于此类问题重点掌握: 拉格朗日乘数法
例题: 带有不等式约束的最优化问题
minf(d1,d2)=d21+d22−2d2+2s.t.d21+d22≤4
(1)首先先出拉格朗日函数
g(d1,d2,λ,η)=f(d1,d2)+λ(d21+d22−4+η2)
λ:
拉格朗日乘子法
η:
是一个松弛变量
(2)对四个未知量求导:
2ηλ=0d21+d22−4+η2=02d1+2λd1=0λ≥0
由
d1+λd1=0
知,
d1=0
,
ηλ=0
情况需要分开判断
假设
λ=0则d2=1η=3–√
若
λ>0则η=0与η<0矛盾
学习的对偶算法
构建拉格朗日函数
原始问题与拉格朗日函数
将约束最优化问题推导为拉格朗日函数 引入广义拉格朗日函数
minw,b12||w||2s.t.yi(wTx+b)−1≥0,i=1,2,3,....,N
即:
L(w,b,α)=12||w||2+∑i=1Nαiyi(wTxi+b)−∑i=1Nαi==12||w||2−∑i=1Nαiyi(wTxi+b)+∑i=1Nαi
根据拉格朗日对偶性,原始问题对偶问题是极大极小问题
为了得到对偶问题的解 需要先求
L(w,b,α)对(w,b)的极小,再对α求极大
(1)求
minw,bL(w,b,α)
, 并带入原拉格朗日函数
得:
w=∑i=1Nαiyixi∑i=1Nαiyi=0
带入原拉格朗日函数:
L(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)+∑i=1Nαi
(2)求
minw,bL(w,b,α)对α的极大,即为对偶问题
即原问题:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)+∑i=1Nαis.t.∑i=1Nαiyi=0αi≥0,i=1,2,.....,N
该函数转化为极大求极小
minα12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)−∑i=1Nαis.t.∑i=1Nαiyi=0αi≥0,i=1,2,.....,N
此时KKT条件为:
▽wL(w∗,b∗,α∗)=w∗−∑i=1Nα∗iyixi=0▽bL(w∗,b∗,α∗)=−∑i=1Nα∗iyi=0α∗i(yi(w∗xi+b∗)−1)=0,i=1,2,....,Nyi(w∗xi+b∗)−1≥0,i=1,2,...,Nα∗i≥0,i=1,2,...,N
小扩展
KKT条件
对原始问题和对偶问题(将广义拉格朗日函数的极大极小问题表示为约束最优化问题),假设函数f(x)和ci(x)是凸函数(不等式约束),hj(x)是仿射函数(等式约束)并且不等式约束Cj(x)是严格可行的,则x∗,和α∗,β∗分别是原始问题和对偶问题的解的充分必要条件是满足KKT条件
原始问题:minx∈RNf(x)s.t.ci(x)≤0,i=1,2,...,Khj(x)=0,j=1,2,...,K
对偶问题(将广义拉格朗日函数的极大极小问题表示为约束最优化问题)maxα,βθ0(α,β)=maxα,βminxL(x,α,β)s.t.αi≥0,i=1,2,...,N
KKT条件为:▽xL(x∗,α∗,β∗)=0▽αL(x∗,α∗,β∗)=0▽βL(x∗,α∗,β∗)=0α∗iCi(x∗)=0,i=1,2,3,....,N此为:KKT的对偶互补条件由此可知若α∗I≥0,则Ci(x∗)=0Ci(x∗)=0,i=1,2,....,Nαi≥0,i=1,2,.....,Nhj(x∗)=0,i=1,2,.....,N
线性支持向量机
线性支持向量机中存在部分样本点不符合约束条件
yi(wTxi+b)≥1
线性可分问题的支持向量机的学习方法, 对线性不可分训练数据是不适用的
解决方法:修改硬间隔最大化 , 转为软间隔最大化
对每个样本点引进一个松弛变量
ξi
,目标函数由原来的
12||w||2
变为
12||w||2+C∑i=1Nξi
C
称为惩罚参数, 一般由应用问题决定,
C
值大时对误分类的惩罚增大,
C
值小时, 对误分类惩罚减小
最小化目标函数包含两层含义:
(1) 使得
12||w||2
尽量小,即间隔尽量大
(2) 同时使得误分类点的个数尽量小
原始问题:
minw,b,ξ12||w||2+C∑i=1Nξis.t.yi(wTxi+b)≥1−ξi,i=1,2,......,Nξi≥0
原始问题的对偶问题:
minα12∑i=1N∑i=1Nαiαjyiyj(xi∗xj)−∑i=1Nαis.t.∑i=1Nαiyi=00≤αi≥C,i=1,2,.....,N
原始最优化问题的拉格朗日函数
L(w,b,ξ,α,μ)=12||w||2+C∑i=1Nξi−∑i=1Nαi(yi(wTxi+b)−1+ξi)−∑i=1Nμiξi其中,αi≥0,μi≥0
对偶问题是拉格朗日函数极大极小问题
(1)
首先求L(w,b,ξ,α,μ)对w,α,ξ的极小值
由:
▽wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0▽bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0▽ξL(w,b,ξ,α,μ)=C−αi−μi=0
得:
w=∑i=1Nαiyixi∑i=1Nαiyi=0C−αi−μi=0
带入原拉格朗日函数:
L(w,b,ξ,α,μ)=−12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)+∑i=1Nαi
(2)求
minw,b,ξL(w,b,ξ,α,μ)对α的极大,即为对偶问题
即原问题:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)+∑i=1Nαis.t.∑i=1Nαiyi=00≤αi≤C,i=1,2,.....,N
该函数转化为极大求极小
minα12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)−∑i=1Nαis.t.∑i=1Nαiyi=00≤αi≤C,i=1,2,.....,N
需要满足KKT条件
yi*f(i) >= 1 and alpha = 0 (outside the boundary)
yi*f(i) == 1 and 0<alpha< C (on the boundary)
yi*f(i) <= 1 and alpha = C (between the boundary)
'''
参考文献
《支持向量机导论》,[美] Nello Cristianini / John Shawe-Taylor 著;
《统计学习方法》,李航著;
《支持向量机通俗导论(理解SVM的三层境界)》,, 作者:July、pluskid ;致谢:白石、JerryLead博客:https://blog.csdn.net/macyang/article/details/38782399/
《关于凸优化的一些简单概念》, ,博客:http://www.cnblogs.com/tornadomeet/p/3300132.html