说明径向基函数如何在支持向量机中工作

时间:2016-03-28 18:34:27

标签: machine-learning kernel svm gaussian

在使用RBF时,我无法准确掌握SVM的工作原理。我对数学的了解还可以,但到目前为止,我遇到的每一个解释对我来说都太简洁了。我目前的理解如下。让我们假设我使用SVM作为不可线性分离的数据集的二元分类器(因此rbf是正确的选择?)。当SVM被训练时,它将绘制一个超平面(我认为它就像一个三维平面,但有更多维度?),可以最好地分离数据。

调整时,更改gamma值会改变超平面的表面(也称为决策边界?)。

这是我开始混淆的地方..

因此伽马值的增加导致高斯更窄。这是否就像说可以绘制的平面上的凸起(如果用3d绘制)允许更窄以更好地拟合训练数据?或者在2D中,这就像是说伽马定义了分离数据的线是多么弯曲?

我对于如何通过有限数量的特征导致无限维表示感到非常困惑?任何好的比喻都会对我有很大帮助。

1 个答案:

答案 0 :(得分:4)

  

(所以rbf是正确的选择吗?)

这取决于。 RBF是非常简单的通用内核,可能会被使用,但还有其他几十种。请查看pykernels https://github.com/gmum/pykernels

中包含的示例
  

当训练SVM时,它会绘制一个超平面(我认为它就像一个三维平面,但尺寸更大?),可以最好地分离数据。

让我们避免一些奇怪的混乱。这里没有绘制。 SVM将寻找由v(法向量)和b(偏差,距离原点的距离)定义的d维超平面,这只是点x的集合,使{{1} }}。在2D超平面是一条线,在3D超平面是平面,在d + 1维度中它是d维对象,总是比空间低一维(线是1D,平面是2D)。

  

调整时,更改gamma值会改变超平面的表面(也称为决策边界?)。

现在这是一个经常出错的错误。决策边界超平面。决策边界是超平面到输入空间的投影。您无法观察到实际的超平面,因为它通常具有很高的尺寸。您可以将此超平面表示为函数方程,但仅此而已。另一方面,决策边界&#34;生活&#34;在输入空间中,如果输入是低维的,您甚至可以绘制此对象。但这不是超平面,它只是这个超平面与输入空间相交的方式。这就是为什么决策边界经常是弯曲的甚至是不连续的,即使超平面总是线性的和连续的 - 因为你只看到了非线性截面。现在<v, x> = b正在做什么? RBF内核导致连续函数空间的优化。有很多这些(有连续的这种对象)。然而,SVM只能表达这些人中的一小部分 - 训练点中核值的线性组合。修复特定的伽玛限制功能集要考虑 - 伽玛越大,内核越窄,因此正在考虑的功能包括这样的&#34;尖峰&#34;分布。因此,伽马本身不会改变表面,它会改变所考虑假设的空间。

  

因此伽马值的增加导致高斯更窄。这是否就像说可以绘制的平面上的凸起(如果用3d绘制)允许更窄以更好地拟合训练数据?或者在2D中,这就像是说伽马定义了分离数据的线是多么弯曲?

我想我之前回答过 - 高伽玛意味着你只考虑形式的超平面

gamma

其中<v, x> - b = SUM_i alpha_i K_gamma(x_i, x) - b ,因此你会得到非常好的&#34;尖刻的&#34;你的基础要素。这将导致您的训练数据非常紧密。决策边界的确切形状很难估计,因为这取决于训练期间选择的最佳拉格朗日乘数K_gamma(x_i, x) = exp(-gamma ||x_i-x||^2)

  

我对于如何通过有限数量的特征导致无限维表示非常困惑?任何好的比喻都会对我有很大帮助。

&#34;无限代表&#34;事实上,为了使用向量和超平面,您的每个点实际上都映射到连续函数。因此,内部的SVM不再使用d维点,它正在使用函数。考虑2d情况,你有点[0,0]和[1,1]。这是一个简单的二维问题。当您在此处应用带有rbf内核的SVM时 - 您将使用以[0,0]为中心的非标准化高斯分布和[1,1]中的另一个。每个这样的高斯分布是从R ^ 2到R的函数,其表示其概率密度函数(pdf)。这有点令人困惑,因为内核看起来也像高斯,但这只是 ,因为两个函数的点积通常被定义为它们产品的积分,而两个高斯产品的积分是...... ..高斯呢!那么这个无限的在哪里?请记住,您应该使用向量。如何将函数写为向量?您必须列出其所有值,因此如果您有一个函数alpha_i,则必须列出此类值的无限数以完全定义它。这就是无限维度的概念 - 你将点映射到函数,函数在向量空间方面是无限维的,因此你的表示是无限维的。

一个很好的例子可能是不同的映射。考虑数字1,2,3,4,5,6,7,8,9,10的一维数据集。让我们给奇数号分配不同的标签。你无法将这些家伙线性分开。但是你可以将每个点(数字)映射到一种特征函数,形式函数

f(x) = 1/sqrt(2*pi(sigma^2) exp(-||x-m||^2 / (2*sigma^2))

现在,在所有这些函数的空间中,我可以通过简单地构建方程的超平面,轻松地将奇数x与其余函数创建的函数线性分离

f_x(y) = 1 iff x e [y-0.5, y+0.5]

如果x是奇数,这将等于1,因为只有这个积分不为零。显然我只是使用有限数量的训练点(这里是v_odd),但表示本身是无限维。这些额外的信息在哪里?#34;来自(哪里?根据我的假设 - 我定义映射的方式在我正在考虑的空间中引入了一个特定的结构。与RBF类似 - 你获得了无限的维度,但这并不意味着你实际上正在考虑每个连续函数 - 你将自己局限于以训练点为中心的高斯的线性组合。类似地,您可以使用正弦内核,这限制了正弦函数的组合。选择一个特定的,最好的&#34;内核是整个其他故事,复杂且没有明确的答案。希望这有点帮助。