支持向量机(SVM)详解

支持向量机(support vector machines,SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。

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

1.1、线性可分支持向量机

考虑一个二分类问题。假设输入空间与特征空间为两个不同的空间,这两个空间的元素一一对应,并将输入空间的输入映射为特征空间中的特征向量,支持向量机的学习是在特征空间进行的。

假设一个特征空间上的训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}

其中, x i ∈ X = R n x_i\in \cal{X}=\it{R}^n xiX=Rn y i ∈ Y = { + 1 , − 1 } y_i \in{\cal{Y}}=\{+1,-1\} yiY={+1,1} i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N x i x_i xi 为第 i i i 个特征向量,也称为实例, y i y_i yi x i x_i xi 的类标记。

学习的目标是在特征空间中找到一个分离超平面,能够将实例分到不同的类,分离超平面对应于方程 w ⋅ x + b = 0 w\cdot x+b=0 wx+b=0,它由法向量 w w w 和截距 b b b 决定。一般地,当训练数据集线性可分时,存在无穷个分离超平面可将数据正确分开,例如感知机利用误分类最小的策略,不过其解有无穷多个,而线性可分支持向量机利用间隔最大化求最优分离超平面,因此其解是唯一的。
在这里插入图片描述

1.2、函数间隔和几何间隔

如上图所示, A , B , C A,B,C A,B,C 三个点均在分离超平面的正类一侧,点 A A A 距分离超平面较远,若预测该点为正类,是比较可信的,而预测 C C C 点为正类就不那么可信,点 B B B 介于点 A A A C C C 之间,预测其为正类的可信度也在 A A A C C C 之间。

一般来说,在超平面 w ⋅ x + b = 0 w\cdot x+b=0 wx+b=0 确定的情况下, ∣ w ⋅ x + b ∣ \mid w\cdot x+b\mid wx+b 能够相对地表示点 x x x 距离超平面的远近,而 w ⋅ x + b w\cdot x+b wx+b 的符号与类标记 y y y 的符号是否一致能够表示分类是否正确,所以可用量 y ( w ⋅ x + b ) y(w\cdot x+b) y(wx+b) 来表示分类的正确性及确信度,这就是函数间隔(functional margin)的概念,记作 γ ^ i \hat{\gamma}_i γ^i

但是只要成比例地改变 w w w b b b,例如将它们改为 2 w 2w 2w 2 b 2b 2b,超平面并没有改变,但函数间隔却变为原来的 2 倍,所以需要对 w w w 加某些约束,如 ∥ w ∥ = 1 \parallel w\parallel=1 w∥=1,使得间隔是确定的。这时函数间隔就成为了几何间隔(geometric margin),记作 γ i \gamma_i γi

在这里插入图片描述
上图给出了超平面 ( w , b ) (w,b) (w,b) 及其法向量 w w w。点 A A A 表示某一实例 x i x_i xi,其类标记为 y i = + 1 y_i=+1 yi=+1。点 A A A 与超平面 ( w , b ) (w,b) (w,b) 的距离由线段 A B AB AB 给出,记作 γ i \gamma_i γi
γ i = w ∥ w ∥ ⋅ x i + b ∥ w ∥ \gamma_i=\dfrac{w}{\parallel w\parallel}\cdot x_i+\dfrac{b}{\parallel w\parallel} γi=wwxi+wb

其中, ∥ w ∥ \parallel w\parallel w w w w L 2 L_2 L2 范数。这是点 A A A 在超平面正的一侧的情形。如果点 A A A 在超平面负的一侧,即 y i = − 1 y_i=-1 yi=1,那么点与超平面的距离为
γ i = − ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) \gamma_i=-\Big(\dfrac{w}{\parallel w\parallel}\cdot x_i+\dfrac{b}{\parallel w\parallel}\Big) γi=(wwxi+wb)

一般地,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 被超平面 ( w , b ) (w,b) (w,b) 正确分类时,点 x i x_i xi 与超平面 ( w , b ) (w,b) (w,b) 的距离是
γ i = y i ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) \gamma_i=y_i\Big(\dfrac{w}{\parallel w\parallel}\cdot x_i+\dfrac{b}{\parallel w\parallel}\Big) γi=yi(wwxi+wb)

1.3、间隔最大化

支持向量机学习的基本思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。

(1)最大间隔分离超平面

