为了账号安全,请及时绑定邮箱和手机立即绑定

【机器学习】支持向量机——核函数(SVM下篇)

核函数

前面的上篇、中篇的内容都是在样本线性可分的基础上进行的。但是现实情况确实,并不是所有的样本集都是线性可分的。对于非线性可分的数据集,我们依旧采用上篇、中篇的办法来进行优化求解,显然是很鸡肋的。例如:
图片描述
那么有没有办法,能够将线性不可分的样本空间转变为线性可分的样本空间?即可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。幸运的是如果,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。将线性不可分(非线性)的样本空间映射到高维空间,我们就可以利用高维特征向量进行线性分类,即将非线性问题转化为线性问题

不仿,令变换函数为ϕ(x)\phi(x),表示将xx映射到更高维的特征空间,即映射后的特征向量,于是待求解的高维分类超平面函数可以表示为:
f(x)=wTϕ(x)+bf(x)=w^T\phi(x)+b
其中w,bw,b为待求参数。
根据前两篇的内容,我们要优化的目标为:
minw,b12w2\underset{w,b}{min}\frac{1}{2}||w||^2
其中,yi(wTϕ(xi)+b)1,i=1,2,,Ny_i(w^T\phi(x_i)+b)\geq1,\qquad i=1,2,\cdots,N
进而通过拉格朗日对偶性原理,可得:
maxai=1Nai12i=1Nj=1Naiajyiyjϕ(xi)Tϕ(xj)\underset{a}{max}\sum_{i=1}^Na_i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}a_ia_jy_iy_j\phi(x_i)^T\phi(x_j)
其中约束条件为:
{i=1Naiyi=0ai0,i=1,2,,N\begin{cases}\sum_{i=1}^{N}a_iy_i=0\\ a_i\geq0,\qquad i=1,2,\cdots,N\end{cases}
由于对于线性不可分样本空间,找到能使得样本集线性可分的高维空间很困难,且通过映射到高维特征空间,在进行内积运算,过程复杂,且不易计算,所以引入了核函数的概念:
k(xi,xj)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)k(x_i,x_j)=\langle \phi(x_i),\phi(x_j) \rangle=\phi(x_i)^T\phi(x_j)
xix_ixjx_j在特征空间的内积等于它们在原始样本空间中通过函数k(,)k(\cdot,\cdot)计算的结果,于是上面的公式可以演化为:
maxai=1Nai12i=1Nj=1Naiajyiyjk(xi,xj)\underset{a}{max}\sum_{i=1}^Na_i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}a_ia_jy_iy_jk(x_i,x_j)
其中约束条件为:
{i=1Naiyi=0ai0,i=1,2,,N\begin{cases}\sum_{i=1}^{N}a_iy_i=0\\ a_i\geq0,\qquad i=1,2,\cdots,N\end{cases}
求解后,最终的决策函数模型为:
f(x)=wTϕ(x)+b=i=1Naiyiϕ(xi)Tϕ(x)+b=i=1Naiyik(x,xi)+b\begin{aligned}f(x)&=w^T\phi(x)+b\\ &=\sum_{i=1}^{N}a_iy_i\phi(x_i)^T\phi(x)+b\\ &=\sum_{i=1}^{N}a_iy_ik(x,x_i)+b \end{aligned}
这里的函数k(,)k(\cdot,\cdot)就是核函数,通过核函数,我们就不比直接去计算高维甚至无穷维特征空间中的内积,直接在原始输入空间进行计算,进而降低计算难度。

核函数存在的条件

定理:χ\chi为输入空间,k(,)k(\cdot,\cdot)是定义在χ×χ\chi \times \chi上的对称函数,则kk是核函数当且仅当对于任意数据D=x1,x2,,xmD={x_1,x_2,\cdots,x_m},“核矩阵”KK总是半正定的:
K=[k(x1,x1)k(x1,xj)k(xi,xm)k(xi,x1)k(xi,xj)k(xi,xm)k(xm,x1)k(xm,xj)k(xm,xm)]K=\begin{bmatrix} k(x_1,x_1)&\cdots&k(x_1,x_j)&\cdots k(x_i,x_m)\\ \vdots&\ddots&\vdots&\vdots&\\ k(x_i,x_1)&\cdots&k(x_i,x_j)&\cdots k(x_i,x_m)\\ \vdots&\ddots&\vdots&\vdots&\\ k(x_m,x_1)&\cdots&k(x_m,x_j)&\cdots k(x_m,x_m)\\ \end{bmatrix}
注:半正定矩阵概念
定理表明,只要一个对称函数所对应的核矩阵半正定,那么它就可以作为核函数使用。事实上,对于一个半正定核矩阵,总能找到一个与之对应的映射ϕ\phi。换言之,任何一个核函数都隐式定义了一个称为“再生核希尔伯特空间”的特征空间(这句话,其实不用管什么意思,有兴趣的可以查阅一下)。

常见的核函数

通过前面的介绍,核函数的选择,对于非线性支持向量机的性能至关重要。但是由于我们很难知道特征映射的形式,所以导致我们无法选择合适的核函数进行目标优化。于是“核函数的选择”称为支持向量机的最大变数,我们常见的核函数有以下几种:

名称 表达式 参数
线性核 k(xi,xj)=xiTxjk(x_i,x_j)=x_i^Tx_j
多项式核 k(xi,xj)=(xiTxj)dk(x_i,x_j)=(x_i^Tx_j)^d d1d\geq1为多项式的次数
高斯核 k(xi,xj)=exp(xixj22σ2)k(x_i,x_j)=exp(-\frac{\mid\mid x_i-x_j\mid\mid^2}{2\sigma^2}) σ>0\sigma>0为高斯核的带宽(width)
拉普拉斯核 k(xi,xj)=exp(xixjσ)k(x_i,x_j)=exp(-\frac{\mid\mid x_i-x_j\mid\mid}{\sigma}) σ>0\sigma>0
Sigmoid核 k(xi,xj)=tanh(βxiTxj+θ)k(x_i,x_j)=tanh(\beta x_i^Tx_j+\theta) tanh为双曲正切函数,β>0,θ<0\beta>0,\theta<0

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

  • k1k_1k2k_2为核函数,则对于任意正数γ1,γ2\gamma_1,\gamma_2,其线性组合也是核函数。
    γ1k1+γ2k2\gamma_1k_1+\gamma_2k_2
  • k1k_1k2k_2为核函数,则核函数的直积也是核函数。
    k1k2(x,z)=k1(x,z),k2(x,z)k_1\bigotimes k_2(x,z)=k_1(x,z),k_2(x,z)
  • k1k_1为核函数,则对于任意函数g(x)g(x)
    k(x,z)=g(x)k1(x,z)g(z)k(x,z)=g(x)k_1(x,z)g(z)
    也是核函数。

总结:对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(,)κ(\cdot,\cdot),通过将数据映射到高维空间,来解决在原始空间中线性不可分的问题。由于核函数的优良品质,这样的非线性扩展在计算量上并没有比原来复杂多少,这一点是非常难得的。当然,这要归功于核方法——除了 SVM 之外,任何将计算表示为数据点的内积的方法,都可以使用核方法进行非线性扩展。

非线性支持向量机的一般步骤

Step 1:
选取适当的核函数k(x,z)k(x,z)和适当的参数CC,构造并求解最优化问题
maxai=1Nai12i=1Nj=1Naiajyiyjk(xi,xj)\underset{a}{\max}\,\,\,\,\,\,\,\,\sum_{i=1}^N{a_i-\frac{1}{2}\sum_{i=1}^N{\sum_{j=1}^N{a_ia_jy_iy_jk\left( x_i,x_j \right)}}}
其中:
s.t.    i=1Naiyi=0s.t.\ \ \ \ \sum_{i=1}^N{a_iy_i=0}
0aiC  ,  i=1,2,,N0\le a_i\le C\ \ ,\ \ i=1,2,\cdots,N
求得最优解:
a=(a1,a2,,aN)Ta^*=\left( a_{1}^{*},a_{2}^{*},\cdots,a_{N}^{*} \right) ^T
Step 2:
选择aa^*的一个正分量aia_i^*,且aia_i^*满足0<ai<C0<a_i^*<C,求得
b=yji=1Nyiaik(xixj)b^*=y_j-\sum_{i=1}^N{y_ia_{i}^{*}k\left( x_i \cdot x_j \right)}
Step 3:
构造决策函数:
f(X)=sign(i=1Naiyik(xi,x)+b)f(X)=sign\left( \sum_{i=1}^N{a_{i}^{*}y_ik\left( x_i,x \right)}+b \right)
k(x,z)k(x,z)是正定核函数时,该问题为凸二次规划问题,解是存在的。
参考文献:
机器学习算法系列(12):SVM(3)—非线性支持向量机
机器学习 周志华著

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消