Machine learning 解释径向基函数在支持向量机中的工作原理

Machine learning 解释径向基函数在支持向量机中的工作原理,machine-learning,kernel,svm,gaussian,Machine Learning,Kernel,Svm,Gaussian,当使用RBF时,我很难准确地理解SVM是如何工作的。我的数学知识还行,但到目前为止,我遇到的每一个解释对我来说都太简洁了。我目前的理解如下。让我们假设我使用一个SVM作为一个不可线性分离的数据集的二元分类器(所以rbf是正确的选择?)。当SVM被训练时,它将绘制一个超平面(我认为它类似于3d中的一个平面,但有更多的维度?) 调整时,更改gamma的值会更改超平面的曲面(也称为决策边界?) 这就是我开始感到困惑的地方 因此,伽马值的增加,会导致高斯分布变窄。这是否像是说可以绘制的平面上的凹凸(如果

当使用RBF时,我很难准确地理解SVM是如何工作的。我的数学知识还行,但到目前为止,我遇到的每一个解释对我来说都太简洁了。我目前的理解如下。让我们假设我使用一个SVM作为一个不可线性分离的数据集的二元分类器(所以rbf是正确的选择?)。当SVM被训练时,它将绘制一个超平面(我认为它类似于3d中的一个平面,但有更多的维度?)

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

这就是我开始感到困惑的地方

因此,伽马值的增加,会导致高斯分布变窄。这是否像是说可以绘制的平面上的凹凸(如果以3d绘制)可以更窄以更好地拟合训练数据?或者在2D中,这就像说gamma定义了分隔数据的线的弯曲程度

我也很困惑,这是如何从有限数量的特征中得到无限维表示的?任何好的类比都会对我大有帮助

(那么rbf是正确的选择?)

视情况而定。RBF是一种非常简单、通用的核函数,可以使用,但还有几十种。以pykernels中包含的代码为例

当SVM被训练时,它将绘制一个超平面(我认为它类似于3d中的一个平面,但有更多的维度?)

让我们避免一些奇怪的困惑。这里什么都没有。SVM将寻找由
v
(法向量)和
b
(偏差,距原点的距离)定义的d维超平面,这是一组简单的点
x
,使得
=b
。在二维超平面中为直线,在三维超平面中为平面,在d+1维中为三维对象,始终比空间低一维(直线为1D,平面为2D)

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

这是一个经常犯的错误。决策边界不是超平面。决策边界是超平面在输入空间上的投影。您无法观察实际的超平面,因为它通常具有非常高的维度。你可以把这个超平面表示成一个函数方程,但仅此而已。另一方面,决策边界“存在”在您的输入空间中,如果输入是低维的,您甚至可以绘制此对象。但这不是一个超平面,它只是这个超平面与输入空间相交的方式。这就是为什么决策边界通常是弯曲的,甚至是不连续的,即使超平面总是线性的和连续的,因为你只看到一个非线性的部分通过它。现在,
gamma
在做什么?RBF核导致在连续函数空间中的优化。这些物体有很多(这些物体是连续的)。然而,支持向量机只能表达其中的一小部分——训练点中核值的线性组合。固定特定伽玛限制函数的集合-更大的伽马,更窄的内核,因此正在考虑的功能是由这样的“尖刺”分布的线性组合。所以伽马本身并没有改变表面,它改变了被考虑的假设的空间

因此,伽马值的增加,会导致高斯分布变窄。这是否像是说可以绘制的平面上的凹凸(如果以3d绘制)可以更窄以更好地拟合训练数据?或者在2D中,这就像说gamma定义了分隔数据的线的弯曲程度

我想我用前面的点回答高伽玛意味着你只考虑形式超平面< /P>

<v, x> - b = SUM_i alpha_i K_gamma(x_i, x) - b
现在,在所有这些函数的空间中,我可以通过简单地建立方程的超平面,很容易地线性地将由奇数x创建的函数与其他函数分开

<v, x> = SUM_[v_odd] <f_[v_odd](y), f_x(y)> = INTEGRAL (f_v * f_x) (y) dy
=求和[v_奇数]=积分(f_v*f_x)(y)dy
如果x是奇数,这等于1,因为只有这个积分是非零的。显然,我只是使用有限数量的训练点(这里v_奇数),但表示本身是无限维的。这些额外的“信息”来自哪里?根据我的假设——我定义映射的方式在我考虑的空间中引入了一种特殊的结构。与RBF类似,你得到了无限维,但这并不意味着你实际上在考虑每一个连续函数,你将自己局限于以训练点为中心的高斯函数的线性组合。类似地,您可以使用正弦内核,它将您限制为正弦函数的组合。选择一个特定的“最佳”内核是另一回事,很复杂而且没有明确的答案。希望这有点帮助

(那么rbf是正确的选择?)

视情况而定。RBF是一种非常简单、通用的核函数,可以使用,但还有几十种。以pykernels中包含的代码为例

当SVM被训练时,它将绘制一个超平面(我认为它类似于3d中的一个平面,但有更多的维度?)

让我们避免一些奇怪的困惑。这里什么都没有。SVM将寻找由
v
(法向量)和
b
(偏差,距原点的距离)定义的d维超平面,这是一组简单的点
x
,使得
=b
。在二维超平面中为直线,在三维超平面中为平面,在d+1维中为三维对象,始终比空间低一维(直线为1D,平面为2D)

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

现在这是一个
<v, x> = SUM_[v_odd] <f_[v_odd](y), f_x(y)> = INTEGRAL (f_v * f_x) (y) dy