Machine learning 支持向量机核类型
支持向量机中常用的核函数有线性、径向基函数和多项式。有人能用简单的方式解释一下这个内核函数是什么吗:)因为我对这个领域还不太熟悉,所以我不清楚这些内核类型的重要性。让我们从这个问题开始。支持向量机是一种线性模型,它总是寻找一个超平面来将一个类与另一个类分开。我将重点讨论二维的情况,因为它更容易理解,并且可以通过可视化给出一些直觉,但是请记住,这对于更高的维度是正确的(简单地说,线变成平面,抛物线变成抛物面等等) 简而言之,内核 内核所做的是改变线性公式中点积的定义。这是什么意思?对于定义为Machine learning 支持向量机核类型,machine-learning,svm,Machine Learning,Svm,支持向量机中常用的核函数有线性、径向基函数和多项式。有人能用简单的方式解释一下这个内核函数是什么吗:)因为我对这个领域还不太熟悉,所以我不清楚这些内核类型的重要性。让我们从这个问题开始。支持向量机是一种线性模型,它总是寻找一个超平面来将一个类与另一个类分开。我将重点讨论二维的情况,因为它更容易理解,并且可以通过可视化给出一些直觉,但是请记住,这对于更高的维度是正确的(简单地说,线变成平面,抛物线变成抛物面等等) 简而言之,内核 内核所做的是改变线性公式中点积的定义。这是什么意思?对于定义为=x^
=x^Ty=SUM{i=1}^d x_i y_i
的有限维,SVM使用点积。这或多或少捕获了两个向量之间的相似性(但也是投影的几何操作,它也与向量之间的角度密切相关)。内核技巧是将SVM数学中出现的每一个
都变成K(x,y)
表示“K是某个空间中的点积”,并且每个内核都有一个映射f_K,这样K(x,y)=
技巧是,你不直接使用f_K,而只是计算它们的点积,这为你节省了大量的时间(有时-无限量,因为f_K(x)可能有无限多个维度)。好吧,这对我们来说意味着什么?我们仍然“生活”在x的空间中,而不是f_K(x)。结果非常好-如果你在f_K的空间中构建一个超平面,分离你的数据,然后回顾x的空间(因此你可以说你通过f_K^{-1}投射回超平面)您将获得非线性决策边界!边界的类型取决于f_K,f_K取决于K,因此,K的选择(除其他外)将影响边界的形状
线性核
在这里,我们实际上没有任何内核,您只有“正常”点积,因此在2d中,您的决策边界始终是直线
正如您所见,我们可以正确地分离大多数点,但由于我们假设的“刚性”,我们永远不会捕获所有点
聚
在这里,我们的内核在一定程度上诱导了特征多项式组合的空间。因此,我们可以处理稍微“弯曲”的决策边界,例如阶数为2的抛物线
如你所见-我们分离了更多的点!好的,我们能用高阶多项式得到所有的点吗?让我们试试4
不幸的是不是。为什么?因为多项式组合不够灵活。它不会“弯曲”我们的空间来捕捉我们想要的东西(也许没那么糟糕?我的意思是——看这一点,它看起来像一个异常值!)
径向基核函数
在这里,我们的诱导空间是一个高斯分布的空间…每个点都成为正态分布的概率密度函数(直至标度)。在这样的空间中,点积是积分(因为我们有无限多个维度!),因此,我们具有极大的灵活性,事实上,使用这样的核可以分离所有东西(但它好吗?)
粗略比较
好的,那么主要的区别是什么呢?我现在将根据几个度量对这三个内核进行排序
- 支持向量机学习时间:线性
- 拟合任何数据的能力:线性<多边形<径向基函数
- 过度拟合风险:线性
- 拟合不良风险:rbf
- 超参数数量:线性(0)
- 如何“局部”是特定的核:线性
谢谢你非常宝贵的回答:)@lejilot你能为我提供这句话的资源吗:Vapnik和Cortes(支持向量机的发明者)非常支持这样一种观点,即你应该尽可能地尝试拟合最简单的模型,并且只有在它不适合的情况下——去拟合更复杂的模型。是的,Vladimir Vapnik的“统计学习理论”-