机器学习-支持向量机

本文详细介绍了支持向量机(SVM)的基本概念及其在不同情况下的应用,包括线性可分、线性近似可分和支持向量机的非线性版本。文中还探讨了间隔最大化、软间隔支持向量机的概念以及核函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

支持向量机

    支持向量机是一种二类分类模型。他的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还宝包括核技巧,使得它实质上是非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划问题,也等价于正则化的合页损失函数的最小化问题。
    当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机,又称为硬间隔支持向量机。
    当训练数据近似线性可分时,通过软间隔最大化,学习一个线性的分类器,即线性支持向量机,又称软间隔支持向量机。
    当训练数据线性不可分时,通过核技巧及软间隔最大化,学习非线性支持向量机。

1 线性可分支持向量机与硬间隔最大化

1.1 线性可分支持向量机

    给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为:
w∗x+b∗=0w^*x+b^*=0wx+b=0
    以及相应的分类决策函数
f(x)=sign(w∗x+b∗)f(x)=sign(w^*x+b^*)f(x)=sign(wx+b)
    称为线性可分支持向量机。

1.2 函数间隔和几何间隔

    函数间隔对于给定的训练数据集TTT和超平面(w,b)(w,b)(w,b),定义超平面(w,b)(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔为
γi^=yi(wxi+b)\widehat{\gamma_i}=y_i(wx_i+b)γi=yi(wxi+b)
    定义超平面(w,b)(w,b)(w,b)关于训练集TTT的函数间隔为超平面(w,b)(w,b)(w,b)关于TTT中所有样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔之最小值,即
γ^=mini=1,2,...,Nγi^\widehat{\gamma}=min_{i=1,2,...,N} \widehat{\gamma_i}γ=mini=1,2,...,Nγi
    几何间隔对于给定的训练数据集TTT和超平面(w,b)(w,b)(w,b),定义超平面(w,b)(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔为
γi=yi(w∣∣w∣∣xi+b∣∣w∣∣){\gamma_i}=y_i(\frac{w}{||w||}x_i+\frac{b}{||w||})γi=yi(∣∣w∣∣wxi+∣∣w∣∣b)
    定义超平面(w,b)(w,b)(w,b)关于训练集TTT的函数间隔为超平面(w,b)(w,b)(w,b)关于TTT中所有样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔之最小值,即
γ=mini=1,2,...,Nγi\gamma=min_{i=1,2,...,N} \quad \gamma_iγ=mini=1,2,...,Nγi

1.3 间隔最大化

    SVM的学习基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。而感知机是基于函数间隔的。
c如何求得一个几何间隔最大的分离超平面,可以表示为下面的约束最优化问题:
maxw,bγmax_{w,b} \quad \gammamaxw,bγ
s.t.yi(w∣∣w∣∣xi+b∣∣w∣∣)≥γ s.t. \quad y_i(\frac{w}{||w||}x_i+\frac{b}{||w||}) \geq \gammas.t.yi(∣∣w∣∣wxi+∣∣w∣∣b)γ
    考虑到几何间隔和函数间隔关系式,问题可以改写为:
maxw,bγ^∣∣w∣∣max_{w,b} \quad \frac{\hat\gamma}{||w||}maxw,b∣∣w∣∣γ^
s.t.yi(wxi+b)≥γ^ s.t. \quad y_i(wx_i+b) \geq \hat\gammas.t.yi(wxi+b)γ^
    等价于:
minw,b∣∣w∣∣22min_{w,b} \quad \frac{||w||^2}{2}minw,b2∣∣w2
s.t.yi(wxi+b)−1≥0 s.t. \quad y_i(wx_i+b) -1 \geq 0s.t.yi(wxi+b)10

1.4 学习的对偶算法

     应用拉格朗日对偶性求解支持向量机的最优化原始问题。
    构造拉格朗日函数:
L(w,b,α)=∣∣w∣∣22−∑i=1Nαiyi(wxi+b)+∑i=1NαiL(w,b,\alpha)=\frac{||w||^2}{2} - \sum_{i=1}^N \alpha_iy_i(wx_i+b)+\sum_{i=1}^{N}\alpha_iL(w,b,α)=2∣∣w2i=1Nαiyi(wxi+b)+i=1Nαi
    原始问题的对偶问题是极大极小问题:
maxαminw,bL(w,b,α)max_{\alpha}min_{w,b}L(w,b,\alpha)maxαminw,bL(w,b,α)
(1)求minw,bL(w,b,α)min_{w,b}L(w,b,\alpha)minw,bL(w,b,α),对w,bw,bw,b求偏导并令其等于0,得到
w=∑i=1Nαiyixiw=\sum_{i=1}^N \alpha_iy_ix_iw=i=1Nαiyixi
∑i=1Nαiyi=0\sum_{i=1}^N \alpha_iy_i=0i=1Nαiyi=0
    带入拉格朗日函数,可得:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyjxixj+∑i=1Nαimin_{w,b}L(w,b,\alpha)=-\frac{1}{2} \sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_jy_iy_jx_ix_j + \sum_{i=1}^N\alpha_iminw,bL(w,b,α)=21i=1Nj=1Nαiαjyiyjxixj+i=1Nαi
    (2)求minw.bL(w,b,α)min_{w.b}L(w,b,\alpha)minw.bL(w,b,α)α\alphaα的极大,即是对偶问题
maxα−12∑i=1N∑j=1Nαiαjyiyjxixj+∑i=1Nαimax_{\alpha} \quad -\frac{1}{2} \sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_jy_iy_jx_ix_j + \sum_{i=1}^N\alpha_imaxα21i=1Nj=1Nαiαjyiyjxixj+i=1Nαi
s.t.∑i=1Nαiyi=0s.t.\quad \sum_{i=1}^N \alpha_iy_i=0s.t.i=1Nαiyi=0
αi≥0,i=1,2,3...,N\alpha_i \geq 0, i = 1,2,3...,Nαi0,i=1,2,3...,N
    线性可分支持向量机学习算法
    (1)构造并求解约束最优化问题
maxα−12∑i=1N∑j=1Nαiαjyiyjxixj+∑i=1Nαimax_{\alpha} \quad -\frac{1}{2} \sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_jy_iy_jx_ix_j + \sum_{i=1}^N\alpha_imaxα21i=1Nj=1Nαiαjyiyjxixj+i=1Nαi
s.t.∑i=1Nαiyi=0s.t.\quad \sum_{i=1}^N \alpha_iy_i=0s.t.i=1Nαiyi=0
αi≥0,i=1,2,3...,N\alpha_i \geq 0, i = 1,2,3...,Nαi0,i=1,2,3...,N
    求得最优解 α∗=(α1∗,α2∗,...,αN∗)T\alpha^{*}=(\alpha_1^{*},\alpha_2^{*},...,\alpha_N^{*})^Tα=(α1,α2,...,αN)T
    (2)计算
w∗=∑i=1Nαi∗yixiw^*=\sum_{i=1}^N \alpha_i^*y_ix_iw=i=1Nαiyixi
    选择α∗\alpha^*α一个正分量αj∗>0\alpha_j^* > 0αj>0,计算
b∗=yi−∑i=1Nαi∗yi(xixj)b^*=y_i-\sum_{i=1}^N \alpha_i^*y_i(x_ix_j)b=yii=1Nαiyi(xixj)
    (3)求得分离超平面
w∗x+b∗=0w^*x+b^*=0wx+b=0
    分类决策函数:
f(x)=sign(w∗x+b∗)f(x)=sign(w^*x+b^*)f(x)=sign(wx+b)

2 线性支持向量机与软间隔最大化

    线性不可分意味着某些样本点 (xi,yi)(x_i,y_i)(xi,yi)不能满足函数间隔大于等于1的约束条件。为了解决这一问题,引进了一个松弛变量ξi≥0\xi_i \geq 0ξi0,使得函数间隔加上松弛变量大于等于1,约束条件变为:
yi(wxi+b)≥1−ξiy_i(wx_i+b) \geq 1- \xi_iyi(wxi+b)1ξi
    那么线性不可分的线性支持向量机的原始问题就是:
minw,b,ξ12∣∣w∣∣2+C∑i=1Nξimin_{w,b,\xi}\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_iminw,b,ξ21∣∣w2+Ci=1Nξi
s.t.yi(wxi+b)≥1−ξis.t. \quad y_i(wx_i+b) \geq 1- \xi_is.t.yi(wxi+b)1ξi
ξi≥0\xi_i \geq 0ξi0
    原始问题的对偶问题是:
minα12∑i=1N∑j=1Nαiαjyiyj(xixj)−∑i=1Nαimin_{\alpha}\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i x_j) - \sum_{i=1}^N \alpha_iminα21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s.t.∑i=1Nαiyi=0s.t. \quad \sum_{i=1}^N \alpha_i y_i=0s.t.i=1Nαiyi=0
0≤αi≤C0 \leq \alpha_i \leq C0αiC
    构造拉格朗日函数:
L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1Nξi−∑j=1Nαi(yi(wxi+b)−1+ξi)−∑i=1NμiξiL(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i- \sum_{j=1}^N\alpha_i(y_i(wx_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i \xi_iL(w,b,ξ,α,μ)=21∣∣w2+Ci=1Nξij=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi
    其中,αi≥0,μi≥0\alpha_i \geq 0,\mu_i \geq 0αi0,μi0
    依次通过L(w,b,ξ,α,μ)L(w,b,\xi,\alpha,\mu)L(w,b,ξ,α,μ)w,b,ξw,b,\xiw,b,ξ求偏导,并令其等于0,可得:
w=∑i=1Nαiyixiw= \sum_{i=1}^N \alpha_iy_ix_iw=i=1Nαiyixi
∑i=1Nαiyi=0\sum_{i=1}^N \alpha_iy_i=0i=1Nαiyi=0
C−αi−μi=0C-\alpha_i-\mu_i=0Cαiμi=0
    带入得到:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xixj)+∑i=1Nαimax_{\alpha} \quad -\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i x_j) + \sum_{i =1}^N \alpha_imaxα21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
∑i=1Nαiyi=0\sum_{i=1}^N \alpha_iy_i=0i=1Nαiyi=0
C−αi−μi=0C-\alpha_i-\mu_i=0Cαiμi=0
αi≥0,μi≥0\alpha_i \geq 0, \mu_i \geq 0αi0,μi0
    线性支持向量机学习算法
    (1)选择惩罚参数C>0C > 0C>0。构造并求解凸二次规划问题。
minα12∑i=1N∑j=1Nαiαjyiyj(xixj)−∑i=1Nαimin_{\alpha} \quad \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i x_j) - \sum_{i =1}^N \alpha_iminα21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
∑i=1Nαiyi=0\sum_{i=1}^N \alpha_iy_i=0i=1Nαiyi=0
0≤αi≤C0 \leq \alpha_i \leq C0αiC
    求得最优解 α∗=(α1∗,α2∗,...,αN∗)T\alpha^{*}=(\alpha_1^{*},\alpha_2^{*},...,\alpha_N^{*})^Tα=(α1,α2,...,αN)T
    (2)计算w∗=∑i=1Nα∗yixiw^*=\sum_{i=1}^N\alpha^*y_ix_iw=i=1Nαyixi,选择α∗\alpha^*α的一个分量αj∗\alpha_j^*αj适合条件0<αj∗<C0 < \alpha_j^* < C0<αj<C。计算
b∗=yj−∑i=1Nyiαi∗(xixj)b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_ix_j)b=yji=1Nyiαi(xixj)
    (3)求得分离超平面
