Reproducing Kernel Hilbert Space,再生核希尔伯特空间
原文链接:http://songcy.net/posts/story-of-basis-and-kernel-part-2/
本文主要讨论和函数核再生核希尔伯特空间(reproducing kernel Hilbert space, RKHS)。
核方法的动机在于映射一个
R
n
\mathcal{R}^{n}
Rn空间中的向量为特征空间中的另一个向量。
如下图所示,红色和蓝色的数据点在
R
n
\mathcal{R}^{n}
Rn空间中是不易分的。但如果将这些数据点映射到高维特征空间,我们也许可以使其容易分开。本文不提供严格的理论定义,而是对基本思想的直观描述。
Eigen Decomposition
对于实对称矩阵
A
\mathbf{A}
A, 存在实数
λ
\lambda
λ和向量
x
\mathbf{x}
x使得
A
x
=
λ
x
(1)
\mathbf{Ax}=\lambda \mathbf{x} \tag{1}
Ax=λx(1)
Kernel Function
函数
f
(
x
)
f(\mathbf{x})
f(x) 可以看作是一个无限向量。对于一个有着两个独立变量的
K
(
x
,
y
)
K(\mathbf{x,y})
K(x,y),我们可以将它看作是一个无限的矩阵。对此有
K
(
x
,
y
)
=
K
(
y
,
x
)
K(\mathbf{x,y})=K(\mathbf{y,x})
K(x,y)=K(y,x)并且
∬
f
(
x
)
K
(
x
,
y
)
f
(
y
)
d
x
d
y
≥
0
\iint f(\mathbf{x}) K(\mathbf{x,y}) f(\mathbf{y}) d\mathbf{x}d\mathbf{y}\geq 0
∬f(x)K(x,y)f(y)dxdy≥0
则对于任意的函数
f
f
f,
K
(
x
,
y
)
K(\mathbf{x,y})
K(x,y)是对称正定的,在这种情况下
K
(
x
K(\mathbf{x}
K(x,
y
)
\mathbf{y})
y)是一个核函数.
类似于矩阵的特征根和特征向量,存在特征根
λ
\lambda
λ和特征函数
ψ
(
x
)
\psi(\mathbf{x})
ψ(x) 使得
∫
K
(
x
,
y
)
ψ
(
x
)
d
x
=
λ
ψ
(
y
)
\int K(\mathbf{x,y})\psi(\mathbf{x})d\mathbf{x}=\lambda\psi(\mathbf{y})
∫K(x,y)ψ(x)dx=λψ(y)
个人理解就是左边的式子对 x 做积分,就得到一个关于y的特征函数的特征根
那么对于不同的特征根 λ 1 , λ 2 \lambda_{1},\lambda_{2} λ1,λ2, 且分别对应于不同的特征函数 ψ 1 ( x ) \psi_{1}(\mathbf{x}) ψ1(x), ψ 2 ( x ) \psi_{2}(\mathbf{x}) ψ2(x), 我们可以得到
∫ λ 1 ψ 1 ( x ) ψ 2 ( x ) d x = ∬ K ( y , x ) ψ 1 ( y ) d y ψ 2 ( x ) d x = ∬ K ( x , y ) ψ 2 ( x ) d x ψ 1 ( y ) d y = ∫ λ 2 ψ 2 ( y ) ψ 1 ( y ) d y = ∫ λ 2 ψ 2 ( x ) ψ 1 ( x ) d x \begin{aligned}\int \lambda_{1} \psi_{1}(\mathbf{x}) \psi_{2}(\mathbf{x}) d \mathbf{x} &=\iint K(\mathbf{y}, \mathbf{x}) \psi_{1}(\mathbf{y}) d \mathbf{y} \psi_{2}(\mathbf{x}) d \mathbf{x} \\&=\iint K(\mathbf{x}, \mathbf{y}) \psi_{2}(\mathbf{x}) d \mathbf{x} \psi_{1}(\mathbf{y}) d \mathbf{y} \\&=\int \lambda_{2} \psi_{2}(\mathbf{y}) \psi_{1}(\mathbf{y}) d \mathbf{y} \\&=\int \lambda_{2} \psi_{2}(\mathbf{x}) \psi_{1}(\mathbf{x}) d \mathbf{x}\end{aligned} ∫λ1ψ1(x)ψ2(x)dx=∬K(y,x)ψ1(y)dyψ2(x)dx=∬K(x,y)ψ2(x)dxψ1(y)dy=∫λ2ψ2(y)ψ1(y)dy=∫λ2ψ2(x)ψ1(x)dx
因此
<
ψ
1
,
ψ
2
>
=
∫
ψ
1
(
x
)
ψ
2
(
x
)
d
x
=
0
<\psi_{1},\psi_{2}>=\int \psi_{1}(\mathbf{x})\psi_{2}(\mathbf{x})d\mathbf{x}=0
<ψ1,ψ2>=∫ψ1(x)ψ2(x)dx=0
再一次地,特征函数为正交的。此处
ψ
\psi
ψ表示函数本身(一个无限的向量)。
对于一个核函数,无限的特征根
{
λ
i
}
i
=
1
∞
\{\lambda_{i}\}^{\infty}_{i=1}
{λi}i=1∞ 与无限的特征函数
{
ψ
i
}
i
=
1
∞
\{\psi_{i}\}^{\infty}_{i=1}
{ψi}i=1∞ 可以找到。同样地,对于矩阵来说
K
(
x
,
y
)
=
∑
i
=
0
∞
λ
i
ψ
i
(
x
)
ψ
i
(
y
)
K(\mathbf{x}, \mathbf{y})=\sum_{i=0}^{\infty} \lambda_{i} \psi_{i}(\mathbf{x}) \psi_{i}(\mathbf{y})
K(x,y)=i=0∑∞λiψi(x)ψi(y)
即 Mercer’s theorem,此处 < ψ 1 , ψ 2 > = 0 , i ≠ j <\psi_{1},\psi_{2}>=0,i\neq j <ψ1,ψ2>=0,i=j。因此, { ψ i } i = 1 ∞ \{\psi_{i}\}^{\infty}_{i=1} {ψi}i=1∞构建了一组函数空间的正交基。
常见核
- Polunomial kernel K ( x , y ) = ( γ x T y + C ) d K(\mathbf{x,y})=(\gamma x^{T}y+C)^d K(x,y)=(γxTy+C)d
- Gaussian radial basis kernel K ( x , y ) = exp ( − γ ∣ ∣ x − y ∣ ∣ 2 ) K(\mathbf{x,y})=\exp (-\gamma ||\mathbf{x-y}||^{2}) K(x,y)=exp(−γ∣∣x−y∣∣2)
- Sigmoid kernel K ( x , y ) = tanh ( γ x T y + C ) K(\mathbf{x,y})=\tanh (\gamma \mathbf{x^{T}y}+C) K(x,y)=tanh(γxTy+C)
Reproducing Kernel Hilbert Space
{ λ i ψ i } i = 1 ∞ \{\sqrt{\lambda_{i}} \psi_{i}\}_{i=1}^{\infty} {λiψi}i=1∞为一组正交基并构造一个希尔伯特空间 H \mathcal{H} H(Hilbert space)。在空间中的任何函数和向量都可以用基线性表示出来。假设
f = ∑ i = 1 ∞ f i λ 1 ψ i f=\sum\limits_{i=1}^{\infty}f_{i}\sqrt{\lambda_{1}}\psi_{i} f=i=1∑∞fiλ1ψi
我们将
H
\mathcal{H}
H 中的一个无限向量记为
f
f
f
f
=
(
f
1
,
f
2
,
⋯
)
H
T
f=(f_{1},f_{2},\cdots)_{\mathcal{H}}^{T}
f=(f1,f2,⋯)HT
对于其他的函数
g
=
(
g
1
,
g
2
,
⋯
)
H
T
g=(g_{1},g_{2},\cdots)_{\mathcal{H}}^{T}
g=(g1,g2,⋯)HT,有
<
f
,
g
>
H
=
∑
i
=
1
∞
f
i
g
i
<f,g>_{\mathcal{H}}=\sum_{i=1}^{\infty}f_{i}g_{i}
<f,g>H=i=1∑∞figi
对于核函数
K
K
K,在此使用
K
(
x
,
y
)
K(\mathbf{x}, \mathbf{y})
K(x,y)来表示在参数点
x
,
y
\mathbf{x,y}
x,y处的
K
K
K值的评估,使用
K
(
⋅
,
⋅
)
K(\cdot ,\cdot )
K(⋅,⋅)来表示函数本身(即无限矩阵),使用
K
(
x
,
⋅
)
K(\mathbf{x},\cdot )
K(x,⋅)来表示矩阵的第
x
\mathbf{x}
x行。例如,我们将核函数的一个参数固定为
x
\mathbf{x}
x,则可以将其看作为一个参数的函数或无限的向量,则有
K
(
x
,
⋅
)
=
∑
i
=
0
∞
λ
i
ψ
i
(
x
)
ψ
i
K(\mathbf{x},\cdot)=\sum_{i=0}^{\infty}\lambda_{i}\psi_{i}(\mathbf{x})\psi_{i}
K(x,⋅)=i=0∑∞λiψi(x)ψi
在
H
\mathcal{H}
H空间中,可记作
K
(
x
,
⋅
)
=
(
λ
1
ψ
1
(
x
)
,
λ
2
ψ
2
(
x
)
,
⋯
)
H
T
K(\mathbf{x},\cdot)=(\sqrt{\lambda_{1}}\psi_{1}(\mathbf{x}),\sqrt{\lambda_{2}}\psi_{2}(\mathbf{x}),\cdots)_{\mathcal{H}}^{T}
K(x,⋅)=(λ1ψ1(x),λ2ψ2(x),⋯)HT
因此
<
K
(
x
,
⋅
)
,
K
(
y
,
⋅
)
>
H
=
∑
i
=
0
∞
λ
i
ψ
i
(
x
)
ψ
i
(
y
)
=
K
(
x
,
y
)
<K(\mathbf{x,\cdot}),K(\mathbf{y},\cdot)>_{\mathcal{H}}=\sum_{i=0}^{\infty} \lambda_{i} \psi_{i}(\mathbf{x})\psi_{i}(\mathbf{y})=K(\mathbf{x,y})
<K(x,⋅),K(y,⋅)>H=i=0∑∞λiψi(x)ψi(y)=K(x,y)
这就是再生性,因此 H \mathcal{H} H被称为再生希尔伯特空间( reproducing kernel Hilbert space ,RKHS)
回到最初的问题:怎样将点映射到特征空间?如果定义一种映射:
Φ
(
x
)
=
K
(
x
,
⋅
)
=
(
λ
1
ψ
1
(
x
)
,
λ
2
ψ
2
(
x
)
,
⋯
)
T
\mathbf{\Phi}(\mathbf{x})=K(\mathbf{x}, \cdot)=\left(\sqrt{\lambda_{1}} \psi_{1}(\mathbf{x}), \sqrt{\lambda_{2}} \psi_{2}(\mathbf{x}), \cdots\right)^{T}
Φ(x)=K(x,⋅)=(λ1ψ1(x),λ2ψ2(x),⋯)T
然后我们将点
x
\mathbf{x}
x映射到
H
\mathcal{H}
H,此处
Φ
\Phi
Φ不是一个函数,因为它指向特征空间
H
\mathcal{H}
H的向量或函数,于是有
<
Φ
(
x
)
,
Φ
(
y
)
>
H
=
<
K
(
x
,
⋅
)
,
K
(
y
,
⋅
)
>
H
=
K
(
x
,
y
)
<\mathbf{\Phi}(\mathbf{x}), \mathbf{\Phi}(\mathbf{y})>_{\mathcal{H}}=<K(\mathbf{x}, \cdot), K(\mathbf{y}, \cdot)>_{\mathcal{H}}=K(\mathbf{x}, \mathbf{y})
<Φ(x),Φ(y)>H=<K(x,⋅),K(y,⋅)>H=K(x,y)
因此,我们不需要知道什么是映射,特征空间在哪里,或者特征空间的基础是什么。对于对称正定函数
K
K
K,必须至少存在一个映射
Φ
\bold{\Phi}
Φ和一个特征空间
H
\mathcal{H}
H,使
<
Φ
(
x
)
,
Φ
(
y
)
>
=
K
(
x
,
y
)
<\mathbf{\Phi}(\mathbf{x}), \mathbf{\Phi}(\mathbf{y})>=K(\mathbf{x}, \mathbf{y})
<Φ(x),Φ(y)>=K(x,y)
这就是所谓的kernel trick。
Support Vector Machine
支持向量机(SVM)是RKHS最广为人知的应用之一。假设我们有数据对 ( x i , y i ) i = 1 n {(\mathbf{x}_i,y_i)}_{i=1}^n (xi,yi)i=1n,其中 y i y_i yi为1或-1,表示点 x i \mathbf{x}_{i} xi的类。支持向量机假设一个超平面来最好地分离这两个类。
min
β
,
β
0
1
2
∣
∣
β
∣
∣
2
+
C
∑
i
=
1
n
ξ
i
\min_{\beta,\beta_{0}}\frac{1}{2}||\beta||^{2}+C\sum_{i=1}^{n}\xi_{i}
β,β0min21∣∣β∣∣2+Ci=1∑nξi
s
u
b
j
e
c
t
t
o
ξ
i
≥
0
,
y
i
(
x
i
T
β
+
β
0
)
≥
1
−
ξ
i
,
∀
i
subject \ to \ \xi_{i}\geq 0,y_{i}(\mathbf{x}_{i}^{T}\beta+\beta_{0})\geq1-\xi_{i},\forall i
subject to ξi≥0,yi(xiTβ+β0)≥1−ξi,∀i
有时这两个类在 R n \mathcal{R}^n Rn空间中很难分离,因此可以将 x i \mathbf{x}_i xi映射到高维特征空间中,在高维特征空间中这两个类很容易分离。原来的问题可以重新表述为
min
β
,
β
0
1
2
∣
∣
β
∣
∣
2
+
C
∑
i
=
1
n
ξ
i
\min_{\beta,\beta_{0}}\frac{1}{2}||\beta||^{2}+C\sum_{i=1}^{n}\xi_{i}
β,β0min21∣∣β∣∣2+Ci=1∑nξi
s
u
b
j
e
c
t
t
o
ξ
i
≥
0
,
y
i
(
Φ
(
x
i
)
T
β
+
β
0
)
≥
1
−
ξ
i
,
∀
i
subject \ to \ \xi_{i}\geq 0,y_{i}(\Phi(\mathbf{x}_{i})^{T}\beta+\beta_{0})\geq1-\xi_{i},\forall i
subject to ξi≥0,yi(Φ(xi)Tβ+β0)≥1−ξi,∀i
增广拉格朗日函数为
L
p
=
1
2
∣
∣
β
∣
∣
2
+
C
∑
i
=
1
n
ξ
i
−
∑
i
=
1
n
α
i
[
y
i
(
Φ
(
x
i
)
T
β
+
β
0
)
−
(
1
−
ξ
i
)
]
−
∑
i
=
1
n
μ
i
ξ
i
L_{p}=\frac{1}{2} ||\beta||^{2}+C\sum_{i=1}^{n}\xi_{i}-\sum_{i=1}^{n}\alpha_{i}[y_{i}(\Phi(\mathbf{x}_{i})^{T}\beta+\beta_{0})-(1-\xi_{i})]-\sum_{i=1}^{n}\mu_{i}\xi_{i}
Lp=21∣∣β∣∣2+Ci=1∑nξi−i=1∑nαi[yi(Φ(xi)Tβ+β0)−(1−ξi)]−i=1∑nμiξi
由于
∂
L
p
∂
β
=
0
\frac{\partial L_{p}}{\partial \beta} =0
∂β∂Lp=0
我们得到
β
=
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
\beta =\sum_{i=1}^{n} \alpha_{i}y_{i}\Phi(\mathbf{x}_{i})
β=i=1∑nαiyiΦ(xi)
也就是说,
β
\boldsymbol{\beta}
β可以写成
x
i
\mathbf{x}_i
xis !我们可以将
β
\boldsymbol{\beta}
β替换为新的优化问题。目标函数变为
1
2
∥
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
∥
2
+
C
∑
i
=
1
n
ξ
i
=
1
2
<
∑
i
=
1
n
α
i
y
i
Φ
(
x
i
)
,
∑
j
=
1
n
α
j
y
j
Φ
(
x
j
)
>
+
C
∑
i
=
1
n
ξ
i
=
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
<
Φ
(
x
i
)
,
Φ
(
x
j
)
>
+
C
∑
i
=
1
n
ξ
i
=
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
+
C
∑
i
=
1
n
ξ
i
\begin{aligned}& \frac{1}{2}\left\|\sum_{i=1}^{n} \alpha_{i} y_{i} \boldsymbol{\Phi}\left(\mathbf{x}_{i}\right)\right\|^{2}+C \sum_{i=1}^{n} \xi_{i} \\=& \frac{1}{2}<\sum_{i=1}^{n} \alpha_{i} y_{i} \mathbf{\Phi}\left(\mathbf{x}_{i}\right), \sum_{j=1}^{n} \alpha_{j} y_{j} \mathbf{\Phi}\left(\mathbf{x}_{j}\right)>+C \sum_{i=1}^{n} \xi_{i} \\=& \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j}<\mathbf{\Phi}\left(\mathbf{x}_{i}\right), \mathbf{\Phi}\left(\mathbf{x}_{j}\right)>+C \sum_{i=1}^{n} \xi_{i} \\=& \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)+C \sum_{i=1}^{n} \xi_{i}\end{aligned}
===21∥∥∥∥∥i=1∑nαiyiΦ(xi)∥∥∥∥∥2+Ci=1∑nξi21<i=1∑nαiyiΦ(xi),j=1∑nαjyjΦ(xj)>+Ci=1∑nξi21i=1∑nj=1∑nαiαjyiyj<Φ(xi),Φ(xj)>+Ci=1∑nξi21i=1∑nj=1∑nαiαjyiyjK(xi,xj)+Ci=1∑nξi
约束改变为:
y
i
[
Φ
(
x
i
)
T
(
∑
j
=
1
n
α
j
y
j
Φ
(
x
j
)
)
+
β
0
]
=
y
i
[
(
∑
j
=
1
n
α
j
y
j
<
Φ
(
x
i
)
,
Φ
(
x
j
)
>
)
+
β
0
]
=
y
i
[
(
∑
j
=
1
n
α
j
y
j
K
(
x
i
,
x
j
)
)
+
β
0
]
≥
1
−
ξ
i
,
∀
i
\begin{aligned} &y_{i}\left[\mathbf{\Phi}\left(\mathbf{x}_{i}\right)^{T}\left(\sum_{j=1}^{n} \alpha_{j} y_{j} \mathbf{\Phi}\left(\mathbf{x}_{j}\right)\right)+\beta_{0}\right] \\ =& y_{i}\left[\left(\sum_{j=1}^{n} \alpha_{j} y_{j}<\mathbf{\Phi}\left(\mathbf{x}_{i}\right), \mathbf{\Phi}\left(\mathbf{x}_{j}\right)>\right)+\beta_{0}\right] \\ =& y_{i}\left[\left(\sum_{j=1}^{n} \alpha_{j} y_{j} K\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)\right)+\beta_{0}\right] \geq 1-\xi_{i}, \forall i\end{aligned}
==yi[Φ(xi)T(j=1∑nαjyjΦ(xj))+β0]yi[(j=1∑nαjyj<Φ(xi),Φ(xj)>)+β0]yi[(j=1∑nαjyjK(xi,xj))+β0]≥1−ξi,∀i
我们需要做的是确定一个核函数并解出 α , β 0 , ξ i {\ α},β_0, ξ_i α,β0,ξi。我们不需要实际构造特征空间。对于具有未知类的新数据 x \mathbf{x} x,我们可以使用一下算式预测它的类
y ^ = s i g n [ Φ ( x ) T β + β 0 ] = s i g n [ Φ ( x ) T ( ∑ i = 1 n α i y i Φ ( x i ) ) + β 0 ] = s i g n ( ∑ i = 1 n α i y i < Φ ( x ) , Φ ( x i ) > + β 0 ) = s i g n ( ∑ i = 1 n α i y i K ( x , x i ) + β 0 ) \begin{array}{ll} \hat{y} &=\mathbf{sign}[\Phi(\mathbf{x})^{T}\beta+\beta_{0}]\\ &=\mathbf{sign}[\Phi(\mathbf{x})^{T}(\sum_{i=1}^{n}\alpha_{i}y_{i}\Phi(\mathbf{x}_{i}))+\beta_{0}]\\ &=\mathbf{sign}(\sum_{i=1}^{n}\alpha_{i}y_{i}<\Phi(\mathbf{x}),\Phi(\mathbf{x}_{i})>+\beta_{0})\\ &=\mathbf{sign}(\sum_{i=1}^{n}\alpha_{i}y_{i}K(\mathbf{x},\mathbf{x}_{i})+\beta_{0}) \end{array} y^=sign[Φ(x)Tβ+β0]=sign[Φ(x)T(∑i=1nαiyiΦ(xi))+β0]=sign(∑i=1nαiyi<Φ(x),Φ(xi)>+β0)=sign(∑i=1nαiyiK(x,xi)+β0)
核方法增强了支持向量机的鉴别能力。