机器学习(四)——SVM(2)

http://antkillerfarm.github.io/

拉格朗日对偶(续)

如果w不满足约束,也就是 gi(w)>0 hi(w)0 。这时由于 L 函数是无约束函数, αi βi 可以任意取值,因此 ki=1αigi(w) li=1βihi(w) 并没有极值,也就是说 θP(w)=

反之,如果w满足约束,则 ki=1αigi(w) li=1βihi(w) 都为0,因此 θP(w)=f(w)

综上:

θP(w)={f(w),,ww

我们定义:

p=minwθP(w)=minwmaxα,β:αi0L(w,α,β)

下面我们定义对偶函数:

θD(w)=minwL(w,α,β)

这里的 D 代表原始优化问题的对偶优化问题。仿照原始优化问题定义如下:

d=maxα,β:αi0θD(w)=maxα,β:αi0minwL(w,α,β)

这里我们不加证明的给出如下公式:

d=maxα,β:αi0minwL(w,α,β)minwmaxα,β:αi0L(w,α,β)=p

这样的对偶问题被称作拉格朗日对偶(Lagrange duality)。

KKT条件

拉格朗日对偶公式中使

p=d
成立的条件,被称为KKT条件(Karush-Kuhn-Tucker conditions):

wiL(w,α,β)βiL(w,α,β)αigi(w)gi(w)αi=0,i=1,,n=0,i=1,,l=0,i=1,,k0,i=1,,k0,i=1,,k(1)

其中的 w,α,β 表示满足KKT条件的相应变量的取值。条件1也被称为KKT对偶互补条件(KKT dual complementarity condition)。显然这些 w,α,β 既是原始问题的解,也是对偶问题的解。

严格的说,KKT条件是非线性约束优化问题存在最优解的必要条件。这个问题的充分条件比较复杂,这里不做讨论。

注:Harold William Kuhn,1925~2014,美国数学家,普林斯顿大学教授。

Albert William Tucker,1905~1995,加拿大数学家,普林斯顿大学教授。

William Karush,1917~1997,美国数学家,加州州立大学北岭分校教授。(注意,California State University和University of California是不同的学校)

支持向量

针对最优边距分类问题,我们定义:

gi(w)=y(i)(wTx(i)+b)+10

由KKT对偶互补条件可知,如果 αi>0 ,则 gi(w)=0

上图中的实线表示最大边距的分割超平面。由之前对于边距的几何意义的讨论可知,只有离该分界线最近的几个点(即图中的所示的两个x点和一个o点)才会取得约束条件的极值,即 gi(w)=0 。也只有这几个点的 αi>0 ,其余点的 αi=0 。这样的点被称作支持向量(support vectors)。显然支持向量的数量是远远小于样本集的数量的。

为我们的问题构建拉格朗日函数如下:

L(w,b,α)=12w2i=1mαi[y(i)(wTx(i)+b)1](2)

为了求解

θD(α)=minw,bL(w,b,α)

可得:

wL(w,b,α)=wi=1mαiy(i)x(i)=0

w=i=1mαiy(i)x(i)(3)

对b求导可得:

bL(w,b,α)=i=1mαiy(i)=0(4)

把公式3代入公式2,可得:

L(w,b,α)=12w2i=1mαi[y(i)(wTx(i)+b)1]=12wTwi=1mαiy(i)wTx(i)i=1mαiy(i)b+i=1mαi=12wTi=1mαiy(i)x(i)i=1mαiy(i)wTx(i)i=1mαiy(i)b+i=1mαi=12wTi=1mαiy(i)x(i)wTi=1mαiy(i)x(i)i=1mαiy(i)b+i=1mαi=12wTi=1mαiy(i)x(i)bi=1mαiy(i)+i=1mαi=12(i=1mαiy(i)x(i))Ti=1mαiy(i)x(i)bi=1mαiy(i)+i=1mαi=12i=1mαiy(i)(x(i))Ti=1mαiy(i)x(i)bi=1mαiy(i)+i=1mαi=i=1mαi12i,j=1my(i)y(j)αiαj(x(i))Tx(j)bi=1mαiy(i)(5)

我们定义如下内积符号 x,y=xTy ,并将公式4代入公式5可得:

L(w,b,α)=i=1mαi12i,j=1my(i)y(j)αiαjx(i),x(j)

最终我们得到如下对偶优化问题:

maxαs.t.W(α)=i=1mαi12i,j=1my(i)y(j)αiαjx(i),x(j)αi0,i=1,,mi=1mαiy(i)=0

这个对偶问题的求解,留在后面的章节。这里只讨论求解出 α 之后的情况。

首先,根据公式3可求解 w 。然后

b=maxi:y(i)=1wTx(i)+mini:y(i)=1wTx(i)2

除此之外,我们还有:

wTx+b=(i=1mαiy(i)x(i))Tx+b=i=1mαiy(i)x(i),x+b

在之前的讨论中,我们已经指出只有支持向量对应的 αi 才为非零值,因此:

wTx+b=iSVαiy(i)x(i),x+b

从上式可以看出,在空间维数比较高的情况下,SVM(support vector machines)可以有效降低计算量。

核函数

假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。那么首先需要将特征x扩展到三维 (x,x2,x3) ,然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。

映射函数记作 ϕ(x) ,在这个例子中

ϕ(x)=xx2x3

有的时候,我们希望将特征映射后的特征,而不是最初的特征,应用于SVM分类。这样做的情况,除了上面提到的拟合问题之外,还在于样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。如下图所示:

为此,我们给出核函数(Kernel)的形式化定义:

K(x,z)=ϕ(x)Tϕ(z)

之所以是形式化定义,这主要在于我们并不利用 ϕ(x) 来计算 K(x,z) ,而是给定K(x,z),来倒推 ϕ(x) ,从而建立 ϕ(x) K(x,z) 之间的对应关系。

例如:

K(x,z)=(xTz)2=(i=1nxizi)(i=1nxizi)=i=1nj=1nxixjzizj=i,j=1n(xixj)(zizj)

根据上式可得:(这里假设 n=3

ϕ(x)=x1x1x1x2x1x3x2x1x2x2x2x3x3x1x3x2x3x3

可以看出 ϕ(x) 的计算复杂度是 O(n2) ,而 (xTz)2 的计算复杂度是 O(n)

下面我们讨论其他几种常用核函数和它对应的 ϕ(x)

K(x,z)=(xTz+c)2=i,j=1n(xixj)(zizj)+i=1n(2cxi)(2czi)+c2

同样的:( n=3

ϕ(x)=x1x1x1x2x1x3x2x1x2x2x2x3x3x1x3x2x3x32cx12cx22cx3c

更一般的,对于 K(x,z)=(xTz+c)d ,其对应的 ϕ(x) (n+dd) 维向量。

我们也可以从另外的角度观察 K(x,z)=ϕ(x)Tϕ(z) 。从内积的几何意义来看,如果 ϕ(x) ϕ(z) 夹角越小,则 K(x,z) 的值越大;反之,如果 ϕ(x) ϕ(z) 的夹角越接近正交,则 K(x,z) 的值越小。因此, K(x,z) 也叫做 ϕ(x) ϕ(z) 的余弦相似度。

讨论另一个核函数:

K(x,z)=exp(xz22σ2)

这个核函数被称为高斯核函数(Gaussian kernel),对应的 ϕ(x) 是个无限维的向量。

注: (a+b)n 是个p为0.5的二项分布,由棣莫佛-拉普拉斯定理(de Moivre–Laplace theorem)可知,当 n 时,它的极限是正态分布。

核函数的有效性

如果对于给定的核函数K,存在一个特征映射 ϕ ,使得 K(x,z)=ϕ(x)Tϕ(z) ,则称K为有效核函数。

我们首先假设K为有效核函数,来看看它有什么性质。假设有m个样本 {x(1),,x(m)} ,我们定义 m×m 维的矩阵k: Kij=K(xi,xj) 。这个矩阵被称为核矩阵(Kernel matrix)。

Kij=K(xi,xj)=ϕ(x(i))Tϕ(x(j))=ϕ(x(j))Tϕ(x(i))=K(xj,xi)=Kji

如果我们用 ϕk(x) 表示 ϕ(x) 第k个元素的话,则对于任意向量z:

zTKz=ijziKijzj=ijziϕ(x(i))Tϕ(x(j))zj=ijzikϕk(x(i))ϕk(x(j))zj=kijziϕk(x(i))ϕk(x(j))zj=k(iziϕk(x(i)))20

即K矩阵是半正定矩阵。事实上,K矩阵是对称半正定矩阵,不仅是K函数有效的必要条件,也是它的充分条件。相关的证明是由James Mercer给出的,被称为Mercer定理(Mercer Theorem)。

注:James Mercer,1883-1932,英国数学家,英国皇家学会会员,毕业于剑桥大学。曾服役于英国皇家海军,参加了日德兰海战。

Mercer定理给出了不用找到 ϕ(x) ,而判定 K(x,z) 是否有效的方法。因此寻找 ϕ(x) 的步骤就可以跳过了,直接使用 K(x,z) 替换上面公式中的 x,z 即可。例如:

wTx+b=iSVαiy(i)x(i),x+b=iSVαiy(i)K(x(i),x)+b(6)

核函数不仅仅用在SVM上,但凡在一个算法中出现了 x,z ,我们都可以使用 K(x,z) 去替换,这可以很好地改善我们算法的效率。因此,核函数更多的被看作是一种技巧而非理论(kernel trick)。

规则化和不可分情况处理

我们之前讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,我们可以尝试使用核函数来将特征映射到高维,这样很可能就可分了。然而,映射后我们也不能100%保证可分。那怎么办呢,我们需要将模型进行调整,以保证在不可分的情况下,也能够尽可能地找出分隔超平面。

这里写图片描述

上面的右图中可以看到一个离群点(可能是噪声),它会造成超平面的移动,从而导致边距缩小,可见以前的模型对噪声非常敏感。再有甚者,如果离群点在另外一个类中,那么这时候就是线性不可分的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值