求最大间隔分离超平面可以表示为下面的约束最优化问题:
max ⁡ w , b γ s . t . y i ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) ≥ γ , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{w,b}\quad &\gamma\\ \rm{s.t.}\quad&y_i\Big(\dfrac{w}{\parallel w\parallel}\cdot x_i+\dfrac{b}{\parallel w\parallel}\Big)\geq\gamma,\quad i=1,2,\cdots,N \end{aligned} w,bmaxs.t.γyi(wwxi+wb)γ,i=1,2,,N

即希望最大化超平面 ( w , b ) (w,b) (w,b) 关于训练数据集的几何间隔 γ \gamma γ,约束条件表示的是超平面 ( w , b ) (w,b) (w,b) 关于每个训练样本的几何间隔至少是 γ \gamma γ

考虑几何间隔和函数间隔的关系,可以改写为
max ⁡ w , b γ ^ ∥ w ∥ s . t . y i ( w ⋅ x i + b ) ≥ γ ^ , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{w,b}\quad &\dfrac{\hat{\gamma}}{\parallel w\parallel}\\ \rm{s.t.}\quad&y_i(w\cdot x_i+b)\geq\hat{\gamma},\quad i=1,2,\cdots,N \end{aligned} w,bmaxs.t.wγ^yi(wxi+b)γ^,i=1,2,,N

函数间隔 γ ^ \hat{\gamma} γ^ 的取值并不影响最优化问题的解,事实上,假设将 w w w b b b 按比例改变为 λ w \lambda w λw λ b \lambda b λb,这时函数间隔成为 λ γ ^ \lambda\hat{\gamma} λγ^。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,即产生一个等价的最优化问题。这样,就可以取 γ ^ = 1 \hat{\gamma}=1 γ^=1,将其带入上面最优化问题,而最大化 1 ∥ w ∥ \dfrac{1}{\parallel w\parallel} w1 和最小化 1 2 ∥ w ∥ 2 \dfrac{1}{2}\parallel w\parallel^2 21w2 是等价的,于是:
min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \min_{w,b}\quad &\dfrac{1}{2}\parallel w\parallel^2\\ \rm{s.t.}\quad&y_i(w\cdot x_i+b)-1\geq0,\quad i=1,2,\cdots,N \end{aligned} w,bmins.t.21w2yi(wxi+b)10,i=1,2,,N

如果求出了上述优化问题的解 w ∗ , b ∗ w^\ast,b^\ast w,b,那么就可以得到最大间隔分离超平面 w ∗ ⋅ x + b ∗ = 0 w^\ast\cdot x+b^\ast=0 wx+b=0 及分类决策函数 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)= {sign} (w^\ast\cdot x+b^\ast) f(x)=sign(wx+b),即线性可分支持向量机模型

综上所述,就是线性可分支持向量机的学习算法——最大间隔法(maximum margin method)。

(2)支持向量和间隔边界

在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector)。支持向量是使约束条件 y i ( w ⋅ x i + b ) − 1 ≥ 0 y_i(w\cdot x_i+b)-1\geq0 yi(wxi+b)10 等号成立的点,即
y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i+b)-1=0 yi(wxi+b)1=0

y i = + 1 y_i=+1 yi=+1 的正例点,支持向量在超平面
H 1 : w ⋅ x + b = 1 H_1:w\cdot x+b=1 H1:wx+b=1

上,对 y i = − 1 y_i=-1 yi=1 的负例点,支持向量在超平面
H 2 : w ⋅ x + b = − 1 H_2:w\cdot x+b=-1 H2:wx+b=1

上。如下图所示,在 H 1 H_1 H1 H 2 H_2 H2 上的点就是支持向量。注意到 H 1 H_1 H1 H 2 H_2 H2 平行,并且并没有实例点落在它们中间。在 H 1 H_1 H1 H 2 H_2 H2 之间形成一条长带,长带的宽度称为间隔(margin),间隔依赖于分离超平面的法向量 w w w,等于 2 ∥ w ∥ \dfrac{2}{\parallel w\parallel} w2 H 1 H_1 H1 H 2 H_2 H2 称为间隔边界
在这里插入图片描述
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的 “ 重要的 ” 的训练样本确定。

1.4、学习的对偶算法

