机器学习 第6章-支持向量机
机器学习 第6章-支持向量机
6.1 间隔与支持向量
给定训练样本集D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}D=\{ (x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i∈\{-1,+1\}D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。但能将训练样本分开的划分超平面可能有很多,如图6.1所示,我们应该努力去找到哪一个呢?

所以我们的想法应该是去找位于两类训练样本“正中间”的划分超平面,即图6.1中最粗的那条线。因为该划分超平面对训练样本局部扰动的“容忍”性最好。
在样本空间中,划分超平面可通过如下线性方程来描述:
wTx+b=0
w^Tx+b=0
wTx+b=0
其中w=(w1;w2;...;wd)w=(w_1;w_2;...;w_d)w=(w1;w2;...;wd)为法向量,决定了超平面的方向;bbb为位移项,决定了超平面与原点之间的距离:显然,划分超平面可被法向量www 和位移bbb确定,下面我们将其记为(w,b)(w,b)(w,b)。样本空间中任意点xxx到超平面(w,b)(w,b)(w,b)的距离可写为
r=∣wTx+b∣∣∣w∣∣
r={|w^Tx+b|\over ||w||}
r=∣∣w∣∣∣wTx+b∣
假设超平面(w,b)(w,b)(w,b)能将训练样本正确分类,即对于(xi,yi)∈D(x_i,y_i)∈D(xi,yi)∈D,若 yi=+1yi=+1yi=+1,则有 wTxi+b>0w^Tx_i+b>0wTxi+b>0;若yi=−1y_i=-1yi=−1,则有wTxi+b<0w^Tx_i+b<0wTxi+b<0。令
{wTxi+b≥+1yi=+1wTxi+b≤−1yi=−1
\begin {cases}
w^Tx_i+b≥+1 & y_i=+1\\
w^Tx_i+b≤-1 & y_i=-1
\end{cases}
{wTxi+b≥+1wTxi+b≤−1yi=+1yi=−1
如图6.2所示,距离超平面最近的这几个训练样本点使上式的等号成立它们被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和为
γ=2∣∣w∣∣
γ={2\over ||w||}
γ=∣∣w∣∣2
它被称为"间隔" (margin)。

要使γγγ最大,即找到满足的参数www和bbb,则要满足下式:
minw,b12∣∣w∣∣2
min_{w,b} {1\over2}||w||^2
minw,b21∣∣w∣∣2
s.t.yi(wTxi+b)≥1,i=1,2,...,m
s.t. y_i(w^Tx_i+b)≥1,i=1,2,...,m
s.t.yi(wTxi+b)≥1,i=1,2,...,m
也就是支持向量机SVM的基本型
6.2 对偶问题
SVM的基本型本身是一个凸二次规划问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法。
对前面一个式子使用使用拉格朗日乘子法可得到其“对偶问题”(dual problem)。具体来说,对该式子的每条约束添加拉格朗日乘子αi>0α_i>0αi>0,则该问题的拉格朗日函数可写为
L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))
L(w,b,α)={1\over 2}||w||^2+∑^m_{i=1}α_i(1-y_i(w^Tx_i+b))
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
其中α=(α1;α2;...;αm)α=(α_1;α_2;...;α_m)α=(α1;α2;...;αm)令L(w,b,α)L(w,b,α)L(w,b,α)对www和bbb的偏导为零可得
w=∑i=1mαiyixi
w=∑^m_{i=1}α_iy_ix_i
w=i=1∑mαiyixi
0=∑i=1mαiyi
0=∑^m_{i=1}α_iy_i
0=i=1∑mαiyi
www代入L(w,b,α)L(w,b,α)L(w,b,α)中,消去www和bbb,再有0=∑i=1mαiyi0=∑^m_{i=1}α_iy_i0=∑i=1mαiyi的约束,则可以得到:
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj
max_α\quad ∑^m_{i=1}α_i-{1\over 2}∑^m_{i=1}∑^m_{j=1}α_iα_jy_iy_jx^T_ix_j
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s.t.∑i=1mαiyi=0αi≥0i=1,2,...,m
s.t. ∑^m_{i=1}α_iy_i=0\quad α_i≥0\quad i=1,2,...,m
s.t.i=1∑mαiyi=0αi≥0i=1,2,...,m
解出ααα后,求出www与bbb即可得到模型
f(x)=∑i=1mαiyixiTx+b
f(x)=∑^m_{i=1}α_iy_ix^T_ix+b
f(x)=i=1∑mαiyixiTx+b
上述过程需要满足KKT条件,即:
{αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
\begin {cases}
α_i≥0\\
y_if(x_i)-1≥0\\
α_i(y_if(x_i)-1)=0\\
\end{cases}
⎩⎨⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。
著名的算法为SMO基本思路为先固定αi\alpha _iαi之外的所有参数,然后求αi\alpha _iαi上的极值;由于存在约束条件,若固定αi\alpha _iαi之外的所有参数,则αi\alpha _iαi可由其他参数导出。
之后将执行下述两个步骤直到收敛:
(1)选取一对需更新的变量αi\alpha _iαi和αj\alpha _jαj
(2)固定αi\alpha _iαi和αj\alpha _jαj以外的参数,求解对偶问题得到新的αi\alpha _iαi和αj\alpha _jαj。
SMO高效的原因是在固定其他参数后,只优化两个参数。对于偏移量b可以使用所有支持向量求解平均值
6.3 核函数
我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
令Φ(x)Φ(x)Φ(x)表示将映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为
f(x)=wTΦ(x)+b
f(x)=w^TΦ(x)+b
f(x)=wTΦ(x)+b
其中www 和bbb是模型参数。
其对偶问题是
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjΦ(xi)TΦ(xj)
max_\alpha∑^m_{i=1}\alpha_i-{1\over 2}∑^m_{i=1}∑^m_{j=1}\alpha_i\alpha_jy_iy_jΦ(x_i)^TΦ(x_j)
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjΦ(xi)TΦ(xj)
s.t.∑i=1mαiyi=0αi≥0i=1,2,...,m
s.t. ∑^m_{i=1}\alpha_iy_i=0\quad \alpha_i≥0\quad i=1,2,...,m
s.t.i=1∑mαiyi=0αi≥0i=1,2,...,m
最后求解可得:

其中函数κ(1<PERIOD>1)κ(1<PERIOD>1)κ(1<PERIOD>1)就是核函数, 这一式子也叫做支持向量展式。
表6.1 列出了几种常用的核函数。

6.4 软间隔与正则化
在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。
缓解该问题的一个办法是允许支持向量机在一些样本上出错。为此,要引“软间隔”(soft margin)的概念,如图 6.4 所示

前面介绍的支持向量机形式是要求所有样本均满足约束
即所有样本都必须划分i丘确,这称为"硬间隔" (hard margin),而软间隔则是允许某些样本不满足约束
yi(wTxi+b)≥1
y_i(w^Tx_i+b)≥1
yi(wTxi+b)≥1
当然,在最大化间隔的同时,不满足约束的样本应尽可能少。于是,优化目标可写为
minw,b12∣∣w∣∣2+C∑i=1ml0/1(yi(wTxi+b)−1)
min_{w,b}\quad {1\over 2}||w||^2+C∑^m_{i=1}l_{0/1}(y_i(w^Tx_i+b)-1)
minw,b21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)
其中 C>0C>0C>0是1个常数,l0/1l_{0/1}l0/1是 “0/1损失函数”
l0/1(z)={1ifz<00otherwise
l_{0/1}(z)=\begin{cases}
1\quad if\quad z<0\\0\quad otherwise
\end{cases}
l0/1(z)={1ifz<00otherwise
若采用hinge损失,则变为
minw,b12∣∣w∣∣2+C∑i=1mmax(0,1−yi(wTxi+b))
min_{w,b}\quad {1\over 2}||w||^2+C∑^m_{i=1}max(0,1-y_i(w^Tx_i+b))
minw,b21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))
若引入松弛变量,那么可以得到软间隔支持向量机的公式为:
minw,b,ξi12∣∣w∣∣2+C∑i=1mξi
min_{w,b,ξ_i}\quad {1\over 2}||w||^2+C∑^m_{i=1}ξ_i
minw,b,ξi21∣∣w∣∣2+Ci=1∑mξi
KaTeX parse error: Undefined control sequence: \quadi at position 36: …1-ξ_i\quadξ_i≥0\̲q̲u̲a̲d̲i̲=1,2,...,m
这就是常用的“软间隔支持向量机”

其与硬间隔下的对偶问题相比,唯一的差别在于对偶变量的约束不同。
6.5 支持向量回归
对样本(x,y)(x,y)(x,y),传统回归模型通常直接基于模型输出f(x)f(x)f(x)与真实输出yyy之间的差别来计算损失,当且仅当f(x)f(x)f(x)与yyy完全相同时,损失才为零。与此不同,支持向量回归(Support Vector Regression,简称 SVR)假设我们能容忍f(x)f(x)f(x)与yyy之间最多有ϵϵϵ的偏差,即仅当f(x)f(x)f(x)与yyy之间的差别绝对值大于ϵϵϵ时才计算损失。如图 6.6所示,这相当于以 f(x)f(x)f(x)为中心,构建了一个宽度为 2ϵ2ϵ2ϵ的间隔带,若训练样本落入此间隔带,则认为是被预测正确的。
于是, SVR 问题可形式化为
minw,b12∣∣w∣∣2+C∑i=1mlϵ(f(xi)−yi)
min_{w,b}\quad {1\over 2}||w||^2+C∑^m_{i=1}l_ϵ(f(x_i)-y_i)
minw,b21∣∣w∣∣2+Ci=1∑mlϵ(f(xi)−yi)
经过引入松弛变量和拉格朗日变化后,可以得到其对偶问题为:

其需满足KTT条件,即

6.6 核方法
给定训练样本(x1,y1),(x2,y2),...,(xm,ym){(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}(x1,y1),(x2,y2),...,(xm,ym),若不考虑偏移项bbb,则无论SVM还是SVR,学得的模型总能表示成核函数κ(x,xi)κ(x,x_i)κ(x,xi)的线性组合。不仅如此,事实上我们有下面这个称为“表示定理”(representer theorem)的更一般的结论:
令HHH为核函数κκκ对应的再生核希尔伯特空间,∣∣h∣∣H||h||_H∣∣h∣∣H表示HHH空间中关于h的范数,对于任意单调递增函数Ω:[0,∞]→RΩ:[0,∞]→RΩ:[0,∞]→R和任意非负损失函数l:Rm→[0,∞]l:R^m→[0,∞]l:Rm→[0,∞],优化问题的解总可以写为
h∗(x)=∑i=1mαiκ(x,xi)
h^*(x)=∑^m_{i=1}\alpha_iκ(x,x_i)
h∗(x)=i=1∑mαiκ(x,xi)
该定理对损失函数没有限制,对正则化项要求单调递增
人们发展出一系列基于核函数的学习方法,统称为“核方法”kernelmethods)。最常见的,是通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器。“核线性判别分析”(Kernelized Linear DiscriminantAnalysis,简称 KLDA)可以通过核化来将线性学习器拓展来得到。
KLDA的学习目标是
maxwJ(w)=wTSbϕwwTSwϕw
max_w\quad J(w)={w^TS^ϕ_bw\over w^TS^ϕ_ww}
maxwJ(w)=wTSwϕwwTSbϕw
经过一系列变换可得
maxαJ(α)=αTMααTNα
max_\alpha\quad J(\alpha)={\alpha^TM\alpha \over \alpha^TN\alpha}
maxαJ(α)=αTNααTMα
可使用线性判别分析求解方法得到α\alphaα,进而得到投影函数h(x)h(x)h(x)。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)