机器学习与高维信息检索 - Note 6 - 核, 核方法与核函数(Kernels and the Kernel Trick)

Note 6 核, 核方法与核函数

到目前为止,我们所讨论的机器学习算法的成功都依赖于对输入数据分布的假设。例如,PCA的效果越好,数据围绕线性子空间分布。或者在线性判别分析中,我们假设类的高斯分布,甚至有相同的协方差矩阵。

为了更好地考虑输入数据的其他更复杂的分布,扩展方法的一种方式是采用所谓的核方法。它允许概括所有基本上只有标准内积作为输入数据的方法。

更确切地说,考虑一个ML算法,其输入数据可以是无标签的,即 x 1 , … , x n \mathbf{x}_{1}, \ldots, \mathbf{x}_{n} x1,,xn或有标签的,即 ( x 1 , y 1 ) , … , ( x n , y n ) \left(\mathbf{x}_{1}, \mathbf{y}_{1}\right), \ldots,\left(\mathbf{x}_{n}, \mathbf{y}_{n}\right) (x1,y1),,(xn,yn) 。此外,假设该算法实际上只使用了输入数据的 ⟨ x i , x j ⟩ : = x i ⊤ x j \left\langle\mathbf{x}_{i}, \mathbf{x}_{j}\right\rangle:=\mathbf{x}_{i}^{\top} \mathbf{x}_{j} xi,xj:=xixj。然后,将 ⟨ x i , x j ⟩ \left\langle\mathbf{x}_{i}, \mathbf{x}_{j}\right\rangle xi,xj替换为某个函数 κ ( x i , x j ) \kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) κ(xi,xj),该函数是内积的适当概括(即核),称为核方法,参见图6.1。由此产生的学习方法通常被命名为 "核 "一词的前缀。这个技巧通常可以将基于数据分布的线性假设的方法扩展到更复杂的非线性分布。

在这里插入图片描述

图6.1:核方法的说明。用核代替机器学习算法中的标准内积,以获得该方法的 "核 "版本。

Kernel method [ 1 ] ^{[1]} [1]

[1] 这部分来自于wikipedia,对于核有更详细的说明与介绍。

