Generate...|

园龄:粉丝:关注:

2023-01-09 00:32阅读: 27评论: 0推荐: 0

支持向量机 SVM

支持向量机

支持向量分类

线性可分数据和硬间隔

支持向量机的学习策略为间隔(margin)最大化,间隔的测量需要在特征空间中选择。

首先考虑线性可分的数据,输入为 xx,特征为 ΦΦ(xx),标签为 y{1,1}。数据的判定函数为

f(xx)=wwTΦΦ(xx)+b

一般来说,分离这种数据的超平面有无穷多个,而在支持向量机中,使用间隔最大化来选择一个唯一的超平面。

在特征空间中,特征可以被分解为位于分界超平面上的一部分 ΦΦ0 (满足 wwTΦΦ0+b=0)和垂直于分界超平面(也就是平行于 ww)的另一部分 rww/ww2。如果选择距离超平面的欧式距离最短的点的距离 yr 为间隔,则间隔计算方法为

ΦΦ(xx)=ΦΦ0(xx)+rwwww2wwTΦΦ(xx)=wwTΦΦ0(xx)+rwwTwwww2=b+rww2r=wwTΦΦ(xx)+bww2margin(ww,b):=min(xx,y)(X,Y)yr=min(xx,y)(X,Y)ywwTΦΦ(xx)+bww2=1ww2min(xx,y)(X,Y)y(wwTΦΦ(xx)+b)

因为如果没有误分类出现,那么负类计算 r=wwTΦΦ(xx)+b 得到的是一个负值,通过乘上 y 来将正类和负类的距离设置为非负值的。取 y^:=yr=y(wwTΦΦ(xx)+b)。间隔最大化的思想变为公式就是得到一个间隔 M

ww,b:=argmaxww,b Ms.t.margin(ww,b)M=argmaxww,b Ms.t.1ww2min(xx,y)(X,Y)y^M=MM/ww2argmaxww,bMww2s.t.min(xx,y)(X,Y)y^M

从公式可以看出,如果 ww,b 乘以一个系数 c,则 y^ 也相应的变为 c 倍,ww2 也变为 c 倍,二者抵消,因此 ww,b 不会发生改变。也就是说

ww,b=argmaxww,bMww2s.t.min(xx,y)(X,Y)y^M=argmaxcww,cbMcww2s.t.cmin(xx,y)(X,Y)y^M=argmaxww,bMcww2s.t.cmin(xx,y)(X,Y)y^M

c=M,使 miny^1(即 |r|=1,固定间隔为 margin(ww,b)=ww21,只与权重相关)得到

ww,b=argmaxww,b1ww2s.t.miny^1=argminww,b ww2s.t.miny^1=argminww,b12ww22s.t.y^1(xx,y)(X,Y)

如果将 miny^ 分解,则从一个约束变为了多个约束,可以使用拉格朗日函数将约束与问题结合,取 |X| 为样本的数量。因为是求优化问题的下界,所以使用拉格朗日乘子 λi 将问题转为等价的 minmax 问题。

L(ww,b,λλ):=12ww22i=1|X|λi(y^i1)=12ww22i=1|X|λi[y(wwTΦΦ(xx)+b)1]ww,b=argminww,bmaxλi0L(ww,b,λλ)

如果 y^ 不满足约束(即 y^<1),则 λ(y^1),必定不会是解;相反如果满足约束,则 L(ww,b,λλ)=12ww22。由于 L 的第一项为 ww 的二次项,第二项为 ww,b 的一次项,所以接下来通过拉格朗日的强对偶定理对问题进行进一步的转换。

minww,bmaxλi0L(ww,b,λλ)=maxλi0minww,bL(ww,b,λλ)

于是对 L(ww,b,λλ) 求导,求极小值并代入原方程

wwL(ww,b,λλ)=wwi|X|λiyiΦΦ(xxi)=00bL(ww,b,λλ)=i|X|λiyi=0L(ww,b,λλ)=12ww22i|X|λi[y(wwTΦΦ(xx)+b)1]=i|X|λi12wwTww=i|X|λi12i|X|j|X|λiλjyiyjΦΦ(xxi)TΦΦ(xxj)λλ=argmaxλλ L(ww,b,λλ),s.t. λi0,i=1|X|λiyi=0=argmaxλλ{i=1|X|λi12i|X|j|X|λiλjyiyjΦΦ(xxi)TΦΦ(xxj)} s.t. λi0,i|X|λiyi=0

虽然公式已经变形了很多,但它仍然和原始的 L(ww,b,λλ)=12ww22i|X|λi(y^i1) 是等价的。问题由求解 ww,b 变为了求解 λλ,减少了一个变量,而通过核技巧,还可以继续简化这一表达式。

