支持向量机(SVM)第二章----核函数

参考周老师的《机器学习》

在SVM第一章中,我们假设训练样本是线性可分的。当训练样本不能线性可分时,又该怎么办呢?别怕,核函数来啦。
下面这张图片左边是原始训练样本空间,通过将样本映射到一个三维空间后,我们发现可以找到一个超平面将他们正确分开,也就是说线性可分。因此,找到这样的一个高维映射成为关键的一环。


这里写图片描述

周老师的书里提到:如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本线性可分。

现在,我们先假设我们找到了这样的高维空间,把 x 映射到 ϕ ( x ) 。那么在高维空间里进行的方法和我们第一章一模一样。

原始问题是:
min 1 2 | | w | | 2
s . t . y i ( w T ϕ ( x i ) + b ) 1 , i = 1 , 2 , . . . , n

对偶问题是:
max i = 1 n α i 1 2 i = 1 n j = 1 n α i α j y i y j ϕ ( x i ) T ϕ ( x j )
s . t . α i 0 , i = 1 , 2 , . . . , n
i = 1 n α i y i = 0

因此如何计算 ϕ ( x i ) T ϕ ( x j ) 成为关键性问题。上面我们提到:如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本线性可分。而这个高维特征空间维数可能很高,甚至是无限维,因此直接计算高维空间里的内积很困难。那我们另辟蹊径—-核函数来了!

核函数:
k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j )

因此将上面的对偶问题重写为:
max i = 1 n α i 1 2 i = 1 n j = 1 n α i α j y i y j k ( x i , x j )
s . t . α i 0 , i = 1 , 2 , . . . , n
i = 1 n α i y i = 0

最终模型是:
f ( x ) = w T ϕ ( x ) + b = i = 1 n α i y i ϕ ( x i ) T ϕ ( x ) + b = i = 1 n α i y i k ( x i , x ) + b

什么样的函数可以做核函数呢?
Mercer定理:一个对称函数所对应的核矩阵半正定,它就可以作为核函数。
任何一个核函数都隐式地定义了一个称为“再生核希尔伯特空间RKHS”的特征空间。

注意:前面我们提到,如果原始空间是有限维,那么一定存在一个高维特征空间使样本可分。但是我们并不知道这个高维空间是什么,我们又知道一个核函数对应了一个特征空间,因此核函数的选择十分重要,如果核函数选的不合适,意味着无法在高维空间里线性可分。

核函数选择成为SVM的最大变数。

我们列出几种常用的核函数:

  1. 线性核 k ( x i , x j ) = x i T x j
  2. 多项式核 k ( x i , x j ) = ( x i T x j ) d ,其中 d 1
  3. 高斯核(亦称RBF核) k ( x i , x j ) = e x p ( | | x i x j | | 2 2 σ 2 ) , σ > 0
  4. 拉普拉斯核 k ( x i , x j ) = e x p ( | | x i x j | | σ ) , σ > 0
  5. Sigmoid核 k ( x i , x j ) = t a n h ( β x i T x j + θ ) , t a n h 为双曲正切函数, β > 0 , θ < 0

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

  • k 1 k 2 为核函数,对于任意正数 γ 1 , γ 2 ,其线性组合 γ 1 k 1 + γ 2 k 2 也是核函数
  • k 1 k 2 为核函数, k 1 ( x , z ) k 2 ( x , z ) 也为核函数
  • k 1 为核函数,对于任意函数 g ( x ) , g ( x ) k 1 ( x , z ) g ( z ) 也为核函数

猜你喜欢

转载自blog.csdn.net/yqmind/article/details/80376451