核方法可以被认为是基于实例的学习器:它们不是学习一些与输入特征相对应的固定参数集,而是 "记住"第 i i i个训练实例 ( x i , y i ) (\mathbf {x} _{i},y_{i}) (xi,yi),并为其学习相应的权重 w i w_{i} wi。对未标记的输入,即那些不在训练集中的输入的预测,是通过应用一个相似性函数 k k k,称为核。核是在未标记的输入 x ′ \mathbf {x'} x和每个训练输入 x i \mathbf {x} _{i} xi之间的相似度函数,它衡量它们之间的相似性。例如,一个核的二元分类器通常计算相似性的加权和

y ^ = sgn ⁡ ∑ i = 1 n w i y i k ( x i , x ′ ) , {\hat {y}}=\operatorname {sgn} \sum _{i=1}^{n}w_{i}y_{i}k(\mathbf {x} _{i},\mathbf {x'} ), y^=sgni=1nwiyik(xi,x),
其中

  • y ^ ∈ { − 1 , + 1 } {\hat {y}}\in \{-1,+1\} y^{ 1,+1} 是核化二元分类器对未标记的输入的预测标签。

  • x ′ \mathbf {x'} x 其隐藏的真实标签y是我们感兴趣的。

  • k  ⁣ : X × X → R k\colon {\mathcal {X}}\times {\mathcal {X}}\to \mathbb {R} k:X×XR 是衡量任何一对输入 x , x ′ ∈ X ; \mathbf {x} ,\mathbf {x'} \in {\mathcal {X}}; x,xX;之间相似性的内核函数。

  • ∑ \sum 的范围是分类器训练集中的 n n n个已标记的例子, ( x i , y i ) i = 1 n {(\mathbf {x} _{i},y_{i})}_{i=1}^{n} (xi,yi)i=1n,其中 y i ∈ { − 1 , + 1 } y_{i} \in \{-1,+1\} yi{ 1,+1}

  • w i ∈ R w_{i}\in \mathbb {R} wiR 是训练实例的权重,由学习算法决定。

  • 符号函数 s g n {sgn} sgn决定了预测的分类 y ^ {\hat {y}} y^的结果是正还是负。

核分类器早在20世纪60年代就被描述过,当时发明了核感知器。随着支持向量机(SVM)在20世纪90年代的流行,核分类器的地位大为提高,当时SVM被发现在手写数字识别等任务上可以与神经网络相竞争。


因此,核的定义如下。它概括了标准的内积。

Definition 6.1

一个(半正定)核是一个函数 κ : R p × R p → R \kappa: \mathbb{R}^{p} \times \mathbb{R}^{p} \rightarrow \mathbb{R} κ:Rp×RpR 对于所有有限集合 X = { x 1 , … , x n } \mathbf{X}=\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{n}\right\} X={ x1,,xn} n × n n \times n n×n矩阵
K : = [ κ ( x 1 , x 1 ) … κ ( x 1 , x n ) ⋮ ⋱ ⋮ κ ( x n , x 1 ) … κ ( x n , x n ) ] (6.1) \mathbf{K}:=\left[\begin{array}{ccc} \kappa\left(\mathbf{x}_{1}, \mathbf{x}_{1}\right) & \ldots & \kappa\left(\mathbf{x}_{1}, \mathbf{x}_{n}\right) \\ \vdots & \ddots & \vdots \\ \kappa\left(\mathbf{x}_{n}, \mathbf{x}_{1}\right) & \ldots & \kappa\left(\mathbf{x}_{n}, \mathbf{x}_{n}\right) \end{array}\right] \tag{6.1} K:=κ(x1,x1)κ(xn,x1)κ(x1,xn)κ(xn,xn)(6.1)

是对称的和正半定的。矩阵 K \mathbf{K} K被称为 κ \kappa κ和X的Gram-Matrix。 对于一个给定的函数 κ \kappa κ,通常很难说它是否是一个核函数。然而,必要的条件,如对称性和正定性是很容易检查的。

Example 6.2

函数 κ ( x , y ) = ∥ x ∥ ∥ y ∥ − 1 \kappa(\mathbf{x}, \mathbf{y})=\|\mathbf{x}\|\|\mathbf{y}\|-1 κ(x,y)=xy1不能是核,因为存在一个有限集合,即 { 0 } ⊂ R p \{0\} \subset \mathbb{R}^{p} { 0}Rp,这样相关的Gram-Matrix(在这种情况下是 1 × 1 1 \times 1 1×1 K = − 1 \mathbf{K}=-1 K=1是负定的。

或者考虑函数 κ ( x , y ) = e − ∥ x − y ∥ − ∥ y ∥ \kappa(\mathbf{x}, \mathbf{y})=\mathrm{e}^{-\|\mathbf{x}-\mathbf{y}\|-\|\mathbf{y}\|} κ(x,y)=exyy。很容易看出,一般来说, κ ( x , y ) ≠ κ ( y , x ) \kappa(\mathbf{x}, \mathbf{y}) \neq \kappa(\mathbf{y}, \mathbf{x}) κ(x,y)=κ(y,x),因此它不可能是一个核函数。

几个常见的核是

  • the linear Kernel κ ( x , y ) = x ⊤ y + c , c ≥ 0 \kappa(\mathbf{x}, \mathbf{y})=\mathbf{x}^{\top} \mathbf{y}+c, c \geq 0 κ(x,y)=xy+c,c0;

  • the polynomial Kernel κ ( x , y ) = ( α x ⊤ y + c ) d , c , α , d ≥ 0 \kappa(\mathbf{x}, \mathbf{y})=\left(\alpha \mathbf{x}^{\top} \mathbf{y}+c\right)^{d}, c, \alpha, d \geq 0 κ(x,y)=(αxy+c)d,c,α,d0;

  • the Gaussian Kernel κ ( x , y ) = exp ⁡ ( − ∥ x − y ∥ 2 2 σ 2 ) , σ > 0 \kappa(\mathbf{x}, \mathbf{y})=\exp \left(-\frac{\|\mathbf{x}-\mathbf{y}\|^{2}}{2 \sigma^{2}}\right), \sigma>0 κ(x,y)=exp(2σ2xy2),σ>0;

  • the exponential Kernel κ ( x , y ) = exp ⁡ ( − ∥ x − y ∥ 2 σ 2 ) , σ > 0 ; \kappa(\mathbf{x}, \mathbf{y})=\exp \left(-\frac{\|\mathbf{x}-\mathbf{y}\|}{2 \sigma^{2}}\right), \sigma>0 ; κ(x,y)=exp(2σ2xy),σ>0;

从半正定矩阵的属性中可以直接得出,如果 κ 1 \kappa_{1} κ1 κ 2 \kappa_{2} κ2 是核,并且如果 c > 0 c>0 c>0,那么也就是

  • C κ 1 C \kappa_{1} Cκ1

  • c + κ 1 c+\kappa_{1} c+κ1

  • κ 1 + κ 2 \kappa_{1}+\kappa_{2} κ1+κ2

  • κ 1 κ 2 \kappa_{1} \kappa_{2} κ1κ2.

此外,对于任何实值函数 f : R p → R f: \mathbb{R}^{p} \rightarrow \mathbb{R} f:RpR,我们可以通过 κ : = \kappa:= κ:= f ( x ) ⋅ f ( y ) f(\mathbf{x}) \cdot f(\mathbf{y}) f(x)f(y)构造一个核。注意,在这种情况下,相应的Gram-Matrix的秩最多为1。
在这里插入图片描述

图6.2: R 2 \mathbb{R}^{2} R2中的数据集和映射 ϕ : R 2 → R 3 , ϕ ( x 1 , x 2 ) = [ x 1 , x 2 , x 1 2 + x 2 2 ] ⊤ \phi: \mathbb{R}^{2} \rightarrow \mathbb{R}^{3}, \phi\left(x_{1}, x_{2}\right)=\left[x_{1}, x_{2}, x_{1}^{2}+x_{2}^{2}\right]^{\top} ϕ:R2R3,ϕ(x1,x2)=[x1,x2,x12+x22]

Mercer’s Theorem

Theorem 6.3 (Mercer)

对于任何对称函数 κ : X × X \kappa: \mathcal{X} \times \mathcal{X} κ:X×X X × X \mathcal{X} \times \mathcal{X} X×X中是平方可积的,并且满足 ∫ X × X f ( x ) κ ( x , y ) f ( y ) d x d y ≥ 0 \int_{\mathcal{X} \times \mathcal{X}} f(x) \kappa(x, y) f(y) d x d y \geq 0 X×Xf(x)κ(x,y)f(y)dxdy0 对于所有 f ∈ L 2 ( X ) f \in L_{2}(\mathcal{X}) fL2(X)存在函数 ϕ i \phi_{i} ϕi和标量 λ i ≥ 0 \lambda_{i} \geq 0 λi0的情况。因此有

κ ( x , y ) = ∑ i λ i ϕ i ( x ) ϕ i ( y )  for all  x , y ∈ X . (6.2) \kappa(x, y)=\sum_{i} \lambda_{i} \phi_{i}(x) \phi_{i}(y) \quad \text { for all } x, y \in \mathcal{X} . \tag{6.2} κ(x,y)=iλiϕi(x)ϕi(y) for all x,yX.(6.2)

核是一个连续函数,它取两个变量 x , y x, y x,y并将它们映射为一个实值, κ ( x , y ) = κ ( y , x ) \kappa(x, y)=\kappa(y, x) κ(x,y)=κ(y,x)。当且仅当 ∬ f ( x ) κ ( x , y ) f ( y ) d x d y ≥ 0 \iint f(x) \kappa(x, y) f(y) d x d y \geq 0 f(x)κ(x,y)f(y)dxdy0时,核是正半定的。与核 κ \kappa κ相关,我们可以定义一个积分算子 T κ T_{\kappa} Tκ,当它应用于一个函数 f ( x ) f(x) f(x)时,会产生另一个函数。

T κ ( f ( x ) ) = ∫ κ ( x , y ) f ( y ) d y = [ T κ f ] ( x ) . T_{\kappa}(f(x))=\int \kappa(x, y) f(y) d y=\left[T_{\kappa} f\right](x) . Tκ(f(x))=κ(x,y)f(y)dy=[Tκf](x).

这是一个线性函数,因此有特征值 λ i \lambda_{i} λi和特征函数 ϕ i ( ⋅ ) \phi_{i}(\cdot) ϕi()。它们被定义为

T κ ( ϕ i ( x ) ) = ∫ κ ( x , y ) ϕ ( y ) d y = λ i ϕ i ( x ) T_{\kappa}\left(\phi_{i}(x)\right)=\int \kappa(x, y) \phi(y) d y=\lambda_{i} \phi_{i}(x) Tκ(ϕi(x))=κ(x,y)ϕ(y)dy=λiϕi(x)

特征值 λ i \lambda_{i} λi是非负的,特征函数 ϕ i ( x ) \phi_{i}(x) ϕi(x)是正定的,即 ∫ ϕ i ( x ) ϕ j ( x ) d x = δ i j \int \phi_{i}(x) \phi_{j}(x) d x=\delta_{i j} ϕi(x)ϕj(x)dx=δij。一组基础函数的非零特征值所对应的特征函数,以便内核可以通过以下方式进行分解
κ ( x , y ) = ∑ i = 1 ∞ λ i ϕ i ( x ) ϕ i ( y ) . (6.3) \kappa(x, y)=\sum_{i=1}^{\infty} \lambda_{i} \phi_{i}(x) \phi_{i}(y) . \tag{6.3} κ(x,y)=i=1λiϕi(x)ϕi(y).(6.3)

猜你喜欢

转载自blog.csdn.net/qq_37266917/article/details/122711312
今日推荐