λi0 时,则有 y^i=1,即设置的间隔,相应的点就是离超平面最近的点,这些点就是支持向量机中的支持向量。将这些点设为 (xx,y),并有这些点组成的集合 S。求得最优解 λλ 后得出 ww,b

ww=i=1|X|λiyiΦΦ(xxi)b=ywwTΦΦ(xx) or 1|S|(xxi,yi)SyiwwTΦΦ(xxi)f(xx)=wwTΦΦ(xx)+b=i=1|X|λiyiΦΦ(xxi)TΦΦ(xx)+b=(xxi,yi)SλiyiΦΦ(xxi)TΦΦ(xx)+b

(xxi,yi)S 说明,新的点将会与每个支持向量进行对比从而决定这个点的类,且除了支持向量之外的的点都不会被考虑,符合支持向量的含义;而 λi 代表着每个支持向量对新的点分类的权重。

弱对偶:

maxyminxf(x,y)minxmaxyf(x,y)

强对偶:

原始问题

minxXRnf(x)s.t.ci(x)0,i|I|s.t.di(x)=0,i|E|

对偶问题

L(x,αα,ββ)=f(x)+i=1|I|αici(x)+i=1|E|βidi(x),s.t.αi0

强对偶性需要 f(x),ci(x) 为凸函数,di(x) 为仿射函数,且 xi|I|[ci(x)<0],即 ci(x) 严格可行。

maxαα,ββ:αi0minxL(x,αα,ββ)=minxmaxαα,ββ:αi0L(x,αα,ββ)

非线性可分数据集和软间隔

通过引入一个松弛变量 ξξ,创建软间隔来应对非线性可分的数据,相应的权重和偏置的最优化问题变为

ww,b=argminww,b12ww22s.t.y^1(xx,y)(X,Y)=add ξξargminww,bminξi0{12ww22+Ci|X|ξi}s.t.y^i1ξi

添加了松弛变量后,可以将误分类的情况考虑进去。可以考虑 y^iξi 的影响,比如在超平面上的情况 y^i=0 和误分类的情况 y^i<0

y^i1minξi=0y^i=0minξi=1y^i<0minξi=1y^i

如果 0<y^i<1,此时实际上并没有出现误分类的情况,可以通过等比例增大 ww,b 来增大到 y^i0,也可以为其添加相应的松弛变量 0<ξi<1,而这两者都与目标优化问题相悖,究竟采用哪种方法要考虑到作为松弛变量的系数 C,也就是对误分类的惩罚系数。更大的 C 强调训练正确分类(减小 ξi),更小的 C 强调减小 ww

重新创建拉格朗日函数,求导。

L(ww,b,ξξ,λλ,μμ)=12ww22+Ci|X|ξii|X|λi[y(wwTΦΦ(xx)+b)1+ξi]i|X|μiξiwwL(ww,b,ξξ,λλ,μμ)=wwi|X|λiyiΦΦ(xxi)=00bL(ww,b,ξξ,λλ,μμ)=i|X|λiyi=0ξξL(ww,b,ξξ,λλ,μμ)=Cλλμμ=0L(ww,b,ξξ,λλ,μμ)=i|X|λi12i|X|j|X|λiλjyiyjΦΦ(xxi)TΦΦ(xxj)λλ=argmaxλλ{i|X|λi12i|X|j|X|λiλjyiyjΦΦ(xxi)TΦΦ(xxj)} s.t. 0λiC,i|X|λiyi=0

从结果上来看,λλ 的约束添加了一条 λiC,除此之外与硬间隔的版本相同,支持向量的条件不变(λi>0)但从满足 y^i=1 变为满足 y^i1

核技巧

λλ=argmaxλλ{i|X|λi12i|X|j|X|λiλjyiyjΦΦ(xxi)TΦΦ(xxj)} s.t. 0λiC,i|X|λiyi=0b=1|S|j|S|[yji|X|λiyiΦΦ(xxi)TΦΦ(xxj)]f(xx)=i|S|λiyiΦΦ(xxi)TΦΦ(xx)+b

观察上面三个公式,可以看到三者的计算都需要特征空间的内积 ΦΦ(xxi)TΦΦ(xxj)。因此舍弃直接计算特征矩阵 ΦΦ=[ΦΦ(xx1),ΦΦ(xx2),,ΦΦ(xxN)]T 再计算内积,考虑核矩阵 KK=ΦΦΦΦT 和核函数 K(xxi,xxj)=KKi,j=ΦΦ(xxi)TΦΦ(xxj)K:X×XR。因为特征空间一般远大于输入空间,如果能跳过特征空间的计算,直接获得核函数的值,那么计算量会大大减小。此时不是在计算数据的特征,而是两个数据之间的关系。

