1. 核函数 I
首先让我们来看看第一个标记:
假设,如果xapprox l^{(1)},即x与其中一个标记点非常接近,那么这个欧氏距离||x-l^{(1)}||就会接近0,因此:
相反的,如果x离l^{(1)}很远,那么会有:
这些特征变量的作用是度量x到标记
1.1 深入理解核函数
1.1.1 x对f的值的影响
1.1.2 σ2 对f的值的影响
σ^2=0.5 | σ^2=3 | |
---|---|---|
1.2 获取预测函数
假设我们已经找到了一个学习算法,并且假设我已经得到了这些参数的值,比如如果:
那么:
如果将这个训练样本x带入之前相同的计算,你发现
因此,我们得到
你最后得到的结果是:对于接近
因此这就是一个我们如何通过标记点,以及核函数,来训练出非常复杂的非线性判别边界的方法。
这就是核函数这部分的概念,以及我们如何在支持向量机中使用它们。我们通过标记点和相似性函数来定义新的特征变量从而训练复杂的非线性分类器。
目前还有一些问题我们并没有做出回答,其中一个是我们如何得到这些标记点;另一个是其他的相似度方程(核函数)是什么样的,如果有其他的话,我们能够用其他的相似度方程来代替我们所讲的这个高斯核函数吗?在下一个视频中我们会回答这些问题,然后把所有东西都整合到一起来看看支持向量机如何通过核函数的定义 有效地学习复杂非线性函数。
2. 核函数 II
2.1 如何选取标记点(landmark)
给定m个训练样本:
我将选取与m个训练样本精确一致的位置作为我的标记点:
当输入样本x(样本x可以属于训练集,也可以属于交叉验证集,也可以属于测试集),我们可以计算这些特征,即:
这里的
最终我们能得到一个特征向量,我们将特征向量记为f:
此外,按照惯例,如果我们需要的话,可以添加额外的特征f_0,f_0的值始终为1:
它与我们之前讨论过的截距x^0的作用相似。
举个例子,假设我们有训练样本
给定x^{(i)},我们可以通过相似度函数
在这一列中的某个位置,即第i个元素,有一个特征:
这里的
所以
所以,对于这个样本来说,其中的某一个特征等于1。接下来,类似于我们之前的过程,我将这m个特征合并为一个特征向量。于是,相比之前用
那么这个向量就是我们用于描述训练样本的特征向量。
如果你已经得到参数θθ并且想对样本x做出预测,我们先要计算特征向量f,f是m+1m+1维的特征向量(这里有m是因为我们有m个训练样本,因此就有m个标记点)。
怎样得到参数θ呢?
我们有n=m个特征。有效的特征数量应该等于f的维数,所以nn其实就等于m。
最后一项与上面式子中的最后一项
这一项
其中:
大多数支持向量机在实现的时候其实是替换掉
你可以直接认为这个具体的实现细节尽管略微的改变了优化目标,但是它主要是为了计算效率,所以你不必要对此有太多担心。