在一个二维空间中,具有特征空间X和特征空间Y,当其中一个点(x, y)在这个二维平面中,如果想把它映射高维空间中,那么就需要用到核函数。
关于核函数的定义是:设 X X X是输入空间, Y Y Y是特征空间。如果存在一个从 X X X到 Y Y Y的映射 ϕ ( x ) : X − > Y \phi(x):X -> Y ϕ(x):X−>Y,使得对于所有的向量 v 1 , v 2 ∈ X v_{1}, v_{2} \in X v1,v2∈X,函数 K ( v 1 , v 2 ) K(v_{1}, v_{2}) K(v1,v2)满足条件: K ( v 1 , v 2 ) = < ϕ ( v 1 ) , ϕ ( v 2 ) > K(v_{1}, v_{2}) = <\phi(v_{1}), \phi(v_{2})> K(v1,v2)=<ϕ(v1),ϕ(v2)>。其中, < v 1 , v 2 > <v_{1}, v_{2}> <v1,v2>称为内积,或者数量积,是将两个向量返回一个实数标量的二元运算,如 v 1 = ( x 1 , y 1 ) , v 2 = ( x 2 , y 2 ) v_{1} = (x_{1}, y_{1}), v_{2} = (x_{2}, y_{2}) v1=(x1,y1),v2=(x2,y2),则它们的内积 < v 1 , v 2 > = x 1 x 2 + y 1 y 2 <v_{1}, v_{2}> = x_{1}x_{2}+y_{1}y_{2} <v1,v2>=x1x2+y1y2。
借用知乎上的例子:机器学习有很多关于核函数的说法,核函数的定义和作用是什么?的回答 如核函数
K
(
v
1
,
v
2
)
=
<
v
1
,
v
2
>
2
K(v_{1}, v_{2}) = <v_{1}, v_{2}>^{2}
K(v1,v2)=<v1,v2>2,这个核函数其实隐含着一个映射关系
P
(
x
,
y
)
=
(
x
2
,
2
x
y
,
y
2
)
P(x, y) = (x^{2}, \sqrt{2}xy, y^{2})
P(x,y)=(x2,2xy,y2),通过这个核函数就可以直接计算它们映射的内积
<
ϕ
(
v
1
)
,
ϕ
(
v
2
)
>
<\phi(v_{1}), \phi(v_{2})>
<ϕ(v1),ϕ(v2)>,从而避免分开计算每个向量的映射
ϕ
(
v
)
\phi(v)
ϕ(v)。可以验证:
<
P
(
v
1
,
v
2
)
>
=
<
(
x
1
2
,
2
x
1
y
1
,
y
1
2
)
,
(
x
2
2
,
2
x
2
y
2
,
y
2
2
)
>
<P(v_{1}, v_{2})> = <(x_{1}^{2}, \sqrt{2}x_{1}y_{1}, y_{1}^{2}),(x_{2}^{2}, \sqrt{2}x_{2}y_{2}, y_{2}^{2})>
<P(v1,v2)>=<(x12,2x1y1,y12),(x22,2x2y2,y22)>
=
(
x
1
x
2
+
y
1
y
2
)
2
=(x_{1}x_{2}+y_{1}y_{2})^{2}
=(x1x2+y1y2)2
=
<
v
1
,
v
2
>
2
=<v_{1}, v_{2}>^{2}
=<v1,v2>2
=
K
(
v
1
,
v
2
)
= K(v_{1}, v_{2})
=K(v1,v2)
核函数的作用就是隐含着一个从低维空间向高维空间的映射关系,这样就使得在低维空间中线性不可分的两类点在高维空间中线性可分。在SVM中,遇到线性不可分的样本时,SVM就通过一个非线性映射的核函数把样本映射到一个线性可分的高维空间中,在此高维空间中建立线性函数(如二维空间的直线、三维空间的平面和高维空间的超平面)来划分样本的高维空间,此高维空间的线性分类面对应到输入样本空间的话就是一个非线性的分类面。
核函数一般有这么几类:
1、线性核函数:
K
(
v
1
,
v
2
)
=
<
v
1
,
v
2
>
K(v_{1}, v_{2}) = <v_{1}, v_{2}>
K(v1,v2)=<v1,v2>
2、多项式核函数:
K
(
v
1
,
v
2
)
=
(
γ
<
v
1
,
v
2
>
+
c
)
n
K(v_{1}, v_{2}) = (\gamma<v_{1}, v_{2}>+c)^{n}
K(v1,v2)=(γ<v1,v2>+c)n
3、sigmoid核函数:
K
(
v
1
,
v
2
)
=
t
a
n
h
(
γ
<
v
1
,
v
2
>
+
c
)
K(v_{1},v_{2}) = tanh(\gamma<v_{1}, v_{2}>+c)
K(v1,v2)=tanh(γ<v1,v2>+c)
4、高斯核函数:
K
(
v
1
,
v
2
)
=
e
x
p
(
−
∣
∣
v
1
−
v
2
∣
∣
2
2
σ
2
)
K(v_{1}, v_{2}) = exp(-\frac{||v_{1} - v_{2}||^{2}}{2\sigma^{2}})
K(v1,v2)=exp(−2σ2∣∣v1−v2∣∣2)
5、拉普拉斯核函数:
K
(
v
1
,
v
2
)
=
e
x
p
(
−
∣
∣
v
1
−
v
2
∣
∣
σ
)
K(v_{1}, v_{2}) = exp(-\frac{||v_{1} - v_{2}||}{\sigma})
K(v1,v2)=exp(−σ∣∣v1−v2∣∣)