SVM_2

SVM进阶

核函数

在推导SVM公式时,我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而在实际应用中,原始样本空间也许并不存在一个能正确划分样本类的超平面。例如,“异或”问题就不是线性可分的。

对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

ϕ ( x ) \phi(x) ϕ(x)表示将 x x x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为 f ( x ) = w T ϕ ( x ) + b f(x) = w^T\phi(x)+b f(x)=wTϕ(x)+b其中 w w w b b b是模型参数。其模型可表示为 min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t .      y i ( w T ϕ ( x i ) + b ) ≥ 1 , i = 1 , 2 , … , m . \min\limits_{w,b}\frac{1}{2}||w||^2 \\ s.t. ~~~~ y_i(w^T\phi(x_i)+b)\geq1,i=1,2,\ldots,m. w,bmin21w2s.t.    yi(wTϕ(xi)+b)1,i=1,2,,m.其对偶问题为:
(1) max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) T s . t .      ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , … , m . \tag{1}\max\limits_\alpha\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j)^T \\ s.t.~~~~\sum_{i=1}^{m}\alpha_iy_i=0, \\ \alpha_i \geq0,i=1,2,\ldots,m. αmaxi=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)Ts.t.    i=1mαiyi=0,αi0,i=1,2,,m.(1)
求解上式涉及到计算 θ ( x i ) T θ ( x j ) \theta(x_i)^T\theta(x_j) θ(xi)Tθ(xj),这是样本 x i x_i xi x j x_j xj映射到特征空间后的内积。由于特征空间维数可能很高,甚至无穷维,直接计算困难。为了避开这个障碍,可以设想一个函数: (2) κ ( x i , x j ) = ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ = ϕ ( x i ) T ϕ ( x j ) \tag{2}\kappa(x_i,x_j)=\langle\phi(x_i),\phi(x_j)\rangle=\phi(x_i)^T\phi(x_j) κ(xi,xj)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)(2)把(2)式带入(1)式可得 (3) max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j κ ( x i , x j ) s . t .      ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , … , m . \tag{3}\max\limits_\alpha\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\kappa(x_i,x_j) \\ s.t.~~~~\sum_{i=1}^{m}\alpha_iy_i=0, \\ \alpha_i \geq0,i=1,2,\ldots,m. αmaxi=1mαi21i=1mj=1mαiαjyiyjκ(xi,xj)s.t.    i=1mαiyi=0,αi0,i=1,2,,m.(3)求解后可得 (4) f ( x ) = w T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i κ ( x , x i ) + b    \tag{4}f(x) = w^T\phi(x)+b=\sum_{i=1}^{m}\alpha_iy_i\phi(x_i)^T\phi(x)+b=\sum_{i=1}^{m}\alpha_iy_i\kappa(x,x_i)+b~~ f(x)=wTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(x)+b=i=1mαiyiκ(x,xi)+b  (4)

核函数定理

χ \chi χ为输入空间, κ ( ⋅ , ⋅ ) \kappa(\cdot,\cdot) κ(,)是定义在 χ \chi χ x χ \chi χ上的对称函数,则 κ \kappa κ是核函数当且仅当对于任意数据 D = { x 1 , x 2 , … , x m } D=\{x_1, x_2, \dots, x_m\} D={x1,x2,,xm},“核矩阵” K K K总是半正定的: (5) K = [ κ ( x 1 , x 2 ) … κ ( x 1 , x j ) … κ ( x 1 , x m ) ⋮ ⋱ ⋮ ⋱ ⋮ κ ( x i , x 1 ) … κ ( x i , x j ) … κ ( x i , x m ) ⋮ ⋱ ⋮ ⋱ ⋮ κ ( x m , x 1 ) … κ ( x m , x j ) … κ ( x m , x m ) ] \tag{5}K = \begin{bmatrix} \kappa(x_1,x_2) & \ldots & \kappa(x_1, x_j) &\ldots&\kappa(x_1,x_m) \\ \vdots & \ddots & \vdots &\ddots&\vdots\\ \kappa(x_i,x_1)&\ldots&\kappa(x_i,x_j)&\ldots&\kappa(x_i,x_m)\\ \vdots & \ddots & \vdots &\ddots&\vdots\\ \kappa(x_m,x_1)&\ldots&\kappa(x_m,x_j)&\ldots&\kappa(x_m,x_m) \end{bmatrix} K=κ(x1,x2)κ(xi,x1)κ(xm,x1)κ(x1,xj)κ(xi,xj)κ(xm,xj)κ(x1,xm)κ(xi,xm)κ(xm,xm)(5)公式(5)表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。事实上,对于一个半正定核矩阵,总能找到一个与之对应的映射 ϕ \phi ϕ。换言之,任何一个核函数都隐式地定义了一个称为“再生核希尔伯特空间”(Reproducing Kernel Hilbert Space,简称RKHS)的特征空间。

