如何直观地解释什么是内核?


96

许多机器学习分类器(例如支持向量机)允许指定一个内核。解释内核是什么的直观方式是什么?

我一直在思考的一个方面是线性和非线性内核之间的区别。简单来说,我可以说“线性决策函数”是“非线性决策函数”。但是,我不确定将内核称为“决策函数”是否是一个好主意。

有什么建议吗?

Answers:


112

内核是一种在某些(可能是非常高维的)特征空间中计算两个向量x的点积的方法y,这就是为什么内核函数有时被称为“广义点积”的原因。

假设我们有一个映射,将 R n中的向量带到某个特征空间 R m。然后的点积 X ÿ在这个空间是φ X Ť φ Ý。内核是一个函数ķ对应于该点积,即ķ X ÿ=φ X Ť φ Ýφ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

为什么这有用?内核提供一个方法来计算点的产品在一些特征空间,甚至不知道这个空间就是,什么是φ

例如,考虑一个简单的多项式核Xÿ- [R 2。这似乎并不符合任何映射函数φ,它只是返回一个实数的函数。假设x = x 1x 2y = y 1y 2,让我们扩展这个表达式:k(x,y)=(1+xTy)2x,yR2φx=(x1,x2)y=(y1,y2)

k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x12y12+x22y22+2x1y1+2x2y2+2x1x2y1y2

请注意,这不过是两个向量1y 2 1y 2 2(1,x12,x22,2x1,2x2,2x1x2),并且φx=φx1x2=1x 2 1x 2 2(1,y12,y22,2y1,2y2,2y1y2)。所以内核ķXÝ=1+ X ŤÝ2=φXŤφÝ计算在6维空间中的点积而无需明确访问这个空间。φ(x)=φ(x1,x2)=(1,x12,x22,2x1,2x2,2x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)

φk(x,y)=exp(γxy2)φ

最后,我将推荐Yaser Abu-Mostafa教授的在线课程“从数据中学习”,作为对基于内核的方法的很好的介绍。具体来说,讲座“支持向量机”“内核方法”“径向基函数”是关于内核的。


2
当前标签定义:“直观:寻求对统计数据进行概念或非数学理解的问题。” 没有明确表明概念是否被视为非数学的同义词。
rolando2

40

考虑内核(至少对于SVM)的一种非常简单直观的方法是相似性函数。给定两个对象,内核会输出一些相似度分数。对象可以是从两个整数,两个实值向量,树开始的任何东西,只要内核函数知道如何比较它们即可。

可以说最简单的例子是线性核,也称为点积。给定两个向量,相似度是一个向量在另一向量上的投影长度。

另一个有趣的内核示例是高斯内核。给定两个向量,相似度将随着的半径而减小。两个对象之间的距离通过此半径参数“重新加权”。σ

使用内核学习的成功(至少对于SVM还是如此)在很大程度上取决于内核的选择。您可以将内核视为关于分类问题的知识的紧凑表示。它通常是特定于问题的。

我不会将内核称为决策函数,因为内核是决策函数内部使用的。给定要分类的数据点,决策函数通过将数据点与由学习参数加权的多个支持向量进行比较来利用内核。支持向量在该数据点的域中,并且沿着学习算法找到的学习参数。ααα


点积和投影并不完全相同。
ttnphns

对于SVM,我认为内核是不同空间中的距离度量。这与SVM概括支持向量分类器的想法是一致的。通常,内核可能更复杂。
aginensky

29

一个直观的例子来帮助直觉

考虑以下数据集,其中黄色和蓝色点在二维上显然不是线性可分离的。

在此处输入图片说明

如果我们可以找到一个更高维的空间,这些点在其中可以线性分离,则可以执行以下操作:

  • 将原始特征映射到更高的变压器空间(特征映射)
  • 在更高的空间中执行线性SVM
  • 获取与决策边界超平面相对应的一组权重
  • 将此超平面映射回原始2D空间以获得非线性决策边界

在许多更高维度的空间中,这些点是线性可分离的。这是一个例子

x1,x2:→z1,z2,z3
z1=2x1x2  z2=x12  z3=x22

这是内核技巧起作用的地方。引用以上精彩答案

假设我们有一个的映射,它将向量带到某个特征空间。那么和在该空间中的点积为。核是与该点积相对应的函数,即φ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

如果我们可以找到与上述功能图等效的内核函数,则可以将该内核函数插入线性SVM中,并非常有效地执行计算。

多项式核

事实证明,以上特征图对应于众所周知的多项式内核:。令和我们得到K(x,x)=(xTx)dd=2x=(x1,x2)T

k((x1x2),(x1x2))=(x1x2+x2x2)2=2x1x1x2x2+(x1x1)2+(x2x2)2=(2x1x2 x12 x22) (2x1x2x12x22)

k((x1x2),(x1x2))=ϕ(x)Tϕ(x)

ϕ((x1x2))=(2x1x2x12x22)

可视化特征图和生成的边界线

  • 左侧图显示了在变换空间中绘制的点以及SVM线性边界超平面
  • 右侧图显示了原始二维空间中的结果

在此处输入图片说明


资源


4

非常简单(但准确地说),内核是两个数据序列之间的权重因子。该加权因子可以在一个“ 时间点 ” 为一个“ 数据点 ” 分配比其他“ 数据点 ”更多的权重,或者分配相等的权重或为另一个“ 数据点 ” 分配更多的权重,依此类推。

这样,相关性(点积)可以在某些点上分配比其他点更多的“重要性”,从而应对非线性(例如,非平坦空间),附加信息,数据平滑等问题。

在另一种方式中,内核是一种更改两个数据序列的相对维度(或维度单位以应对上述问题的方式。

在第三方式(与前两个),一个籽粒是一种方式映射投射在1对1的方式一个数据序列到其他 考虑到给定的信息或标准(例如弯曲的空间,丢失的数据,数据重新排序等)。因此,例如,给定的内核可以拉伸缩小裁剪弯曲一个数据序列,以将1对1拟合或映射到另一个数据序列上。

内核可以像Procrustes一样工作,以“ 最适合


我认为您可能是在内核密度估计的意义上谈论内核,而不是在SVM和相关方法中使用的正半定Mercer内核。
2015年

@Dougal,在这个答案的意义上,内核是一个加权函数或度量,用于以特定方式关联数据或利用某些数据功能,因此也涵盖了SVM内核方法
Nikos M.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.