kernels

上一篇,我们讨论的都是在进行线性分类的情况,接下来当然需要讨论SVMs作为非线性分类器的情况,完成非线性分类的核心思想就是引入所谓核函数的一个东西。
如下图,我们现在要对这样一个数据集进行分类,我们能想到的一种方法就是利用高次项来进行拟合,但是在处理复杂的问题的时候,高次项会大大增加我们的运算负荷,于是就想能不能选择别的更好的特征呢。答案当然是肯定的,也就是kernel。
机器学习(十八) - SVMs - Kernels

接下来我们要讲解什么是核函数,它是如何帮我引入新的特征变量的。同样的,为了直观我们假设只有 x1,x2。现在我们人为地在平面上选取一些点作为landmark(这里假设选3个),分别为 l(1),l(2),l(3)
然后我们定义新的特征为某个相似函数

fi=similarity(x,l(i))=exp(xl(i)22σ2)

这个所谓的相似函数就是定义某个点与我们选取的landmark的接近(相似)程度,同时这个也就是我们的kernel(核函数)。核函数有很多种,我们所举例中用的是高斯核函数。
机器学习(十八) - SVMs - Kernels
对于高斯分布,如果某个点离我们的landmark越近,它对应的核函数的值就越接近于1,如果离的越远,就越接近于0。
下面给出一些例子就更加清楚了,对于二维的情况,每个kernel都是一个跟landmark和所选取的 σ 有关的二维高斯分布。
机器学习(十八) - SVMs - Kernels

核函数的形式我们有了,问题是landmark应该如何选取呢,面对复杂的问题,人为地选取landmark,显然是不太现实的。于是一个即简单又合理的方法就是选取我们训练集所有的点作为landmark,有多少个点就有多少个landmark。
机器学习(十八) - SVMs - Kernels
通过核函数(本质上一种映射),我们将 x(i)Rn+1 映射到 f(i)Rm+1,现在特征量有了,训练集也有了,接下来就要训练模型拟合 θ 了。相比于上一篇的目标函数,由于加入了kernel,我们进行了一些修改如下。
机器学习(十八) - SVMs - Kernels
对于目标函数的后一项可以表示为 θTθ ,这里的 θ 我们忽略 θ0。在实际运用当中,我们的后一项其实是使用 θTMθ,这个 M 矩阵跟我们的kernel有关,不仔细讲解它的构成,只说明加入这个矩阵的原因,由于我们将我们训练集的所有样本都用作为了landmark,可想而知,如果我们的样本数量很大,那么 θTθ 的运算量是非常大的,而这个矩阵的引入能够大大的减少运算时间。

最后我们讲一讲关于参数 C,σ 的选取对于模型的影响。
机器学习(十八) - SVMs - Kernels


小广告

淘宝choker、耳饰小店 物理禁止
女程序员编码时和编码之余 都需要一些美美的choker、耳饰来装扮自己
男程序员更是需要常备一些来送给自己心仪的人
淘宝小店开店不易 希望有缘人多多支持 (O ^ ~ ^ O)
本号是本人 只是发则小广告 没有被盗 会持续更新深度学习相关博文和一些翻译
感谢大家 不要拉黑我 ⊙﹏⊙|||°
机器学习(十八) - SVMs - Kernels

相关文章:

  • 2021-09-18
  • 2021-06-03
  • 2021-10-18
  • 2021-06-11
  • 2022-02-25
  • 2021-05-15
  • 2021-12-23
猜你喜欢
  • 2021-06-17
  • 2021-10-06
  • 2021-11-11
  • 2022-01-31
  • 2021-09-17
  • 2021-11-15
  • 2021-12-18
相关资源
相似解决方案