两遍读懂支持向量机 SVM (Kernel SVM)

0. 理解 SVM 系列

Step-1. 两遍读懂支持向量机 SVM (软硬 SVM)
Step-2. 两遍读懂支持向量机 SVM (Kernel SVM)
Step-3. 两遍读懂支持向量机 SVM (一些细节)


1. Kernel SVM

SVM 算法中 软间隔 SVM 和硬间隔 SVM 是用来求解线性可分 (或勉强线性可分) 的分类问题的,而 Kernel SVM 则是用来求解线性不可分的分类问题的。顾名思义,Kernel SVM 利用 核函数 (Kernel function) 将样本从低维空间 (输入空间) 映射到高维空间 (特征空间) 来进行线性划分。

考虑如下图 (a) 中的例子,假设样本 x x x 是 1 维特征向量 ( x ∈ R x\in R xR x ( i ) x^{(i)} x(i)表示第 i i i 个样本),即可看做是 x x x 轴上的实数。现在需要将其进行分类。很显然,在一维空间内无法用一条直线将他们区分开,因此这是一个典型的线性不可分问题。于是乎,我们需要再增加一维特征,如 x 2 x^2 x2 轴,这样一来,我们可以非常轻松的在二维空间上线性分割。这个就是 Kernel SVM 思想的简单体现,即:既然低维空间无法线性分割,那我们就将样本转换到高维空间进行线性分割吧。

在这里插入图片描述

此时,摆在我们面前的有两道难题:(1) 如何进行映射?(2) 如何求解高维 w ∗ , b ∗ w^*,b^* w,b 参数? 对于第一个问题,当然是利用核函数进行维度的转变 (如 x → ϕ ( x ) x \rightarrow \phi(x) xϕ(x))。对于第二个问题,我们将原先求解软硬间隔 SVM 的优化目标中的 x x x 替换为 ϕ ( x ) \phi(x) ϕ(x) ,并结合核技巧来求解最终的超平面 w ∗ ϕ ( x ) + b ∗ = 0 w^*\phi(x)+b^*=0 wϕ(x)+b=0

2. 利用 Kernel 函数进行维度转变

假定映射函数为 ϕ ( x ) \phi(x) ϕ(x),即 ϕ : x → ϕ ( x ) \phi:x \rightarrow \phi(x) ϕ:xϕ(x)。其中, x x x 表示输入空间样本,为 p p p 维向量,将其表示为 x = ( x 1 , x 2 , . . . , x p ) T x=(x_1,x_2,...,x_p)^T x=(x1,x2,...,xp)T ϕ ( x ) \phi(x) ϕ(x) 为其映射的高维空间的样本,为 k k k 维向量,记为 ϕ ( x ) = ( x 1 , x 2 , . . . , x k ) T \phi(x)=(x_1,x_2,...,x_k)^T ϕ(x)=(x1,x2,...,xk)T。如下图所示,这里的 ϕ \phi ϕ 函数将 p p p 维向量转换为高维的向量。

在这里插入图片描述

我们“惊喜的”发现,在输入空间的点 x x x 与高维特征空间的点 ϕ ( x ) \phi(x) ϕ(x) 存在这么一个等式,即,

ϕ ( x ( i ) ) ⋅ ϕ ( x ( j ) ) = ( x ( i ) ⋅ x ( j ) + 1 ) 2 \phi(x^{(i)})·\phi(x^{(j)})=(x^{(i)}·x^{(j)}+1)^2 ϕ(x(i))ϕ(x(j))=(x(i)x(j)+1)2

于是乎,高维向量 ( ϕ ( x ) \phi(x) ϕ(x)) 的计算可以用 ( x x x) 来表示。可以想象成将会极大的节省计算量。在SVM 中,我们定义一些数学公式为 核函数 (Kernel fucntion),它们能将输入空间的样本转化为高维空间的形式,同时将高维向量的操作转化为低维向量的操作,从而节省巨大的计算量 (也称为 核技巧 (Kernel trick))。我们将核函数定义为 κ ( x ( i ) , x ( j ) ) \kappa(x^{(i)},x^{(j)}) κ(x(i),x(j)),其输入是两个向量 x ( i ) , x ( j ) x^{(i)},x^{(j)} x(i),x(j),输出是 x ( i ) x^{(i)} x(i) x ( j ) x^{(j)} x(j) 的内积,即,