通过前面的讨论可知,我们希望样本在特征向量空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要。需要注意的是,在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,而核函数也仅是隐式的定义了这个特征空间。于是,“核函数选择”成为支持向量机的最大变数。若核函数选择不合适,则意味着将本样本映射到了一个不合适的特征空间,很可能导致性能不佳。


名称表达式参数
线性核 κ ( x i , x j ) = x i T x j \kappa(x_i,x_j)=x_i^Tx_j κ(xi,xj)=xiTxj
多项式核 κ ( x i , x j ) = ( x i T x j ) d \kappa(x_i,x_j)=(x_i^T x_j)^d κ(xi,xj)=(xiTxj)d d ≥ 1 d\geq1 d1为多项式的次数
高斯核 κ ( x i , x j ) = e x p ( ∥ x i − x j ∥ 2 2 σ 2 ) \kappa(x_i,x_j)=exp(\frac{\|x_i-x_j\|^2}{2\sigma^2}) κ(xi,xj)=exp(2σ2xixj2) σ > 0 \sigma>0 σ>0为高斯核的带宽
拉普拉斯核 κ ( x i , x j ) = e x p ( − ∥ x i − x j ∥ 2 2 σ 2 ) \kappa(x_i,x_j)=exp(-\frac { \|x_i-x_j\|^2} {2\sigma^2}) κ(xi,xj)=exp(2σ2xixj2) σ > 0 \sigma>0 σ>0
Sigmoid核 κ ( x i , x j ) = t a n h ( β x i T x j + θ ) \kappa(x_i,x_j)=tanh(\beta x_i^Tx_j+\theta) κ(xi,xj)=tanh(βxiTxj+θ) t a n h tanh tanh为双曲正切函数, β &gt; 0 , θ &lt; 0 \beta&gt;0,\theta&lt;0 β>0,θ<0

此外,还可以通过组合得到,例如:

  • κ 1 \kappa_1 κ1 κ 2 \kappa_2 κ2为核函数,则对于任意正数 γ 1 \gamma_1 γ1 γ 2 \gamma_2 γ2,其线性组合, γ 1 κ 1 + γ 2 κ 2 \gamma_1\kappa_1+\gamma_2\kappa_2 γ1κ1+γ2κ2也是核函数
  • κ 1 \kappa_1 κ1 κ 2 \kappa_2 κ2为核函数,则核函数的直积, κ 1 ⊗ κ ( x , z ) = κ 1 ( x , z ) κ 2 ( x , z ) \kappa_1\otimes\kappa(x,z)=\kappa_1(x,z)\kappa_2(x,z) κ1κ(x,z)=κ1(x,z)κ2(x,z)也是核函数
  • κ 1 \kappa_1 κ1为核函数,则对于任意函数 g ( x ) g(x) g(x) κ ( x , z ) = g ( x ) κ 1 ( x , z ) g ( z ) \kappa(x,z)=g(x)\kappa_1(x,z)g(z) κ(x,z)=g(x)κ1(x,z)g(z)也是核函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值