径向基函数在支持向量机中的工作原理说明

我很难完全理解在使用径向基函数(RBF)时支持向量机(SVM)是如何工作的。我的数学知识还可以,但到目前为止我遇到的所有解释对我来说都太简略了。我目前的理解如下。假设我使用SVM作为二元分类器来处理一个非线性可分的数据集(所以RBF是正确的选择吗?)。当SVM被训练时,它会绘制一个最佳分离数据的超平面(我认为这就像3D中的平面,但有更多维度?)。

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

从这里开始我开始真正感到困惑..

所以,gamma值的增加会导致一个更窄的高斯分布。这是否意味着如果在3D中绘制,允许平面上的凸起变得更窄以更好地拟合训练数据?或者在2D中,这是否意味着gamma定义了分隔数据的线可以有多弯曲?

我还非常困惑于如何从有限数量的特征中得到无限维度的表示?任何好的类比都会对我有很大帮助。


回答:

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

这取决于情况。RBF是一个非常简单、通用的核函数,可能会被使用,但还有其他几十种。例如,可以看看pykernels中包含的那些 https://github.com/gmum/pykernels

当SVM被训练时,它会绘制一个最佳分离数据的超平面(我认为这就像3D中的平面,但有更多维度?)。

让我们避免一些奇怪的混淆。这里没有任何东西被绘制。SVM会寻找由v(法向量)和b(偏置,原点距离)定义的d维超平面,这只是满足<v, x> = b的一组点。在2D中,超平面是一条线,在3D中,超平面是一个平面,在d+1维中,它是一个d维对象,总是比空间低一维(线是1D,平面是2D)。

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

现在这是一个常见的错误。决策边界不是超平面。决策边界是超平面在输入空间上的投影。你无法观察到实际的超平面,因为它通常是非常高维的。你可以将这个超平面表示为一个函数方程,但仅此而已。另一方面,决策边界“存在”于你的输入空间中,如果输入是低维的,你甚至可以绘制这个对象。但这不是超平面,它只是超平面与你的输入空间相交的方式。这就是为什么即使超平面总是线性和连续的,决策边界往往是弯曲的甚至是不连续的——因为你只是看到了它的一个非线性部分。现在gamma在做什么?RBF核函数导致在连续函数空间中进行优化。这些函数有很多(这些对象有一个连续体)。然而,SVM只能表达这些函数的一小部分——训练点上核值的线性组合。固定特定的gamma会限制考虑的函数集——gamma越大,核函数越窄,因此考虑的函数由这种“尖锐”分布的线性组合构成。所以gamma本身并不改变表面,它改变了考虑的假设空间。

所以,gamma值的增加会导致一个更窄的高斯分布。这是否意味着如果在3D中绘制,允许平面上的凸起变得更窄以更好地拟合训练数据?或者在2D中,这是否意味着gamma定义了分隔数据的线可以有多弯曲?

我想我已经在前面的点中回答了——高gamma意味着你只考虑形式为

<v, x> - b = SUM_i alpha_i K_gamma(x_i, x) - b

的超平面,其中K_gamma(x_i, x) = exp(-gamma ||x_i-x||^2),因此你会得到非常“尖锐”的基元素。这将导致对训练数据的非常紧密的拟合。决策边界的确切形状很难估计,因为这取决于训练过程中选择的最优拉格朗日乘数alpha_i

我还非常困惑于如何从有限数量的特征中得到无限维度的表示?任何好的类比都会对我有很大帮助。

“无限表示”来自于这样一个事实,为了处理向量和超平面,你的每个点实际上都被映射到一个连续函数。所以SVM在内部实际上不再处理d维点,而是处理函数。考虑2D情况,你有点[0,0]和[1,1]。这是一个简单的2D问题。当你在这里应用带有RBF核的SVM时——你将改为处理以[0, 0]和[1,1]为中心的未归一化的高斯分布。每个这样的高斯分布都是从R^2到R的函数,表示其概率密度函数(pdf)。这有点令人困惑,因为核函数看起来也像高斯分布,但这是因为两个函数的点积通常被定义为它们乘积的积分,而两个高斯分布的乘积的积分是…也是一个高斯分布!那么这个无限在哪里呢?记住你应该处理向量。如何将一个函数写成向量?你必须列出它的所有值,因此如果你有一个函数f(x) = 1/sqrt(2*pi(sigma^2) exp(-||x-m||^2 / (2*sigma^2)),你将不得不列出无限数量的这样的值来完全定义它。这就是无限维度的概念——你将点映射到函数,函数在向量空间中是无限维的,因此你的表示是无限维的。

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

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

现在,在所有这样的函数空间中,我可以通过简单地构建方程为

<v, x> = SUM_[v_odd] <f_[v_odd](y), f_x(y)> = INTEGRAL (f_v * f_x) (y) dy

的超平面,轻松地线性分离由奇数x创建的函数与其他函数。这将等于1当且仅当x是奇数,因为只有这个积分是非零的。显然我只是使用了有限数量的训练点(这里的v_odd),但表示本身是无限维的。这额外的“信息”从哪里来?来自我的假设——我定义的映射在所考虑的空间中引入了特定的结构。同样地,RBF给你无限维度,但这并不意味着你实际上考虑了每个连续函数——你限制自己为以训练点为中心的高斯分布的线性组合。同样,你可以使用正弦核函数,这将你限制为正弦函数的组合。选择特定的、最佳的核函数是另一个复杂且没有明确答案的故事。希望这对你有所帮助。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注