κ ( x ( i ) , x ( j ) ) = ϕ ( x ( i ) ) ⋅ ϕ ( x ( j ) ) \kappa(x^{(i)},x^{(j)})=\phi(x^{(i)})·\phi(x^{(j)}) κ(x(i),x(j))=ϕ(x(i))ϕ(x(j))

常见的核函数包括多项式核函数 (Polynomial Kernel),高斯核函数 (Gaussion Kernel) 等,这些函数都有上述性质。全部核函数请参照博客 Kernel Functions1

  • Polynomial Kernel κ ( x i , x j ) = ( x i ⋅ x j + 1 ) d \kappa(x_i,x_j)=(x_i·x_j+1)^d κ(xi,xj)=(xixj+1)d,其中 d ≥ 0 d\geq0 d0
  • Gaussion Kernel κ ( x i , x j ) = exp ⁡ ( − ∣ ∣ 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
  • Gaussion Radial Basis Kernel κ ( x i , x j ) = exp ⁡ ( − γ ∣ ∣ x i − x j ∣ ∣ 2 ) \kappa(x_i,x_j)=\exp(-\gamma||x_i-x_j||^2) κ(xi,xj)=exp(γxixj2),其中 γ > 0 \gamma>0 γ>0
  • Hyperbolic tangent kernel κ ( x i , x j ) = tanh ⁡ ( k x i ⋅ x j + c ) \kappa(x_i,x_j)=\tanh(kx_i·x_j+c) κ(xi,xj)=tanh(kxixj+c),其中 k > 0 , c < 0 k>0,c<0 k>0,c<0

注意,每一种核函数对应着一种映射方式 ϕ \phi ϕ。比如 Polynomial Kernel 中,输入样本 x x x 可以转换为,

ϕ ( x ) = ( ξ , 2 γ ξ ( x 1 ) , 2 γ ξ ( x 2 ) , . . . , 2 γ ξ ( x p ) , γ ( x 1 ) 2 , γ ( x 2 ) 2 , . . . , γ ( x p ) 2 ) T \phi(x)=(\xi,\sqrt{2\gamma\xi}(x_1),\sqrt{2\gamma\xi}(x_2),...,\sqrt{2\gamma\xi}(x_p),\gamma (x_1)^2,\gamma (x_2)^2,...,\gamma (x_p)^2)^T ϕ(x)=(ξ,2γξ (x1),2γξ (x2),...,2γξ (xp),γ(x1)2,γ(x2)2,...,γ(xp)2)T

在一些教材中,人们提出了一种叫 线性核函数 (Linear Kernel)2 的概念,即 κ ( x ( i ) , x ( j ) ) = x ( i ) ⋅ x ( j ) \kappa(x^{(i)},x^{(j)})=x^{(i)}·x^{(j)} κ(x(i),x(j))=x(i)x(j)。事实上,当 Kernel SVM 使用这个核函数时,并没有进行维度的变化。换句话说,如果 Kernel SVM 使用 Linear Kernel,其效果等价于之前的 硬间隔 SVM

3. 求解高维空间中的线性参数 w ∗ , b ∗ w^*,b^* w,b

SVM 的优化思路是 样本点到超平面的间隔最大化,在原空间上SVM 要优化的问题的拉格朗日函数如下所示,即我们要做的就是在 λ i ≥ 0 \lambda_i\geq0 λi0 的约束下求解 L ( w , b , λ ) L(w,b,\lambda) L(w,b,λ) 函数的最小值, (详细的推导过程请参考我的前一篇博客 → \rightarrow 软硬SVM)

L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i m λ i [ 1 − y ( i ) ( w T x ( i ) + b ) ] s . t .   λ i ≥ 0 L(w,b,\lambda) = \frac{1}{2}||w||^2 + \sum_{i}^{m}\lambda_i[1-y^{(i)}(w^Tx^{(i)}+b)] \\ s.t. \ \lambda_i \geq 0 L(w,b,λ)=21w2+imλi[1y(i)(wTx(i)+b)]s.t. λi0

由于在原平面 x x x 无法线性分割两类样本,于是我们将每个样本 x x x 映射到高位空间 ϕ ( x ) \phi(x) ϕ(x),映射过程可以看做: x ( i ) → ϕ ( x ( i ) ) x^{(i)}\rightarrow \phi(x^{(i)}) x(i)ϕ(x(i))。故此时我们只需要将优化的问题中的 x ( i ) x^{(i)} x(i) 替换为 ϕ ( x ( i ) ) \phi(x^{(i)}) ϕ(x(i)) 即可,则优化问题变为,

L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i m λ i [ 1 − y ( i ) ( w T ϕ ( x ( i ) ) + b ) ] s . t .   λ i ≥ 0 L(w,b,\lambda) = \frac{1}{2}||w||^2 + \sum_{i}^{m}\lambda_i[1-y^{(i)}(w^T\phi(x^{(i)})+b)] \\ s.t. \ \lambda_i \geq 0 L(w,b,λ)=21w2+imλi[1y(i)(wTϕ(x(i))+b)]s.t. λi0

我们将其转换为对偶问题 (即先对 w , b w,b w,b L L L 的最小值,在对 λ \lambda λ L L L 的最大值),对 w , b w,b w,b 的求导得到,

∂ L ∂ w = w − ∑ i = 1 m λ i y ( i ) ϕ ( x ( i ) ) ,    ∂ L ∂ b = − ∑ i = 1 m λ i y ( i ) \frac{\partial L}{\partial w} = w-\sum_{i=1}^{m}\lambda_iy^{(i)}\phi(x^{(i)}), \ \ \frac{\partial L}{\partial b} = -\sum_{i=1}^{m}\lambda_iy^{(i)} wL=wi=1mλiy(i)ϕ(x(i)),  bL=i=1mλiy(i)

w , b w,b w,b 的偏导数为 0,我们得到 w ∗ = ∑ i = 1 m λ i y ( i ) ϕ ( x ( i ) ) w^*=\sum_{i=1}^m\lambda_iy^{(i)}\phi(x^{(i)}) w=i=1mλiy(i)ϕ(x(i)) 以及 ∑ i = 1 m λ i y ( i ) = 0 \sum_{i=1}^m\lambda_iy^{(i)}=0 i=1mλiy(i)=0。我们将它们带入到 L L L 中可得到其最小值 L m i n ( w , b , λ ) = θ ( λ ) L_{min}(w,b,\lambda)=\theta(\lambda) Lmin(w,b,λ)=θ(λ),最优化问题转变为求解 θ ( λ ) \theta(\lambda) θ(λ) 的最大值问题,即

θ ( λ ) = − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y ( i ) y ( j ) [ ϕ ( x i ) ] T ϕ ( x j ) + ∑ i = 1 m λ i s . t . ∑ i = 1 m λ i y ( i ) = 0 ,    λ i ≥ 0 , i = 1... m . \theta(\lambda) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^m \lambda_i\lambda_jy^{(i)}y^{(j)}[\phi(x_i)]^T\phi(x_j) + \sum_{i=1}^m\lambda_i \\ s.t. \sum_{i=1}^m\lambda_iy^{(i)}=0, \ \ \lambda_i \geq 0, i=1...m. θ(λ)=21i=1mj=1mλiλjy(i)y(j)[ϕ(xi)]Tϕ(xj)+i=1mλis.t.i=1mλiy(i)=0,  λi0,i=1...m.

由于 ϕ ( x i ) , ϕ ( x j ) \phi(x_i), \phi(x_j) ϕ(xi),ϕ(xj) 都是 (nx1) 维向量,因此上式中的 [ ϕ ( x i ) ] T ϕ ( x j ) [\phi(x_i)]^T\phi(x_j) [ϕ(xi)]Tϕ(xj) 也可以写为内积的形式 ϕ ( x i ) ⋅ ϕ ( x j ) \phi(x_i)·\phi(x_j) ϕ(xi)ϕ(xj),故 θ ( λ ) \theta(\lambda) θ(λ) 也可以写成 θ ( λ ) = − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y ( i ) y ( j ) ϕ ( x i ) ϕ ( x j ) + ∑ i = 1 m λ i \theta(\lambda)= -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^m \lambda_i\lambda_jy^{(i)}y^{(j)}\phi(x_i)\phi(x_j) + \sum_{i=1}^m\lambda_i θ(λ)=21i=1mj=1mλiλjy(i)y(j)ϕ(xi)ϕ(xj)+i=1mλi

此时利用我们的核技巧 κ ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) \kappa(x_i,x_j)=\phi(x_i)·\phi(x_j) κ(xi,xj)=ϕ(xi)ϕ(xj),将 θ ( λ ) \theta(\lambda) θ(λ) 写作,

