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∑n​wi​yi​k(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×X​f(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)

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

  1. 机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)

    Note 7 - 核主成分分析(Kernel Principal Component Analysis) 核主成分分析 Note 7 - 核主成分分析(Kernel Principal Compone ...

  2. 机器学习与高维信息检索 - Note 1 - 信息检索、机器学习与随机变量

    1. 简介 1.1 信息检索和机器学习 从高维数据中提取信息的问题与降维问题密不可分,也就是说,从典型的高维观察中提取一些合理的特征的问题.例如,考虑一下人类在图像上识别人脸的能力.该图像被视为一个高 ...

  3. 机器学习与高维信息检索 - Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及基于CVXOPT的相关实例

    Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及相关实例 5.1 FNN的定义和动机 粗略地说,前馈神经网络(FNN)是一种特殊的函数类 ...

  4. 机器学习与高维信息检索 - Note 2 - 统计决策和机器学习

    2. 统计决策和机器学习 统计决策和机器学习 2. 统计决策和机器学习 定理2.2 2.1 监督决策的一般设置和泛化误差 2.2 k近邻 2.3 维度诅咒 基本问题是,对于随机变量X∈RpX\in \ ...

  5. 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例

    主成分分析及其现代解释 4. 主成分分析及其现代解释 Principal Component Analysis and Its Modern Interpretations 4.1 几何学解释 The ...

  6. 机器学习与高维信息检索 - Note 3 - 逻辑回归(Logistic Regression)及相关实例

    逻辑回归 Logistic Regression 3. 逻辑回归 补充: 凸性 Convexity 定义3.1 定理3.2 定理3.3 成本函数的凸性 3.1逻辑回归的替代方法 3.2 线性可分性和逻 ...

  7. UA MATH567 高维统计II 随机向量10 Grothendieck不等式的证明 版本二:kernel trick

    UA MATH567 高维统计II 随机向量10 Grothendieck不等式的证明 版本二:kernel trick 在介绍亚高斯随机向量的更多应用之前,我们先简单介绍一下核方法(kernel t ...

  8. Kernel Trick——核机制,更高维空间内积的快速计算

    这是小弟的第一篇技术博客,功力尚浅,写的不准确不专业的地方,还请各位同仁,多多包涵. blog归正传. 引言 理论 1 Kernel SVM 2 2阶多项式核 3 常见核的种类 应用 1 Kernel ...

  9. 【火炉炼AI】机器学习053-数据降维绝招-PCA和核PCA

    [火炉炼AI]机器学习053-数据降维绝招-PCA和核PCA (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplo ...

最新文章

  1. YOLObile:面向移动设备的「实时目标检测」算法
  2. sublime设置tab为四个空格
  3. Android自定义View实现仿QQ实现运动步数效果
  4. mysql加入新的从节点怎么配置_MySql主从复制配置
  5. 安卓修改动画效果--动画差值器TimeInterpolator
  6. 端口安全原理介绍及配置命令
  7. 周六直播丨细致入微 – OceanBase云平台安装部署实战
  8. Windows下搭建Scala开发环境
  9. python中IO多路复用、协程
  10. 网管系统开发经验谈(二)
  11. WPC QI 无线充电
  12. SolidWorks如何提取stp格式装配体中的零件图
  13. ps磨皮滤镜插件Portraiture for Mac 破解方法
  14. chr 13 java 替换_Java ROT13编码转换算法实现
  15. 怎么制作鸿蒙系统启动盘,开物成务,鸿蒙操作系统全景解构
  16. 2015年自我激励及2014年的总结
  17. Selenium基础知识 多窗口处理
  18. C语言:一维数组—一个萝卜一个坑问题
  19. z中国农产品流通市场运行态势与盈利前景预测报告2022-2027年
  20. oracle教程目录(我要自学网)

热门文章

  1. pfSense 2.4.3 发布,包含重要的安全修复补丁
  2. MySQL重置root用户密码的方法
  3. 2022-2028年中国羧基丁腈胶乳行业市场发展调研及投资前景分析报告
  4. 观《逻辑思维,如何成为一个高手》
  5. 第十二周 11.15-11.21
  6. C# 在用户控件中添加自定义事件
  7. sql查询返回xml数据之应用【转载】
  8. linux的tar中ztvf,linux中的tar命令(2)
  9. java qq协议 c#,C# WebQQ协议群发机器人(三)
  10. csv格式用什么打开可以编辑_如何用EXCEL/WPS整理航信版(金税盘/白盘)客户(商品)编码表...