机器学习小知识: 核函数及实际应用

机器学习与数学

共 1712字,需浏览 4分钟

 ·

2020-08-15 03:36

在实际应用中,数据在其原始特征空间中是非线性可分的,此时线性分类器可能无法确定决策边界在哪里,因此不能正确地对数据作分类。然而,我们可以将原始特征空间

映射到更高维的特征空间

从而帮助线性分类器来正确地完成这项工作。


下图是通过特征映射对数据点进行分类的示例。最初,二维空间中特征向量为 的数据点分布在同心圆上。此时使用线性分类器来区分决策边界是做不到的。
〄 将具有 2D 特征的数据点映射到 3D 特征向量。


但是,通过借助某个映射函数 ,可以将特征向量转换到 3D 特征空间。新数据点的特征向量为 ,现在可以使用线性分类器判定边界超平面。这就是特性映射的强大之处,它允许我们以更强的表达能力处理更复杂的数据分布模式。

然而,直接使用 的缺点是,

  • 有时很难直接显式构造
  • 随着特征维数的增加,计算量大增。

内核函数可以提供一种解决此问题的有效方法。

1核函数

核函数的思想是更方便地获取两个高维特征向量之间的内积。在算法中,并不是直接求内积,而是只顾及内积的结果。例如,假设我们假想有这么个映射

请注意,实际上并不需要构造这个映射出来,我们只想得到映射后的向量之间的内积而已。而核函数就是间接计算两个特征向量之间的内积,如下所示,相当于绕过了中间的映射函数

构造核函数比在更高的特征维数中直接使用映射函数更容易。因此,我们只需要选择一定的核函数,而不用去费尽心思构造映射 。至于选的核函数是不是适合正在处理的问题,那是另一回事情啦。

2核函数复合规则

有几种核函数复合规则可用于构造复杂核函数。

  • 1、若 是核函数。

  • 2、若 ,以及 是核函数,则 是核函数。

  • 3、若 均是核函数,则 是核函数。

  • 4、若 均是核函数, 则 是核函数。

3径向基核函数

核函数甚至可以让特征向量变为无限维。该类型的一个常见核函数就是径向基核函数,定义如下,

由于指数函数可以展开到无穷幂级数,因此径向基核函数具有更强的特征映射能力。下面是径向基核是一个核函数的证明。

其中,

4核感知器算法

从上面我们知道了,可以用核函数来代替高维向量的显式构造以及内积计算,从而提高算法对非线性问题的处理能力。

下面我们来结合一个实例来看一下核函数的应用。不过此处需要了解一下感知器算法,可以参考此篇[1]。对每一个错划分的数据点,更新 。参数 可以表示为,

其中 感知器在第 个数据点上的错分次数。在映射后的特征空间里,参数 可以表示为,

利用上述 的核表示形式,核感知器算法的伪代码可以写为,

下图动态地可视化了利用径向基核函数感知器算法更新决策边界的过程。值得注意的是,径向基核感知器算法绘制的决策边界在这种数据分布情况下可以在 2 个 epoch 内收敛。径向基核函数中的参数 在这里取

〄 用 RBK 感知器算法更新决策边界。

5代码演示

在 Jupyter Notebook 中编写的感知器算法示例代码可以在这里[2]下载。可以试着改变数据和超参数,以了解内核感知器算法的执行情况。

⟳参考资料⟲

[1]

感知器分类: https://towardsdatascience.com/perceptron-algorithms-for-linear-classification-e1bb3dcc7602

[2]

Notebook 代码: https://github.com/AnHungTai/Medium-SampleCode/blob/master/Kernel%20Functions%20in%20Nonlinear%20Classification/Visualizing%20Kernel.ipynb

[3]

原文链接: https://towardsdatascience.com/kernel-functions-in-non-linear-classification-91a6c9ab14d6



浏览 184
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报