θ ( λ ) = − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y ( i ) y ( j ) κ ( x i , x j ) + ∑ i = 1 m λ i \theta(\lambda) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^m \lambda_i\lambda_jy^{(i)}y^{(j)}\kappa(x_i,x_j) + \sum_{i=1}^m\lambda_i θ(λ)=21i=1mj=1mλiλjy(i)y(j)κ(xi,xj)+i=1mλi

此时带入任一合理的核函数 κ ( x i , x j ) \kappa(x_i,x_j) κ(xi,xj) 即可算出 θ ( λ ) \theta(\lambda) θ(λ),与之前类似的,利用 SMO 算法,我们可以解出使得 θ ( λ ) \theta(\lambda) θ(λ) 最大的 λ ∗ \lambda^* λ 的值。

接着,我们找到位于决策平面上的点 ϕ ( x ( s ) ) \phi(x^{(s)}) ϕ(x(s)),并将其带入方程 y ( s ) ( ( w ∗ ) T ϕ ( x s ) + b ) = 1 y^{(s)}((w^*)^T\phi(x^{s})+b)=1 y(s)((w)Tϕ(xs)+b)=1,我们可以计算出 b ∗ b^* b 的值,

b ∗ = y ( s ) − ∑ i = 1 m λ i y ( i ) ϕ ( x ( i ) ) ϕ ( x ( i ) ) = y ( s ) − ∑ i = 1 m λ i y ( i ) κ ( x ( i ) , x ( s ) ) b^*=y^{(s)}-\sum_{i=1}^{m}\lambda_iy^{(i)}\phi(x^{(i)})\phi(x^{(i)})=y^{(s)}-\sum_{i=1}^{m}\lambda_iy^{(i)}\kappa(x^{(i)},x^{(s)}) b=y(s)i=1mλiy(i)ϕ(x(i))ϕ(x(i))=y(s)i=1mλiy(i)κ(x(i),x(s))