为了求解线性可分支持向量机的最优化问题,首先构建拉格朗日函数(Lagrange function),即对每个不等式约束引入拉格朗日乘子(Lagrange multiplier) α i ≥ 0 ,   i = 1 , 2 , ⋯   , N \alpha_i\geq0,\ i=1,2,\cdots,N αi0, i=1,2,,N,定义拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i L(w,b,\alpha)=\dfrac{1}{2}\parallel w\parallel^2-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\alpha_i L(w,b,α)=21w2i=1Nαiyi(wxi+b)+i=1Nαi

其中, α = ( α 1 , α 2 , ⋯   , α N ) T \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T α=(α1,α2,,αN)T 为拉格朗日乘子向量。

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
max ⁡ α min ⁡ w , b L ( w , b , α ) \max_\alpha\min_{w,b}L(w,b,\alpha) αmaxw,bminL(w,b,α)

所以,为了得到对偶问题的解,需要先求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) w , b w,b w,b 的极小,再求对 α \alpha α 的极大。

(1)求 min ⁡ w , b L ( w , b , α ) \min_{w,b}L(w,b,\alpha) minw,bL(w,b,α)

L ( w , b , α ) L(w,b,\alpha) L(w,b,α) 分别对 w , b w,b w,b 求偏导并令其等于 0。
∇ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , α ) = − ∑ i = 1 N α i y i = 0 \begin{aligned} &\nabla_wL(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0\\ &\nabla_bL(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy_i=0 \end{aligned} wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0


w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 \begin{aligned} &w=\sum_{i=1}^N\alpha_iy_ix_i\\ &\sum_{i=1}^N\alpha_iy_i=0 \end{aligned} w=i=1Nαiyixii=1Nαiyi=0

将其代入拉格朗日函数,即得
L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ( ∑ i = 1 N α j y j x j ) ⋅ x i + b ) + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \begin{aligned} L(w,b,\alpha)&=\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_iy_i\Big(\Big(\sum_{i=1}^N\alpha_jy_jx_j\Big)\cdot x_i+b\Big)+\sum_{i=1}^N\alpha_i\\ &=-\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i \end{aligned} L(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((i=1Nαjyjxj)xi+b)+i=1Nαi=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi


min ⁡ w , b L ( w , b , α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min_{w,b}L(w,b,\alpha)=-\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i w,bminL(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

(2)求 min ⁡ w , b L ( w , b , α ) \min_{w,b}L(w,b,\alpha) minw,bL(w,b,α) α \alpha α 的极大,即是对偶问题

max ⁡ α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_\alpha\quad&-\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i\\ \rm{s.t.}\quad&\sum_{i=1}^N\alpha_iy_i=0\\ &\alpha_i\geq 0,\quad i=1,2,\cdots,N \end{aligned} αmaxs.t.21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαii=1Nαiyi=0αi0,i=1,2,,N

将上述目标函数由求极大转换为求极小,即
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \min_\alpha\quad&\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ \rm{s.t.}\quad&\sum_{i=1}^N\alpha_iy_i=0\\ &\alpha_i\geq 0,\quad i=1,2,\cdots,N \end{aligned} αmins.t.21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαii=1Nαiyi=0αi0,i=1,2,,N

上述即对偶最优化问题,假设对偶最优化问题对 α \alpha α 的解为 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^\ast=(\alpha_1^\ast,\alpha_2^\ast,\cdots,\alpha_N^\ast)^T α=(α1,α2,,αN)T,可以由 α ∗ \alpha^\ast α 求得原始最优化问题对 ( w , b ) (w,b) (w,b) 的解 w ∗ , b ∗ w^\ast,b^\ast w,b
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) \begin{aligned} w^\ast&=\sum_{i=1}^N\alpha_i^\ast y_ix_i\\ b^\ast&=y_j-\sum_{i=1}^N\alpha_i^\ast y_i(x_i\cdot x_j) \end{aligned} wb=i=1Nαiyixi=yji=1Nαiyi(xixj)

从而得到分离超平面及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法,是线性可分支持向量机学习的基本算法。

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

2.1、线性支持向量机

上一节的方法对线性不可分训练数据是不适用的,因为这时上述方法中的不等式约束并不能都成立。

假设一个特征空间上的训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}

其中, x i ∈ X = R n x_i\in \cal{X}=\it{R}^n xiX=Rn y i ∈ Y = { + 1 , − 1 } y_i \in{\cal{Y}}=\{+1,-1\} yiY={+1,1} i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N x i x_i xi 为第 i i i 个特征向量, y i y_i yi x i x_i xi 的类标记。通常情况下,训练数据中有一些特异点(outlier),将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。

线性不可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 不能满足函数间隔大于 1 的约束条件,为了解决这个问题,可以对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 引入一个松弛变量 ξ i ≥ 0 \xi_i\geq0 ξi0,使函数间隔加上松弛变量大于等于 1。这样,约束条件变为
y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i(w\cdot x_i+b)\geq 1-\xi_i yi(wxi+b)1ξi

同时,对每个松弛变量 ξ i \xi_i ξi,支付一个代价 ξ i \xi_i ξi。目标函数由原来的 1 2 ∥ w ∥ 2 \dfrac{1}{2}\parallel w\parallel^2 21w2 变成
1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \dfrac{1}{2}\parallel w\parallel^2+C\sum_{i=1}^N\xi_i 21w2+Ci=1Nξi

这里, C > 0 C>0 C>0 称为惩罚参数, C C C 值大时对误分类的惩罚增大, C C C 值小时对误分类的惩罚减小。最小化上式目标函数包含两层含义:使 1 2 ∥ w ∥ 2 \dfrac{1}{2}\parallel w\parallel^2 21w2 尽量小即间隔尽量大,同时使误分类点的个数尽量小, C C C 是调和二者的系数。

上述的思路,我们称为软间隔最大化。线性不可分的线性支持向量机的学习问题变成如下问题(原始问题):
min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯   , N ξ i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \min_{w,b,\xi}\quad &\dfrac{1}{2}\parallel w\parallel^2+C\sum_{i=1}^N\xi_i\\ \rm{s.t.}\quad&y_i(w\cdot x_i+b)\geq1-\xi_i,\quad i=1,2,\cdots,N\\ &\xi_i\geq0,\quad i=1,2,\cdots,N \end{aligned} w,b,ξmins.t.21w2+Ci=1Nξiyi(wxi+b)1ξi,i=1,2,,Nξi0,i=1,2,,N

设上述问题的解是 w ∗ , b ∗ w^\ast,b^\ast w,b,于是得到分类超平面 w ∗ ⋅ x + b ∗ = 0 w^\ast\cdot x+b^\ast=0 wx+b=0 及分类决策函数 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^\ast\cdot x+b^\ast) f(x)=sign(wx+b)。称这样的模型为训练样本线性不可分时的线性支持向量机,简称线性支持向量机

2.2、学习的对偶算法

原始问题的对偶问题是
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯   , N \begin{aligned} \min_\alpha\quad&\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ \rm{s.t.}\quad&\sum_{i=1}^N\alpha_iy_i=0\\ &0\leq\alpha_i\leq C,\quad i=1,2,\cdots,N \end{aligned} αmins.t.21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαii=1Nαiyi=00αiC,i=1,2,,N

2.3、支持向量

在线性不可分的情况下,对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^\ast=(\alpha_1^\ast,\alpha_2^\ast,\cdots,\alpha_N^\ast)^T α=(α1,α2,,αN)T 中对应于 α i ∗ > 0 \alpha_i^\ast>0 αi>0 的样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的实例 x i x_i xi 称为支持向量(软间隔的支持向量)。
在这里插入图片描述

如上图所示,这时的支持向量要比线性可分时的情况复杂一些,软间隔的支持向量 x i x_i xi 或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。若 α i ∗ < C \alpha_i^\ast<C αi<C,则 ξ i = 0 \xi_i=0 ξi=0,支持向量 x i x_i xi 刚好落在间隔边界上;若 α i ∗ = C , 0 < ξ i < 1 \alpha_i^\ast=C,0<\xi_i<1 αi=C,0<ξi<1,则分类正确, x i x_i xi 在间隔边界与分离超平面之间;若 α i ∗ = C , ξ i = 1 \alpha_i^\ast=C,\xi_i=1 αi=C,ξi=1,则 x i x_i xi 在分离超平面上;若 α i ∗ = C , ξ i > 1 \alpha_i^\ast=C,\xi_i>1 αi=C,ξi>1,则 x i x_i xi 位于分离超平面误分一侧。

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

对解线性分类问题,线性分类支持向量机是一种有效的方法,但是有时分类问题是非线性的,这时可以使用非线性支持向量机。

3.1、核技巧

(1)非线性分类问题

在这里插入图片描述
如左图所示,无法用直线(线性模型)将正负实例正确分开,但可以用一条椭圆曲线(非线性模型)将它们正确分开。

一般来说,对给定的一个训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中,实例 x i x_i xi 属于输入空间, x i ∈ X = R n x_i\in \cal{X} =R^n xiX=Rn,对应的标记有两类 y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N y_i\in \cal{Y}=\{-1,+1\},i=1,2,\cdots,\it N yiY={1,+1},i=1,2,,N。如果能用 R n R^n Rn 的一个超曲面将正负实例正确分开,则称这个问题为非线性可分问题

分线性问题往往不好求解,所以采用的方法是进行一个非线性映射,将非线性问题转换为线性问题,通过解线性问题的方法求解非线性问题,如上图所示,将左图中椭圆变换成右图的直线,将非线性分类问题变换为线性分类问题。

设原空间为 X ⊂ R 2 \cal{X} \subset \it{R}^2 XR2 x = ( x ( 1 ) , x ( 2 ) ) T ∈ X x=\big(x^{(1)},x^{(2)}\big)^T\in\cal{X} x=(x(1),x(2))TX,新空间为 Z ⊂ R 2 \cal{Z} \subset \it{R}^2 ZR2 z = ( z ( 1 ) , z ( 2 ) ) T ∈ Z z=\big(z^{(1)},z^{(2)}\big)^T\in\cal{Z} z=(z(1),z(2))TZ,定义从原空间到新空间的变换(映射):
z = ϕ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) T z=\phi(x)=\big((x^{(1)})^2,(x^{(2)})^2\big)^T z=ϕ(x)=((x(1))2,(x(2))2)T

