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

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

Note 6 核, 核方法与核函数

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

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

更确切地说,考虑一个ML算法,其输入数据可以是无标签的,即x1,…,xnmathbf{x}_{1}, ldots, mathbf{x}_{n}x1,,xn或有标签的,即(x1,y1),…,(xn,yn)left(mathbf{x}_{1}, mathbf{y}_{1} ight), ldots,left(mathbf{x}_{n}, mathbf{y}_{n} ight)(x1,y1),,(xn,yn) 。此外,假设该算法实际上只使用了输入数据的⟨xi,xj⟩:=xi⊤xjleftlanglemathbf{x}_{i}, mathbf{x}_{j} ight angle:=mathbf{x}_{i}^{ op} mathbf{x}_{j}xi,xj:=xixj。然后,将⟨xi,xj⟩leftlanglemathbf{x}_{i}, mathbf{x}_{j} ight anglexi,xj替换为某个函数κ(xi,xj)kappaleft(mathbf{x}_{i}, mathbf{x}_{j} ight)κ(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和每个训练输入ximathbf {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=1nwiyik(xi,x),

其中

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

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

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

  • ∑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}wiR 是训练实例的权重,由学习算法决定。

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

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


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

Definition 6.1

一个(半正定)核是一个函数κ:Rp×Rp→Rkappa: mathbb{R}^{p} imes mathbb{R}^{p} ightarrow mathbb{R}κ:R

更多相关:

  • Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及相关实例 5.1 FNN的定义和动机 粗略地说,前馈神经网络(FNN)是一种特殊的函数类,在最小化任何一种预期损失方面都非常强大,但代价是要训练大量的参数。更确切地说,考虑一个输入变量X∈Rpmathcal{X} i...

  • 草色新雨中, 松声晚窗里。之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作。虽然 PowerQuery 已经将大部分常用功能内置成到功能区。基本能完成我们大部分的报表自动化功能。但是总有些复杂的或者个性化的问题是开发团队没有预先想到的,这时我们就需要学习 M 语言。一、M 语言在哪里?M语言的函数公式有三个地...

  • 前言从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。基本概念表达式表...

  • 1.1函数1.1.1什么是函数函数就是程序实现模块化的基本单元,一般实现某一功能的集合。函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态。1.1.2函数的作用函数是组织好的,可重复使用的,用来...

  • 原标题:基于Python建立深度神经网络!你学会了嘛?图1 神经网络构造的例子(符号说明:上标[l]表示与第l层;上标(i)表示第i个例子;下标i表示矢量第i项)单层神经网络图2 单层神经网络示例神经元模型是先计算一个线性函数(z=Wx+b),接着再计算一个激活函数。一般来说,神经元模型的输出值是a=g(Wx+b),其中g是激活函数(...

  • 在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重。小编刚开始学习的时候也会有这个感觉。不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个。今天小编就把常用的函数汇总一下,为大家能够能好的学习MySQL中的函数。MySQL常使用的函数大概有四类。时间函数、数学函数、字符函数、控制函数。让我...