支持向量机(三)——深入理解核函数,软间隔SVM

本章我们来介绍一下对核函数的理解。在先讲核函数之前,我们先来看一下非线性分类问题。

1.非线性分类问题

简要概述之前我们讲到的都是可以直接通过一条直线将样本分成两类,现在的问题是数据样本无法用一条直线线性区分正负样本,如图所示:

支持向量机(三)——深入理解核函数,软间隔SVM_第1张图片
但是我们可以用一条椭圆曲线来将他们正确区分,如图:
支持向量机(三)——深入理解核函数,软间隔SVM_第2张图片
我们可以发现,非线性问题往往不好求解,所以我们希望能用线性问题来解决。采取的方法是进行一个非线性变换,即将非线性问题变换为线性问题,通过解变换后的线性问题来间接求解原来的非线性问题。 如下图所示,左边的线性不可分问题转换到高维空间中就变成了线性可分的问题。
支持向量机(三)——深入理解核函数,软间隔SVM_第3张图片
假设我们要变换到的空间为Z,原空间为 χ χ ,那么从原空间到新空间的变换(映射): Z=Φ(χ) Z = Φ ( χ ) ,则原空间中的点相对应地变换到新空间中,原空间中的椭圆就可以变换成新空间中的直线。因此非线性分类问题的解决方法为首先将原空间的特征映射到新空间中;然后用线性分类方法从训练数据中学习到分类模型。因此支持向量机中核函数就有此作用。

2.核函数

2.1核函数定义

例如在Ng之前将线性回归的篇幅中,有一个预测房价的问题,输入x是房子的面积,假设我们用三次函数拟合数据,这是一个非线性的问题,用 ϕ ϕ 表示特征映射,会得到:

ϕ(x)=xx2x3 ϕ ( x ) = [ x x 2 x 3 ]

我们希望用 ϕ ϕ 即特征映射后的特征来应用于SVM分类,为什么要用映射后的特征而不是最初的特征,原因是1.希望用更过的特征来更好的拟合。2.样例中如果有线性不可分的情况,将特征映射到高维空间后,往往就可分了。
我们来看看核函数的定义(参考李航《统计学习方法》中的定义):

支持向量机(三)——深入理解核函数,软间隔SVM_第4张图片
由定义中我们可以看到核函数为另外两个函数的内积,如果按照先求映射函数 Φ(χ) Φ ( χ ) ,然后计算 Φ(χ)Φ(z) Φ ( χ ) ∗ Φ ( z ) ,这样的计算效率非常低。例如最初的特征是n维的,我们将其映射到 n2 n 2 ,然后再计算,需要 O(n2) O ( n 2 ) 的时间。因此,核函数的想法是,在学习与预测中值定义核函数K(x,z),而不显示地定义映射函数。因为通常计算K(x,z)比较容易。 ϕ ϕ 是输入空间到特征空间的映射,特征空间一般是高维的,甚至是无限维。
来看一个例子假设x,z∈R, K(x,z)=(xTz)2 K ( x , z ) = ( x T z ) 2 ,即:
支持向量机(三)——深入理解核函数,软间隔SVM_第5张图片
我们可以发现,只用计算原始特征x和z的内积的平方,时间复杂度仅为O(n),时间更短了,这就是核函数的优势。假设n=3时,根据上面公式可得到:
支持向量机(三)——深入理解核函数,软间隔SVM_第6张图片

2.2核函数的表示形式

核函数通常的表达形式为 K(x,z)=(xTz+c)2 K ( x , z ) = ( x T z + c ) 2 ,对应的映射后特征维度为 [n+dn] [ n + d n ] ,(个人也不能理解)
此外还有另外一种核函数的表达方式: K(x,z)=exp(||xz||22σ2) K ( x , z ) = e x p ( − | | x − z | | 2 2 σ 2 ) 这种表达方式考虑x和z的相似性,如果x和z很相近,即分子接近0,那么核函数值接近1,如果x和z相差很远,那么核函数约等于0。这个形式类似高斯分布,因此称为高斯核函数,也就做径向基函数(RBF)。它能够把原始特征映射到无穷维。
所以说当我们遇到一个新的机器学习问题,如果我们希望学习算法认为x和z是相似的,那么我们可以使 K(x,z) K ( x , z ) 取一个较大的值;如果我们希望学习算法认为x和z不一样,那么我们可以使 K(x,z) K ( x , z ) 取一个较小的值(注意: K(x,z) K ( x , z ) 是内积,大于0)。
当然核函数还有其他的表现形式,那么如何判定一个选择的核函数是否有效呢?

2.3核函数有效性判定

我们通常假设K是一个合理的核函数,考虑对于一个有限集 m=x(1),...,x(m) m = x ( 1 ) , . . . , x ( m ) ,再定义一个 mm m ∗ m 的矩阵K使得 Ki,j=K(x(i),x(j)) K i , j = K ( x ( i ) , x ( j ) ) ,将K叫做核矩阵。则有:

这里写图片描述
可以发现矩阵K应该是个对称阵。让我们继续遐想一下,根据是对称阵这个形式,我们用 ϕk(x) ϕ k ( x ) 表示 ϕ(x) ϕ ( x ) 的第k个元素,这时对于任意一个m维向量z:
支持向量机(三)——深入理解核函数,软间隔SVM_第7张图片
从这个推导结果可以看出来,如果K是一个有效的核函数,那么 zTKz0 z T K z ≥ 0 ,即在训练集上得到的核函数矩阵应该是半正定的( K0 K ≥ 0 ),因此我们得出了这样一个判定核函数有效的方法—即核函数矩阵K是半正定的,这是一个必要条件,但根据Mercer定理我们也可以判断它是一个充分条件。

3.软间隔SVM

注意,我们之前讨论的都是建立在样例线性可分的假设下,当样例线性不可分时,我们可以尝试使用核函数将原始特征映射到更高维度的新空间中,再将它线性划分。但是,如果映射后的特征我们也不能保证100%可分,那怎么办呢?这就需要我们将模型调整,保证在不可分的情况下,我们也能找到分割超平面。
先看这张图:

支持向量机(三)——深入理解核函数,软间隔SVM_第8张图片
在图中我们发现一个离群点(坏汤的老鼠)造成了超平面的移动,间隔缩小了,可以看到模型对噪声非常敏感。如果这个离群点在另外一个类中时,那我们的模型就线性不可分了。
这时候我们就要给原来的模型加一些条件,即允许这些个别离群点违背限制条件(函数间隔大于),设计的新模型如图:
支持向量机(三)——深入理解核函数,软间隔SVM_第9张图片
该模型称为软间隔,引入的非负参数 ξi ξ i (松弛变量),引入了这个参数后,可以发现允许一些样本点的函数间隔小于1,即在最大间隔区间内,或者函数间隔为负,即样本点在另一个类的区域内。
平白无故的放宽了条件,总是要讨回一点债的。因此我们将目标函数进行了调整,用来对离群点进行惩罚,目标函数后面加上的 Cmi=1ξi C ∑ i = 1 m ξ i ,表示离群点越多,目标函数值越大,而我们要求的是尽可能小的目标函数值,也就是说我在选择超平面时,要选择最合适的超平面使离群点的数目最小,这样目标函数的值就会相对离群点多的时候更小。C是离群点的权重,C越大表明离群点对目标函数影响越大,所以我们不希望超平面分离出更多的离群点。

这个模型是原始问题,是一个凸优化问题,因而在关于(w,b, ξ ξ )的解释存在的。可以证明w的解释唯一的,但b的解不唯一,而是在一个区间。模型修改后,对应的拉格朗日公式为:
这里写图片描述
这里的 αi α i γi γ i 分别是拉格朗日乘子,原问题的对偶问题为 d=maxα,β:αi0minwι(ω,b,α) d ∗ = m a x α , β : α i ≥ 0 m i n w ι ( ω , b , α ) ,下面是《统计学习方法》中的推荐对偶问题的过程,首先求L(w,b,ξ,α,μ)对w,b,ξ极小:
支持向量机(三)——深入理解核函数,软间隔SVM_第10张图片
将上式入原式得:
这里写图片描述
再对 minL(w,b,ξ,α,μ) m i n L ( w , b , ξ , α , μ ) 求α的极大,即得对偶问题:
支持向量机(三)——深入理解核函数,软间隔SVM_第11张图片
将约束函数整理一下得到最后的对偶问题形式:
支持向量机(三)——深入理解核函数,软间隔SVM_第12张图片
我们发现模型与之前的模型相比多了一个 αi α i 小于C的限制,最后我们来看看KKT条件发生了怎样的变化:
这里写图片描述
分析一下,在间隔边界外的点 αi=0 α i = 0 ,离群点前面的系数为C,只有支持向量 αi α i 不为0,所以软间隔的支持向量可在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。若 αi<C α i < C ,由KKT条件知 ξi ξ i =0,表示支持向量 xi x i 恰好在间隔边界上; αi=C α i = C 0<ξi<1 0 < ξ i < 1 ,则也是分类正确, xi x i 在间隔边界和分离超平面之间;若 αi=C α i = C ξi ξ i =1,则 xi x i 在分离超平面上;若 αi=C α i = C ξi ξ i >1,则 xi x i 位于超平面误分类的一侧。

4.总结

下一章我们将会介绍坐标上升,并采用SMO优化算法来解决我们一直悬而未解的问题——对偶函数最后的优化问题:

支持向量机(三)——深入理解核函数,软间隔SVM_第13张图片

你可能感兴趣的:(机器学习)