经过变换 z = ϕ ( x ) z=\phi(x) z=ϕ(x),原空间 X ⊂ R 2 \cal{X} \subset \it{R}^2 XR2 变换为新空间 Z ⊂ R 2 \cal{Z} \subset \it{R}^2 ZR2,原空间中的点相应地变换为新空间中的点,原空间中的椭圆
w 1 ( x ( 1 ) ) 2 + w 2 ( x ( 2 ) ) 2 + b = 0 w_1(x^{(1)})^2+w_2(x^{(2)})^2+b=0 w1(x(1))2+w2(x(2))2+b=0

变换成为新空间中的直线
w 1 z ( 1 ) + w 2 z ( 2 ) + b = 0 w_1z^{(1)}+w_2z^{(2)}+b=0 w1z(1)+w2z(2)+b=0

在变换后的新空间里,直线 w 1 z ( 1 ) + w 2 z ( 2 ) + b = 0 w_1z^{(1)}+w_2z^{(2)}+b=0 w1z(1)+w2z(2)+b=0 可以将变换后的正负实例点正确分开。这样原空间的非线性可分问题就变成了新空间的线性可分问题。

(2)核函数的定义

X \cal X X 是输入空间(欧式空间 R n R^n Rn 的子集或离散集合),又设 H \cal H H 为特征空间(希尔伯特空间),如果存在一个从 X \cal X X H \cal H H 的映射
ϕ ( x ) : X → H \phi(x):\cal{X}\rightarrow\cal{H} ϕ(x):XH

