Answers:
内核是一种在某些(可能是非常高维的)特征空间中计算两个向量和的点积的方法,这就是为什么内核函数有时被称为“广义点积”的原因。
假设我们有一个映射,将 R n中的向量带到某个特征空间 R m。然后的点积 X和 ÿ在这个空间是φ( X )Ť φ( Ý)。内核是一个函数ķ对应于该点积,即ķ( X, ÿ)=φ( X )Ť φ( Ý)。
为什么这有用?内核提供一个方法来计算点的产品在一些特征空间,甚至不知道这个空间就是,什么是。
例如,考虑一个简单的多项式核与X,ÿ ∈ - [R 2。这似乎并不符合任何映射函数φ,它只是返回一个实数的函数。假设x = (x 1,x 2)和y = (y 1,y 2),让我们扩展这个表达式:
请注意,这不过是两个向量和(1,y 2 1,y 2 2, √,并且φ(x)=φ(x1,x2)=(1,x 2 1,x 2 2, √。所以内核ķ(X,Ý)=(1+ X ŤÝ)2=φ(X)Ťφ(Ý)计算在6维空间中的点积而无需明确访问这个空间。
φ
最后,我将推荐Yaser Abu-Mostafa教授的在线课程“从数据中学习”,作为对基于内核的方法的很好的介绍。具体来说,讲座“支持向量机”,“内核方法”和“径向基函数”是关于内核的。
考虑内核(至少对于SVM)的一种非常简单直观的方法是相似性函数。给定两个对象,内核会输出一些相似度分数。对象可以是从两个整数,两个实值向量,树开始的任何东西,只要内核函数知道如何比较它们即可。
可以说最简单的例子是线性核,也称为点积。给定两个向量,相似度是一个向量在另一向量上的投影长度。
另一个有趣的内核示例是高斯内核。给定两个向量,相似度将随着的半径而减小。两个对象之间的距离通过此半径参数“重新加权”。
使用内核学习的成功(至少对于SVM还是如此)在很大程度上取决于内核的选择。您可以将内核视为关于分类问题的知识的紧凑表示。它通常是特定于问题的。
我不会将内核称为决策函数,因为内核是在决策函数内部使用的。给定要分类的数据点,决策函数通过将数据点与由学习参数加权的多个支持向量进行比较来利用内核。支持向量在该数据点的域中,并且沿着学习算法找到的学习参数。α
考虑以下数据集,其中黄色和蓝色点在二维上显然不是线性可分离的。
如果我们可以找到一个更高维的空间,这些点在其中可以线性分离,则可以执行以下操作:
在许多更高维度的空间中,这些点是线性可分离的。这是一个例子
这是内核技巧起作用的地方。引用以上精彩答案
假设我们有一个的映射,它将向量带到某个特征空间。那么和在该空间中的点积为。核是与该点积相对应的函数,即
如果我们可以找到与上述功能图等效的内核函数,则可以将该内核函数插入线性SVM中,并非常有效地执行计算。
事实证明,以上特征图对应于众所周知的多项式内核:。令和我们得到
非常简单(但准确地说),内核是两个数据序列之间的权重因子。该加权因子可以在一个“ 时间点 ” 为一个“ 数据点 ” 分配比其他“ 数据点 ”更多的权重,或者分配相等的权重或为另一个“ 数据点 ” 分配更多的权重,依此类推。
这样,相关性(点积)可以在某些点上分配比其他点更多的“重要性”,从而应对非线性(例如,非平坦空间),附加信息,数据平滑等问题。
在另一种方式中,内核是一种更改两个数据序列的相对维度(或维度单位)以应对上述问题的方式。
在第三方式(与前两个),一个籽粒是一种方式映射或投射在1对1的方式一个数据序列到其他 考虑到给定的信息或标准(例如弯曲的空间,丢失的数据,数据重新排序等)。因此,例如,给定的内核可以拉伸或缩小或裁剪或弯曲一个数据序列,以将1对1拟合或映射到另一个数据序列上。
内核可以像Procrustes一样工作,以“ 最适合 ”