于是乎,超平面 ( w ∗ ) T ϕ ( x ) + b = 0 (w^*)^T\phi(x)+b=0 (w)Tϕ(x)+b=0,可以写为,

∑ i = 1 m λ i y ( i ) ϕ ( x ( i ) ) ϕ ( x ) + b ∗ = 0 \sum_{i=1}^m\lambda_iy^{(i)}\phi(x^{(i)})\phi(x)+b^*=0 i=1mλiy(i)ϕ(x(i))ϕ(x)+b=0

w ∗ , b ∗ w^*,b^* w,b 全部带入上式,最终超平面可以写为,

∑ i = 1 m λ i y ( i ) κ ( x ( i ) , x ) + y ( s ) − ∑ i = 1 m λ i y ( i ) κ ( x ( i ) , x ( s ) ) = 0 \sum_{i=1}^m\lambda_iy^{(i)}\kappa(x^{(i)},x)+y^{(s)}-\sum_{i=1}^{m}\lambda_iy^{(i)}\kappa(x^{(i)},x^{(s)})=0 i=1mλiy(i)κ(x(i),x)+y(s)i=1mλiy(i)κ(x(i),x(s))=0

通过上述可以知道,通过核技巧,我们甚至不用知道映射的具体细节 ϕ ( x ) \phi(x) ϕ(x),而直接计算出了高维空间中的线性 w ∗ , b ∗ w^*,b^* w,b,这些都是核函数的功劳。在应用中,我们倾向于将核函数看做一个黑盒子而不去理解其内部原理,但一定要理解 kernel SVM 的思想,即将输入空间转换为高维空间来进行线性划分。


  1. DataFlair team. Kernel Functions-Introduction to SVM Kernel and Examples. Link ↩︎

  2. Sonack. 机器学习技法–Kernel SVM. Link ↩︎

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值