使得对所有 x , z ∈ X x,z\in\cal{X} x,zX,函数 K ( x , z ) K(x,z) K(x,z) 满足条件
K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z)=\phi(x)\cdot\phi(z) K(x,z)=ϕ(x)ϕ(z)

则称 K ( x , z ) K(x,z) K(x,z)核函数 ϕ ( x ) \phi(x) ϕ(x) 为映射函数,式中 ϕ ( x ) ⋅ ϕ ( z ) \phi(x)\cdot\phi(z) ϕ(x)ϕ(z) ϕ ( x ) \phi(x) ϕ(x) ϕ ( z ) \phi(z) ϕ(z) 的内积。

(3)核技巧在支持向量机中的应用

我们注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例域实例之间的内积。在对偶问题的目标函数中的内积 x i ⋅ x j x_i\cdot x_j xixj 可以用核函数 K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) K(x_i,x_j)=\phi(x_i)\cdot\phi(x_j) K(xi,xj)=ϕ(xi)ϕ(xj) 来代替,此时对偶问题的目标函数成为
W ( α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i W(\alpha)=\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i W(α)=21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi

同样,分类决策函数中的内积也可以用核函数代替,而分类决策函数式成为
f ( x ) = s i g n ( ∑ i = 1 N s α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x ) + b ∗ ) = s i g n ( ∑ i = 1 N s α i ∗ y i K ( x i , x ) + b ∗ ) \begin{aligned} f(x)&=sign\Big(\sum_{i=1}^{N_s}\alpha_i^\ast y_i\phi(x_i)\cdot\phi(x)+b^\ast\Big)\\ &=sign\Big(\sum_{i=1}^{N_s}\alpha_i^\ast y_iK(x_i,x)+b^\ast\Big) \end{aligned} f(x)=sign(i=1Nsαiyiϕ(xi)ϕ(x)+b)=sign(i=1NsαiyiK(xi,x)+b)

