一、线性可分支持向量机
定义:给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为:
以及相应的分类决策函数:
称为线性可分支持向量机。
SVM的分类决策函数和感知机决策函数形式很类似,但是求得的超平面不一样。
1. 函数间隔和几何间隔
函数间隔是人为定义的一个间隔度量,确定的点A到指定超平面的函数间隔不唯一;几何间隔是客观存在的一个间隔度量,确定的点A到指定超平面的几何间隔是唯一的,几何间隔的绝对值实际上就是点到超平面之间的距离,几何间隔的符号表明确定的点A是否被指定的超平面正确分类。
函数间隔定义:对于给定的训练数据集
T
和超平面
定义超平面 (w,b) 关于训练数据 T 的函数间隔为超平面
几何间隔定义:对于给定的训练数据集 T 和超平面
定义超平面 (w,b) 关于训练数据 T 的几何间隔为超平面
函数间隔和几何间隔关系: γi=γˆi∥w∥ , γ=γˆ∥w∥ 。
两种间隔都表示分类预测的正确性以及确信度。两种间隔若为正,表明分类正确,值越大,正确的确信度越大;若为负,表明分类错误,值越小,分错的程度越大。
2. 学习算法
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对于线性可分的训练数据集,几何间隔最大的分离超平面是唯一的,这里的间隔最大化又称为硬间隔最大化。
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。即不仅将正负实例点分开,而且对最难分的实例点也有足够大的确信度将它们分开,这样的超平面对未知的新实例也有很好的分类预测能力。
2.1 使用最大间隔构造约束最优化问题
SVM的学习即求出超平面的参数
w
和
上式中的目标函数的意义是求在几何间隔 γ 取到最大值时 w 和
利用函数间隔和几何间隔之间的关系可以直接将上面的最优化问题转化为:
函数间隔 γˆ 的取值并不影响最优化问题的解。上式的最优化问题是求几何间隔 γˆ∥w∥ 取最大值时 w 和
上式是一个凸二次规划问题。求出上式的解 w∗ 和 b∗ ,就得到了分离超平面 w∗⋅x+b∗=0 和分类决策函数 f(x)=sign(w∗⋅x+b∗) 。当前需要解决的重点问题是求出上式最优化问题的解 w∗ 和 b∗ ,上式的限制条件有 N 个,每一个样本都对应着一个限制条件。
凸优化问题是指约束最优化问题:
minwf(w)s.t.gi(w)hi(w)≤0,=0,i=1,2,3…,ki=1,2,3…,l
其中,目标函数 f(w) 和约束函数 gi(w) 都是 Rn 上的连续可微的凸函数,约束函数 hi(w) 是 Rn 上的仿射函数(一次函数,满足 f(x)=a⋅x+b )。当目标函数 f(w) 是二次函数且约束函数 gi(w) 是仿射函数时,上式凸优化问题成为凸二次规划问题。2.2 使用对偶算法求解约束最优化问题
将公式 (7.1) 所表示的最优化问题作为原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解 w∗ 和 b∗ ,这就是线性可分支持向量机的对偶算法,可以这样做是因为对偶问题更容易解决(再理解下)。
首先构建拉格朗日函数,这样可以将约束问题转化成无约束问题。将公式 (7.1) 中的约束条件改为标准形式 1−yi(w⋅xi+b)≤0 ,对每一个不等式约束引进拉格朗日乘子 αi≥0,i=1,2,⋯,N ,得到拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi(7.2)
其中, α=(α1,α2,⋯,αN)T 为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题是极小极大问题 minw,bmaxαL(w,b,α) ,其对偶问题是极大极小问题 maxαminw,bL(w,b,α) 。为了得到对偶问题的解,需要先求 L(w,b,α) 对 w,b 的极小,再求对 α 的极大。(1)求 minw,bL(w,b,α)
将公式 (7.2) 的拉格朗日函数分别对 w,b 求偏导并令其为0,求出 w,b 的解(这里是对函数求极值,因为只有两个未知量 w,b ,可以利用普通求偏导来解决,注意 w 是一个向量)。
∇wL(w,b,α)=w−∑i=1Nαiyixi=0∇bL(w,b,α)=∑i=1Nαiyi=0
由上式可得:
⎧⎩⎨⎪⎪⎪⎪⎪⎪w=∑i=1Nαiyixi∑i=1Nαiyi=0(7.3)
当前的几个变量值域分别为: xi∈Rn , yi∈{+1,−1} , αi≥0 , w∈Rn 。利用以上结论 (7.3) 对拉格朗日函数 (7.2) 进行化简:
L(w,b,α)=12∥w∥2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi=12w⋅w−∑i=1Nαiyi(w⋅xi)−∑i=1Nαiyib+∑i=1Nαi=12w⋅∑i=1Nαiyixi−w⋅∑i=1Nαiyixi−b∑i=1Nαiyi+∑i=1Nαi=−12w⋅∑i=1Nαiyixi−b∗0+∑i=1Nαi=−12∑j=1Nαjyjxj⋅∑i=1Nαiyixi−b∗0+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
即有:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi(7.4)(2)求 minw,bL(w,b,α) 对 α 的极大
即要解决如下的最优化问题:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαis.t.∑i=1Nαiyiαi=0≥0,i=1,2,⋯,N
将目标函数由求极大转换成求极小,得到如下等价的的最优化问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t.∑i=1Nαiyiαi=0≥0,i=1,2,⋯,N(7.5)
(这里不清楚,看完拉格朗日后再补充下。考虑原始问题 (7.1) 和对偶最优化问题 (7.5) 。目的是为了求解原始问题,可以找到对偶问题,对偶问题更加容易解决,解决对偶问题后也就解决了原始问题。根据拉格朗日对偶性中的定理2,原始问题和对偶问题是强对偶问题,最优值是相等的。但是求解原始问题为什么可以转换为求解对偶问题???求解原始问题是求解 w∗ ,求解对偶问题是求解 α∗,β∗ ,两者如何转换?)
对线性可分训练数据集,假设对偶最优化问题 (7.5) 对 α 的解为 α∗=(α∗1,α∗2,⋯,α∗N) ,则可以由 α∗ 求得原始最优化问题 (7.1) 对 (w,b) 的解 (w∗,b∗) ,有如下的定理:设 α∗=(α∗1,α∗2,⋯,α∗N) 是对偶最优化问题 (7.5) 的解,则存在下标 j ,使得
α∗j>0 ,并可按下式求得原始最优化问题 (7.1) 的解 (w∗,b∗) :
⎧⎩⎨⎪⎪⎪⎪⎪⎪w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nα∗iyi(xi⋅xj)(7.6)
证明:
原始问题和对偶问题是强对偶关系,它们的解满足 KKT条件,即有:
∇wL(w∗,b∗,α∗)=w∗−∑i=1Nα∗iyixi=0α∗i(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯,Nα∗i≥0,i=1,2,⋯,N
至少有一个 α∗j>0 (否则 w∗=0 ,产生矛盾),对此 j 有:yj(w∗⋅xj+b∗)−1=0 ,注意到 y2j=1 ,则有:
b∗=yj−w∗⋅xj
则可得:
⎧⎩⎨⎪⎪⎪⎪⎪⎪w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nα∗iyi(xi⋅xj)根据以上的定理可以得到SVM的分离超平面和分类决策函数:
⎧⎩⎨⎪⎪⎪⎪⎪⎪∑i=1Nα∗iyi(xi⋅x)+b∗=0f(x)=sign(∑i=1Nα∗iyi(xi⋅x)+b∗)(7.7)
综合以上的分析,对于给定的线性可分训练数据集,首先求对偶问题 (7.5) 的解 α∗ ;再利用 (7.5) 求得原始问题 (7.1) 的解 (w∗,b∗) ,从而得到分离超平面及分类决策函数 (7.7) 。
对于新点 x 的预测,只需要计算x 与训练数据点的內积即可,并且只需要计算和 α∗i>0 对应的样本点 xi 的內积, α∗i>0 对应的样本点就是支持向量,数目很少。
当前还需要解决的问题是求对偶最优化问题 (7.5) 的解 α∗ , α∗ 向量中分量的个数等于样本的个数 N ,使用SMO算法求解该问题。3. 支持向量
支持向量有两种解释,一种是直观的解释,一种是和对偶最优化问题的解
α∗ 联系起来了。3.1 支持向量和间隔边界
在线性可分的情况下,训练数据集中的样本点与分离超平面距离最近的样本点的实例称为支持向量。支持向量是使原始约束最优化问题 (7.1) 的约束条件式等号成立的点,即:
yi(w⋅xi+b)−1=0
对于 yi=+1 的正例点,支持向量在超平面 H1 上: H1:w⋅x+b=1
对于 yi=−1 的负例点,支持向量在超平面 H2 上: H1:w⋅x+b=−1
H1 和 H2 上的点就是支持向量。 H1 和 H2 平行,且没有实例点落在它们中间,在 H1 和 H2 之间形成了一条长带,分离超平面与它们平行且位于它们中央。长带的宽度,即 H1 和 H2 之间的距离称为间隔,间隔依赖于分离超平面的法向量 w ,等于2∥w∥ 。如果 H1 和 H2 均平行后移,分离超平面不会发生任何改变,但是其参数 (w,b) 会按比例改变,导致 2∥w∥ 改变,即间隔发生了变化。
在决定分离超平面时,只有支持向量起作用,其他实例点无任何作用,这也是该模型被称为支持向量机的原因。支持向量的个数一般很少,所以支持向量机是由很少的“重要的”训练样本确定。3.2 支持向量和对偶最优化问题的解 α∗
在线性可分支持向量机中,由式 (7.6) 可知, (w∗,b∗) 只依赖于训练数据中对应于 α∗i>0 的样本点 (xi,yi) ,而其他样本点对 (w∗,b∗) 没有影响,将训练数据中对应于 α∗i>0 的实例点 (xi,yi) 称为支持向量。
支持向量一定在间隔边界上,由KKT互补条件可知:
α∗i(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯,N
对应于 α∗i>0 的实例点 (xi,yi) ,则有:
yi(w∗⋅xi+b∗)−1=0
即 (xi,yi) 一定在间隔边界上,和前面的的支持向量定义是一致的。
同时可以得出,非支持向量对应的 α∗i=0 ,因为 yi(w∗⋅xi+b∗)−1>0 ,故 α∗i=0 。