w∗x+b∗=0w^*x+b^*=0wx+b=0
    分类决策函数:
f(x)=sign(w∗x+b∗)f(x)=sign(w^*x+b^*)f(x)=sign(wx+b)

2.2 合页损失函数

    合页损失函数。下标“+”“+”+表示取正值的函数。
[z]+={z,z>00,z≤0[z]_+= \begin{cases} z, & \text{z$ >$0} \\[5ex] 0, & \text{z$\leq$0} \end{cases}[z]+=z,0,z>0z0
    对于线性支持向量机的合页损失函数:
L(y(wx+b))=[1−y(wx+b)]+L(y(wx+b))=[1-y(wx+b)]_+L(y(wx+b))=[1y(wx+b)]+
    

3.非线性支持向量机与核函数

    如果能用特征空间中的一个超曲面将正负例正确分开,则称这个问题为非线性可分问题。
    用线性分类方法求解非线性变换分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间用线性分类学习方法从训练数据中学习分类模型。

3.1 核技巧

     核函数 —设XXX是输入空间,又设HHH为特征空间,如果存在一个XXXHHH的映射:
ϕ(x)=X→H\phi(x)=X \rightarrow Hϕ(x)=XH
    使得对suoyoux,z∈Xx,z \in Xx,zX ,函数K(x,z)K(x,z)K(x,z)满足条件
K(x,z)=ϕ(x)ϕ(z)K(x,z)=\phi(x)\phi(z)K(x,z)=ϕ(x)ϕ(z)
    则K(x,z)K(x,z)K(x,z)称为核函数,ϕ(x)\phi(x)ϕ(x)为映射函数,公式右边为内积。
    核技巧在SVM中的应用,SVM的对偶问题目标函数为:
W(α)=12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1NαiW(\alpha)=\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j K(x_i,x_j)-\sum_{i=1}^N \alpha_iW(α)=21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi
     同样,分类决策函数中的内积也用核函数带题,因为分类决策函数为:
f(x)=sign(∑i=1Nsαi∗yiϕ(xi)ϕ(x)+b∗)f(x)=sign(\sum_{i=1}^{N_s}\alpha_i^*y_i \phi(x_i) \phi_(x) + b^* )f(x)=sign(i=1Nsαiyiϕ(xi)ϕ(x)+b)
=sign(∑i=1Nsαi∗yiK(xi,x)+b∗)=sign(\sum_{i=1}^{N_s}\alpha_i^*y_i K(x_i,x)+ b^* )=sign(i=1NsαiyiK(xi,x)+b)

3.2 正定核

     K(x,z)K(x,z)K(x,z)对应的Gram矩阵
K=[K(xi,xj)]m∗mK=[K(x_i,x_j)]_{m*m}K=[K(xi,xj)]mm
     是一个半正定矩阵,则称K(x,z)K(x,z)K(x,z)是正定核。

3.3 常用核函数

     1.多项式核函数
K(x,z)=(xz+1)pK(x,z)=(xz+1)^pK(x,z)=(xz+1)p
     2.高斯核函数
K(x,z)=exp(−∣∣x−z∣∣22σ2)K(x,z)=exp(-\frac{||x-z||^2}{2 \sigma^2})K(x,z)=exp(2σ2∣∣xz2)
     3.字符串核函数
[ϕn(s)]u=∑i:s(i)=uλl(i)[\phi_n(s)]_u=\sum_{i:s(i)=u}\lambda^{l(i)}[ϕn(s)]u=i:s(i)=uλl(i)
     字符串核函数kn(s,t)k_n(s,t)kn(s,t)
kn(s,t)=∑u∈∑n[ϕn(s)]u[ϕn(t)]uk_n(s,t)=\sum_{u \in\sum^n}[\phi_n(s)]_u[\phi_n(t)]_ukn(s,t)=un[ϕn(s)]u[ϕn(t)]u
=∑u∈∑n∑(i,j):s(i)=t(j)=uλl(i)λl(j)=\sum_{u \in \sum^n}\sum_{(i,j):s(i)=t(j)=u} \lambda^{l(i)} \lambda^{l(j)}=un(i,j):s(i)=t(j)=uλl(i)λl(j)

非线性支持向量机

    非线性支持向量机学习算法
    (1)选取适当的核函数K(x,z)K(x,z)K(x,z)和适当的参数CCC
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαimin_{\alpha} \quad \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j K(x_i ,x_j) - \sum_{i =1}^N \alpha_iminα21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi
∑i=1Nαiyi=0\sum_{i=1}^N \alpha_iy_i=0i=1Nαiyi=0
0≤αi≤C0 \leq \alpha_i \leq C0αiC
    求得最优解 α∗=(α1∗,α2∗,...,αN∗)T\alpha^{*}=(\alpha_1^{*},\alpha_2^{*},...,\alpha_N^{*})^Tα=(α1,α2,...,αN)T
    (2)计算w∗=∑i=1Nα∗yixiw^*=\sum_{i=1}^N\alpha^*y_ix_iw=i=1Nαyixi,选择α∗\alpha^*α的一个分量αj∗\alpha_j^*αj适合条件0<αj∗<C0 < \alpha_j^* < C0<αj<C。计算
b∗=yj−∑i=1Nyiαi∗K(xi,xj)b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*K(x_i,x_j)b=yji=1NyiαiK(xi,xj)
    (4)构造分类决策函数:
f(x)=sign(∑i=1Nyiαi∗K(x,xi)+b∗)f(x)=sign(\sum_{i=1}^Ny_i\alpha_i^*K(x,x_i)+b^*)f(x)=sign(i=1NyiαiK(x,xi)+b)

4.序列最小优化算法

    SMO算法
    输入:训练数据T={(x1,y1),(x2,y2),...,(xN,yN)}T=\left\{ (x_1,y_1), (x_2,y_2),..., (x_N,y_N)\right\}T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈Rn,yi∈Y={+1,−1}x_i \in R^n,y_i \in Y=\left\{+1,-1\right\}xiRn,yiY={+1,1},精度为ξ\xiξ
    输出:近似解α^\hat\alphaα^
    (1)取初值α(0)=0,令\alpha^{(0)}=0,令α(0)=0,k=0;;;
    (2)选取优化变量α1k,α2k\alpha_1^{k},\alpha_2^{k}α1k,α2k,解析求解两个变量的最优化问题,求得最优解α1k+1,α2k+1\alpha_1^{k+1},\alpha_2^{k+1}α1k+1,α2k+1,更新α\alphaαα(k+1)\alpha^{(k+1)}α(k+1)
    (3)若在精度ξ\xiξ范围内满足停机条件
∑i=1Nαiyi=0,0≤αi≤C\sum_{i=1}^N \alpha_iy_i=0, 0\leq\alpha_i\leq Ci=1Nαiyi=0,0αiC
yig(xi)={≥1,{xi∣αi=0}=1,{xi∣0<αi<C}≤1,{xi∣αi=C}y_ig(x_i)=\begin{cases} \geq 1, & \text{$\left\{x_i|\alpha_i=0\right\}$} \\[5ex] =1, & \text{$\left\{x_i|0<\alpha_i<C\right\}$}\\[5ex] \leq1, & \text{$\left\{x_i|\alpha_i=C\right\}$} \end{cases}yig(xi)=1,=1,1,{xiαi=0}{xi∣0<αi<C}{xiαi=C}
    其中,g(xi)=∑j=1NαjyjK(xj,xi)+bg(x_i)=\sum_{j=1}^N \alpha_j y_jK(x_j,x_i)+bg(xi)=j=1NαjyjK(xj,xi)+b,
    则转(4),如不满足则令k=k+1k=k+1k=k+1转(2)。
    (4)取α^=α(k+1)\hat \alpha=\alpha^{(k+1)}α^=α(k+1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值