3.2、常用核函数

  1. 多项式核函数(polynomial kernel function)
    K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z)=(x\cdot z +1)^p K(x,z)=(xz+1)p
  2. 高斯核函数(Gaussian kernel function)
    K ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 σ 2 ) K(x,z)=\exp\Big(-\dfrac{\parallel x-z\parallel}{2\sigma^2}\Big) K(x,z)=exp(2σ2xz)

3.3、非线性支持向量分类机

如上所述,利用核技巧可以将线性分类的学习问题应用到非线性分类问题中去。将线性支持向量机扩展到非线性支持向量机,只需将线性支持向量机对偶形式中的内积换成核函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/346774.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

读懂【浅拷贝】

1、对象直接赋值 先来看一下&#xff0c;创建一个对象obj&#xff08;原对象&#xff09;&#xff0c;将对象obj直接赋值给另一个对象o&#xff08;新对象&#xff09;,修改新对象o中的属性值&#xff0c;会发生什么&#xff1f;-----原来的对象obj内容也被改掉了。 const ob…

BurpSuite高阶使用指南

BurpSuite高阶使用指南 1.代理过滤 HTTP 历史记录设置模式Bambdas 过滤2.Intruder模块载荷的处理3.Intruder资源池的使用1.代理过滤 HTTP 历史记录 可以筛选 HTTP 历史记录,使其更易于分析 交互列表上方的筛选器栏描述当前显示筛选器。要进行配置,请单击过滤器栏以打开“配…

C#,最小生成树(MST)博鲁夫卡(Boruvka)算法的源代码

Otakar Boruvka 本文给出Boruvka算法的C#实现源代码。 Boruvka算法用于查找边加权图的最小生成树&#xff08;MST&#xff09;&#xff0c;它早于Prim和Kruskal的算法&#xff0c;但仍然可以被认为是两者的关联。 一、Boruvka算法的历史 1926年&#xff0c;奥塔卡博鲁夫卡&…

【算法Hot100系列】不同路径

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

基于springboot+vue的师生健康信息管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

使用CSS 或 SASS 实现主题背景切换效果

目录 &#x1f389;应用背景 &#x1f389;分析实现思路 &#x1f389;CSS实现主题切换 &#x1f389;SCSS实现主题切换 &#x1f389;结语 &#x1f389;应用背景 现在的主流网站中&#xff0c;无论是一些技术文档获取官网&#xff0c;都存在着使用一个switch按钮实现主题…

考研C语言刷题基础篇之数组(一)

目录 第一题&#xff1a;用数组作为参数实现冒泡排序 不用函数的冒泡排序 冒泡排序原理&#xff1a; 错误的数值传参冒泡排序 错误的原因 就是什么是数组名 正确的数组传参的冒泡排序 数组的地址和数组首元素的地址的区别 第一题&#xff1a;用数组作为参数实现冒泡排…

unity36——原神等手游常用的物理bone(弹簧)裙摆,与Cloth(布料)裙摆插件 Magica Cloth 使用教程(一)

目前我们手游开发&#xff0c;经常会遇到头发&#xff0c;双马尾&#xff0c;长裙&#xff0c;飘带等。以前我们都是在三维软件中制作骨骼后&#xff0c;自己手动K针。这样做有一些弊端&#xff0c;时间长&#xff0c;并且K帧的飘带效果没法随着游戏中角色的移动&#xff0c;旋…

DSP-TMS320F2837x学习---X-BAR

X-BAR主要包括三部分&#xff1a;输入X-BAR、输出X-BAR、ePWM X-BAR、CLB-XBAR&#xff08;注&#xff1a;28377D及以下不含有CLB模块&#xff09; 一、输入X-BAR 输入X-BAR可以访问每个GPIO&#xff0c;送到不同IP模块&#xff0c;例如ADC、ePWM、外部中断等。 注意&#xf…

