机器学习与高维信息检索 - Note 6 - 核, 核方法与核函数(Kernels and the Kernel Trick)
到目前为止,我们所讨论的机器学习算法的成功都依赖于对输入数据分布的假设。例如,PCA的效果越好,数据围绕线性子空间分布。或者在线性判别分析中,我们假设类的高斯分布,甚至有相同的协方差矩阵。为了更好地考虑输入数据的其他更复杂的分布,扩展方法的一种方式是采用所谓的核方法。它允许概括所有基本上只有标准内积作为输入数据的方法。在机器学习中,核是一类用于模式分析的算法,其最著名的成员是支持向量机(SVM)。
Note 6 核, 核方法与核函数
到目前为止,我们所讨论的机器学习算法的成功都依赖于对输入数据分布的假设。例如,PCA的效果越好,数据围绕线性子空间分布。或者在线性判别分析中,我们假设类的高斯分布,甚至有相同的协方差矩阵。
为了更好地考虑输入数据的其他更复杂的分布,扩展方法的一种方式是采用所谓的核方法。它允许概括所有基本上只有标准内积作为输入数据的方法。
更确切地说,考虑一个ML算法,其输入数据可以是无标签的,即x1,…,xn\mathbf{x}_{1}, \ldots, \mathbf{x}_{n}x1,…,xn或有标签的,即(x1,y1),…,(xn,yn)\left(\mathbf{x}_{1}, \mathbf{y}_{1}\right), \ldots,\left(\mathbf{x}_{n}, \mathbf{y}_{n}\right)(x1,y1),…,(xn,yn) 。此外,假设该算法实际上只使用了输入数据的⟨xi,xj⟩:=xi⊤xj\left\langle\mathbf{x}_{i}, \mathbf{x}_{j}\right\rangle:=\mathbf{x}_{i}^{\top} \mathbf{x}_{j}⟨xi,xj⟩:=xi⊤xj。然后,将⟨xi,xj⟩\left\langle\mathbf{x}_{i}, \mathbf{x}_{j}\right\rangle⟨xi,xj⟩替换为某个函数κ(xi,xj)\kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)κ(xi,xj),该函数是内积的适当概括(即核),称为核方法,参见图6.1。由此产生的学习方法通常被命名为 "核 "一词的前缀。这个技巧通常可以将基于数据分布的线性假设的方法扩展到更复杂的非线性分布。
图6.1:核方法的说明。用核代替机器学习算法中的标准内积,以获得该方法的 "核 "版本。
Kernel method[1]^{[1]}[1]
[1] 这部分来自于wikipedia,对于核有更详细的说明与介绍。
核方法可以被认为是基于实例的学习器:它们不是学习一些与输入特征相对应的固定参数集,而是 "记住"第iii个训练实例(xi,yi)(\mathbf {x} _{i},y_{i})(xi,yi),并为其学习相应的权重wiw_{i}wi。对未标记的输入,即那些不在训练集中的输入的预测,是通过应用一个相似性函数kkk,称为核。核是在未标记的输入x′\mathbf {x'}x′和每个训练输入xi\mathbf {x} _{i}xi之间的相似度函数,它衡量它们之间的相似性。例如,一个核的二元分类器通常计算相似性的加权和
y^=sgn∑i=1nwiyik(xi,x′),{\hat {y}}=\operatorname {sgn} \sum _{i=1}^{n}w_{i}y_{i}k(\mathbf {x} _{i},\mathbf {x'} ),y^=sgni=1∑nwiyik(xi,x′),
其中
-
y^∈{−1,+1}{\hat {y}}\in \{-1,+1\}y^∈{−1,+1} 是核化二元分类器对未标记的输入的预测标签。
-
x′\mathbf {x'}x′ 其隐藏的真实标签y是我们感兴趣的。
-
k :X×X→Rk\colon {\mathcal {X}}\times {\mathcal {X}}\to \mathbb {R}k:X×X→R 是衡量任何一对输入x,x′∈X;\mathbf {x} ,\mathbf {x'} \in {\mathcal {X}};x,x′∈X;之间相似性的内核函数。
-
∑\sum∑的范围是分类器训练集中的nnn个已标记的例子,(xi,yi)i=1n{(\mathbf {x} _{i},y_{i})}_{i=1}^{n}(xi,yi)i=1n,其中yi∈{−1,+1}y_{i} \in \{-1,+1\}yi∈{−1,+1}。
-
wi∈Rw_{i}\in \mathbb {R}wi∈R 是训练实例的权重,由学习算法决定。
-
符号函数sgn{sgn}sgn决定了预测的分类y^{\hat {y}}y^的结果是正还是负。
核分类器早在20世纪60年代就被描述过,当时发明了核感知器。随着支持向量机(SVM)在20世纪90年代的流行,核分类器的地位大为提高,当时SVM被发现在手写数字识别等任务上可以与神经网络相竞争。
因此,核的定义如下。它概括了标准的内积。
Definition 6.1
一个(半正定)核是一个函数κ:Rp×Rp→R\kappa: \mathbb{R}^{p} \times \mathbb{R}^{p} \rightarrow \mathbb{R}κ:Rp×Rp→R 对于所有有限集合 X={x1,…,xn}\mathbf{X}=\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{n}\right\}X={x1,…,xn} 的 n×nn \times nn×n矩阵
K:=[κ(x1,x1)…κ(x1,xn)⋮⋱⋮κ(xn,x1)…κ(xn,xn)](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)=∥x∥∥y∥−1不能是核,因为存在一个有限集合,即 {0}⊂Rp\{0\} \subset \mathbb{R}^{p}{0}⊂Rp,这样相关的Gram-Matrix(在这种情况下是1×11 \times 11×1)K=−1\mathbf{K}=-1K=−1是负定的。
或者考虑函数 κ(x,y)=e−∥x−y∥−∥y∥\kappa(\mathbf{x}, \mathbf{y})=\mathrm{e}^{-\|\mathbf{x}-\mathbf{y}\|-\|\mathbf{y}\|}κ(x,y)=e−∥x−y∥−∥y∥。很容易看出,一般来说,κ(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)=x⊤y+c,c≥0;
-
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)=(αx⊤y+c)d,c,α,d≥0;
-
the Gaussian Kernel κ(x,y)=exp(−∥x−y∥22σ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σ2∥x−y∥2),σ>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σ2∥x−y∥),σ>0;
从半正定矩阵的属性中可以直接得出,如果κ1\kappa_{1}κ1和 κ2\kappa_{2}κ2 是核,并且如果c>0c>0c>0,那么也就是
-
Cκ1C \kappa_{1}Cκ1
-
c+κ1c+\kappa_{1}c+κ1
-
κ1+κ2\kappa_{1}+\kappa_{2}κ1+κ2
-
κ1κ2\kappa_{1} \kappa_{2}κ1κ2.
此外,对于任何实值函数f:Rp→Rf: \mathbb{R}^{p} \rightarrow \mathbb{R}f:Rp→R,我们可以通过κ:=\kappa:=κ:= f(x)⋅f(y)f(\mathbf{x}) \cdot f(\mathbf{y})f(x)⋅f(y)构造一个核。注意,在这种情况下,相应的Gram-Matrix的秩最多为1。
图6.2:R2\mathbb{R}^{2}R2中的数据集和映射ϕ:R2→R3,ϕ(x1,x2)=[x1,x2,x12+x22]⊤\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}ϕ:R2→R3,ϕ(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×Xf(x)κ(x,y)f(y)dxdy≥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)dxdy≥0 对于所有f∈L2(X)f \in L_{2}(\mathcal{X})f∈L2(X)存在函数 ϕi\phi_{i}ϕi和标量λi≥0\lambda_{i} \geq 0λi≥0的情况。因此有
κ(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,y∈X.(6.2)
核是一个连续函数,它取两个变量x,yx, yx,y并将它们映射为一个实值,κ(x,y)=κ(y,x)\kappa(x, y)=\kappa(y, x)κ(x,y)=κ(y,x)。当且仅当 ∬f(x)κ(x,y)f(y)dxdy≥0\iint f(x) \kappa(x, y) f(y) d x d y \geq 0∬f(x)κ(x,y)f(y)dxdy≥0时,核是正半定的。与核κ\kappaκ相关,我们可以定义一个积分算子TκT_{\kappa}Tκ,当它应用于一个函数f(x)f(x)f(x)时,会产生另一个函数。
Tκ(f(x))=∫κ(x,y)f(y)dy=[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)dy=λ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)dx=δij\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)
更多推荐
所有评论(0)