SVM处理非线性问题

SVM处理非线性问题理解

(1)利用核函数

在现实任务中,原始样本空间也许并不存在一个能正确划分两类样本的超平面,那这个时候应该怎么办呢?我们的想法是仍然去找平面,但我们去更高的纬度里去找平面。在低维空间里一些线性不可分的数据集,到高维空间里面将会以更大的概率被线性分开。有人证明,在特征空间中随机的选取一些点,同时随机的将这些点分成两类,那么在越高维度的空间里进行这个操作,这些点能被线性分开的概率越大。如果说你在无限的维度里面进行这个操作,那么这些点能被线性分开的概率为1。

我们定义一个映射 φ \varphi φ,将低维矢量 X X X映射至高维去,即:
X → φ ( X ) X\rightarrow\varphi(X) Xφ(X)
其中, φ ( X ) \varphi(X) φ(X) 是更高维的矢量。那么我们应该如何选取这个 φ \varphi φ呢,这应该是SVM最有创造力的部分之一:

  • φ ( X ) \varphi(X) φ(X) 取无限维(当然不无限有时也能操作),但同时使用有限维的操作。

  • 我们可以不用知道 φ ( X ) \varphi(X) φ(X) 的显示表达,取而代之,如果对空间任意向量,我们知道一个低维的核函数

    K ( X 1 , X 2 ) = φ ( X 1 ) T φ ( X 2 ) K(X_1,X_2)=\varphi(X_1)^T\varphi(X_2) K(X1,X2)=φ(X1)Tφ(X2),则仍然能通过SVM,计算 W T φ ( X ) + b W^T\varphi(X)+b WTφ(X)+b 的值,进而得出 X X X所属的类别。

当然,什么样的函数可以作为核函数是有条件的,此处不作说明,有兴趣的同学可以参阅西瓜书支持向量机那一章。SVM最常用的核函数是如下2个:
K ( X 1 , X 2 ) = e − ∣ ∣ X 1 − X 2 ∣ ∣ 2 2 σ 2 K(X_1,X_2)=e^{-\frac{||X_1-X_2||^2}{2\sigma^2}} K(X1,X2)=e2σ2X1X22

K ( X 1 , X 2 ) = ( X 1 T X 2 + 1 ) d K(X_1,X_2)=(X_1^TX_2+1)^d K(X1,X2)=(X1TX2+1)d

(2)软间隔和正则化

在现实任务中,往往很难确定合适的核函数使得训练样本在特征空间中线性分开。即如果我们硬要求找一个平面将所有样本正确划分,那最终结果很可能是我们找不到这样一个平面,因为条件太苛刻了,退而求其次,我们降低要求。原先我们要求所有样本必须满足以下关系(硬间隔):
y i [ W T X + b ] ≥ 1 ( i = 1 ⋯ N ) y_i[W^TX+b]\ge1 (i=1\cdots N) yi[WTX+b]1(i=1N)
现在我们允许某些样本不满足上述约束,于是我们将约束条件改写为(软间隔):
{ y i [ W T X + b ] ≥ 1 − ξ i    ( i = 1 ⋯ N ) ξ i ≥ 0    ( i = 1 ⋯ N ) \left\{ \begin{array}{c} y_i[W^TX+b]\ge1-\xi_i~~(i=1\cdots N)\\ \xi_i\ge0~~(i=1\cdots N)\\ \end{array} \right. {yi[WTX+b]1ξi  (i=1N)ξi0  (i=1N)
同时为了使不满足约束的样本尽可能少,我们将优化目标改写为:
m i n { 1 2 ∣ ∣ W ∣ ∣ 2 + C ∑ i = 1 N ξ i } min\left\{\frac{1}{2}||W||^2+C\sum_{i=1}^N\xi_i\right\} min{21W2+Ci=1Nξi}
当然目标函数的改写不止这一种方式,可以通过尝试不同的改写方式,来达到不同的效果。其中
C ∑ i = 1 N ξ i C\sum_{i=1}^N\xi_i Ci=1Nξi
称作正则项。 ξ i \xi_i ξi称作松弛变量,用以表征该样本不满足约束的程度。 C C C是事先设定的参数,根据经验来调试。从这个方面来看,SVM还是很好的,因为事先需要调试的参数并不算多。

总结

从以上来看,利用SVM处理非线性问题主要用到了两种方法:

  1. 到更高维度去找可以分类的超平面。
  2. 有限制地降低分类要求。

当然,这两种方法可以结合使用来达到更好的效果。

欢迎访问我的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值