深度学习剖根问底: Adam优化算法的由来

在调整模型更新权重和偏差参数的方式时&#xff0c;你是否考虑过哪种优化算法能使模型产生更好且更快的效果&#xff1f;应该用梯度下降&#xff0c;随机梯度下降&#xff0c;还是Adam方法&#xff1f; 这篇文章介绍了不同优化算法之间的主要区别&#xff0c;以及如何选择最佳…

搬运5款超级好用的效率软件

​ 今天再来推荐5个超级好用的效率软件&#xff0c;无论是对你的学习还是办公都能有所帮助&#xff0c;每个都堪称神器中的神器&#xff0c;用完后觉得不好用你找我。 1.绘图软件——Krita ​ Krita是一款专业的开源绘图软件&#xff0c;适用于数字绘画、动画、漫画、插画等领…

qt-C++笔记之使用信号和槽实现跨类成员变量同步响应

qt-C笔记之使用信号和槽实现跨类成员变量同步响应 —— 杭州 2024-01-24 code review! 文章目录 qt-C笔记之使用信号和槽实现跨类成员变量同步响应1.运行2.main.cpp3.test.pro4.编译 1.运行 2.main.cpp 代码 #include <QCoreApplication> #include <QObject> #…

Redisson 分布式锁可重入的原理

目录 1. 使用 Redis 实现分布式锁存在的问题 2. Redisson 的分布式锁解决不可重入问题的原理 1. 使用 Redis 实现分布式锁存在的问题 不可重入&#xff1a;同一个线程无法两次 / 多次获取锁举例 method1 执行需要获取锁method2 执行也需要&#xff08;同一把&#xff09;锁如…

Backtrader 文档学习-Order OCO orders

Backtrader 文档学习-Order OCO orders 主要是可以使用订单组的管理策略&#xff0c;使用订单组策略&#xff0c;则一组订单中&#xff0c;有一个符合条件的订单成交&#xff0c;订单组中其他的订单就自动被取消。 1.概述 V1.9.36.116 版本交互式代理支持StopTrail、StopTra…

初探二分法

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 文章目录 推荐阅读题目解法一解法二 题目 题目&#xff1a;给定一个 n 个元素有序的&#xff0…

图像旋转角度计算并旋转

#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import numpy as np import timedef Rotate(img, angle0.0,fill0):"""旋转:param img:待旋转图像:param angle: 旋转角度:param fill&#xff1a;填充方式&#xff0c;默认0黑色填充:return: img: 旋转后…

[已解决]504 Gateway Time-out 网关超时

文章目录 问题&#xff1a;504 Gateway Time-out 504 Gateway Time-out 网关超时思路解决 问题&#xff1a;504 Gateway Time-out 504 Gateway Time-out 网关超时 思路 网上的常规思路是修改nginx配置文件,增加请求执行时间,试过没有用 keepalive_timeout 600; fastcgi_con…

凭服务出圈的海底捞,竟然在这件事上也很卷

1月9日&#xff0c;法大大与企业绿色发展研究院联合发布了《2023年签约减碳与低碳办公白皮书》&#xff08;点击阅读及下载&#xff1a;法大大推出“签约减碳”年度账单&#xff0c;引领低碳办公新风潮&#xff09;&#xff0c;该白皮书基于《低碳办公评价》标准倡导的创新减碳…

qt-C++笔记之命令行编译程序,特别是使用Q_OBJECT宏包含了moc(Meta-Object Compiler)的情况

qt-C笔记之命令行编译程序&#xff0c;特别是使用Q_OBJECT宏包含了moc(Meta-Object Compiler)的情况 —— 杭州 2024-01-24 code review! 文章目录 qt-C笔记之命令行编译程序&#xff0c;特别是使用Q_OBJECT宏包含了moc(Meta-Object Compiler)的情况1.问题现象&#xff1a;q…

eNSP学习——交换机配置Trunk接口

目录 原理概述 实验内容 实验目的 实验步骤 实验拓扑 实验编址&#xff1a; 试验步骤 基本配置 创建VLAN&#xff0c;配置Access接口 配置Trunk接口 思考题 原理概述 在以太网中&#xff0c;通过划分VLAN来隔离广播域和增强网络通信的安全性。以太网通常由多台交换机组…
最新文章