核函数

考虑如何构建核函数。显然 KK 为对称的半正定矩阵(xxTKKxx0,xxRN),也是关于 ΦΦ 行向量的 Gram 矩阵。而反过来对于任何一个对称的半正定的关于 K(xxi,xxj) 的 Gram 矩阵,也必定可以构造某个从欧几里得空间下的输入空间到希尔伯特空间下的特征空间的函数 ΦΦ:XH, where XRN 使得 KK=ΦΦΦΦT。保证 KK 作为 Gram 矩阵的半正定性,可以导出如下构建方法(证明略):

如果存在两个核函数 K1,K2,那么可以根据如下规则构建新的核函数

K(xxi,xxj)=cK1(xxi,xxj),c>0K(xxi,xxj)=K1(xxi,xxj)+K2(xxi,xxj)K(xxi,xxj)=K1(xxi,xxj)K2(xxi,xxj)K(xxi,xxj)=f(xxi)K1(xxi,xxj)f(xxj)

组合这些规则,可以得到核函数的任意(包括无穷)线性组合 k=0αkK。如果取 αk=1/k!,则 k=0αkK=expK,可以发现与其相对应的特征空间达到了无穷维。而根据泰勒级数展开,实际上可以获得绝大多数基本函数,但其中最基本的 K 还是两个向量的某种线性或非线性转换的内积。其中 f(xx) 也赋予了核函数选择很大的自由性,f(xx) 可以是选择向量的某一维,也可以是其他复杂的函数。

由于选择核函数的自由性,所以选择和设计核需要观察数据的特征。比较常见的高斯核 exp(γxxixxj22) 实际上等同于 1,xxi22,xxi24, 这无穷多个核的线性组合,只不过每个核的权重为 2/k!,下降得比较快。分解高斯核,不失一般性地令 γ=1,可以看到特征空间确实是无限维的。

exp(xxixxj22)=exp(xxiTxxixxjTxxj+2xxiTxxj)=exp(2xxiTxxj)expxxi22expxxj22=k=0(2xxiTxxj)k/k!expxxi22expxxj22=k=0(2xxiT)kk!expxxi22(2xxj)kk!expxxj22=ΦΦ(xxi)TΦΦ(xxj),ΦΦ(xx)=exp(xx22)[200!xx20211!xx22222!xx24]

只有维数够多,理论上来说甚至可以做的让每个维中都只有一个数据为正类,其余数据为负类,使得所有数据都是线性可分的。

核函数是基函数内积的线性组合这点很重要,K(xxi,xxj)=αΦΦ(xxi)TΦΦ(xxj)

多分类

在应对多分类的情况时与逻辑回归 Logistic Regression 有着相同的两种策略,one-vs-one 和 one-vs-rest,再选择其中 f(xx) 最大的一个类即可。

与岭回归的关系

软间隔的优化问题

minww,b,ξξ{12ww22+Ci|X|ξi} s.t.y^i1ξi,ξi0

实际上等价于

minww,b{i|X|max[0,1y^i]+λww22}

是常见的损失函数加权重惩罚的形式,不过这里损失函数为 max[0,1y^],其中 y^=y(wwTΦΦ(xx)+b),只有支持向量才会被损失函数计算到。

比较之下,岭回归的损失函数为 [ywwTΦΦ(xx)b]2

  • y=1max[0,1wwTΦΦ(xx)b][1wwTΦΦ(xx)b]2
  • y=1max[0,1+wwTΦΦ(xx)+b][1+wwTΦΦ(xx)+b]2

岭回归更加平缓,软间隔更加陡峭。对于误分类情况不多的情况,软间隔表现得更好;反之,岭回归会表现得更好。

总结

从支持向量机和岭回归的对比可以看出,支持向量机的结构实际上是比较简单的。对于支持向量机,需要学习的点在于

  • 通过拉格朗日函数和对偶问题解决最优化问题的方法;
  • 具有普遍适用性的核技巧和核函数。

本文作者:violeshnv

本文链接:https://www.cnblogs.com/violeshnv/p/17035840.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Violeshnv  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 とおいよびごえ 凋叶棕
  2. 2 かぜのねいろ 凋叶棕
  3. 3 Milky Way Train 流派未階堂
  4. 4 nostalgia 流派未階堂
  5. 5 桜花繚乱 はちみつれもん
  6. 6 胡蝶之夢 はちみつれもん
  7. 7 色は散りゆく はちみつれもん
  8. 8 暮色蒼然 はちみつれもん
  9. 9 追想、桜ノ國 はちみつれもん
  10. 10 意にそぐわぬリターニー 凋叶棕
かぜのねいろ - 凋叶棕
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.