解释径向基函数在支持向量机中的工作原理
Explanation of how a radial basis function works in support vector machines
我在使用 RBF 时无法准确理解 SVM 的工作原理。我的数学知识还可以,但到目前为止,我遇到的每一个解释对我来说都太简洁了。我目前的理解如下。假设我将 SVM 用作不可线性分离的数据集的二元分类器(所以 rbf 是正确的选择吗?)。当 SVM 被训练时,它会绘制一个超平面(我认为它就像一个 3d 平面但具有更多维度?),它最好地分离数据。
调整时,改变伽马值会改变超平面(也称为决策边界?)的表面。
这是我开始感到困惑的地方..
因此,增加伽玛值会导致更窄的高斯分布。这是否就像说可以绘制的平面上的颠簸(如果以 3d 绘制)允许更窄以更好地适应训练数据?或者在 2D 中,这就像是说伽玛定义了分隔数据的线的弯曲程度?
我也很困惑,这怎么能从有限数量的特征中得到无限维度的表示?任何好的类比都会对我有很大帮助。
(so an rbf is the correct choice?)
视情况而定。 RBF 是非常简单的通用内核,可能会用到,但还有许多其他内核。看看 pykernels https://github.com/gmum/pykernels
中包含的示例
When the SVM is trained it will plot a hyperplane(which I think is like a plane in 3d but with more dimensions?) that best separates the data.
让我们避免一些奇怪的混淆。这里没有 绘制。 SVM 将寻找由 v
(法向量)和 b
(偏差,距原点的距离)定义的 d 维超平面,它只是一组点 x
使得 <v, x> = b
.在2D超平面中是一条线,在3D超平面中是平面,在d+1维是d维物体,总是比space低一维(线是1D,平面是2D)。
When tuning, changing the value of gamma changes the surface of the of the hyperplane (also called the decision boundary?).
这是一个经常犯的错误。决策边界 不是 超平面。决策边界是超平面在输入 space 上的投影。您无法观察到实际的超平面,因为它通常具有很高的维度。您可以将这个超平面表示为一个函数方程,但仅此而已。另一方面,决策边界 "lives" 在你的输入 space 中,如果输入是低维的,你甚至可以绘制这个对象。但这不是一个超平面,它只是这个超平面与你的输入相交的方式space。这就是为什么决策边界通常是弯曲的甚至是不连续的,即使超平面总是线性和连续的——因为你只是看到它的非线性部分。现在 gamma
在做什么? RBF 内核导致 space 中 连续函数 的优化。这些有很多(此类对象是连续的)。然而,SVM 只能表达这些家伙的一小部分——训练点中内核值的线性组合。修复特定的伽玛限制要考虑的函数集——伽玛越大,内核越窄,因此被考虑的函数由这种 "spiky" 分布的线性组合组成。所以 gamma 本身不会改变表面,它会改变 space 所考虑的假设。
So an increase in the value of gamma, results in a Gaussian which is narrower. Is this like saying that the bumps on the plane (if plotted in 3d) that can be plotted are allowed to be narrower to fit the training data better? Or in 2D is this like saying gamma defines how bendy the line that separtates the data can be?
我想我已经回答了之前的观点 - 高伽玛意味着你只考虑形式的超平面
<v, x> - b = SUM_i alpha_i K_gamma(x_i, x) - b
其中 K_gamma(x_i, x) = exp(-gamma ||x_i-x||^2)
,因此您将获得非常 "spiky" 的基础元素。这将导致非常适合您的训练数据。决策边界的确切形状很难估计,因为这取决于训练期间选择的最佳拉格朗日乘数 alpha_i
。
I'm also very confused about about how this can lead to an infinite dimensional representation from a finite number of features? Any good analogies would help me greatly.
"infinite representation" 源于这样一个事实,即为了使用向量和超平面,您的每个点实际上都映射到 连续函数 。因此,SVM 在内部不再真正处理 d 维点,而是处理函数。考虑 2d 情况,你有点 [0,0] 和 [1,1]。这是一个简单的二维问题。当您在此处应用带有 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))
你将不得不列出 无限数量 这样的值来完整定义它。这就是无限维的概念——你将点映射到函数,函数在向量 spaces 方面是无限维的,因此你的表示是无限维的。
一个很好的例子可能是不同的映射。考虑数字 1、2、3、4、5、6、7、8、9、10 的一维数据集。让奇数与偶数分配不同的标签。你不能将这些人线性分开。但是您可以将每个点(数字)映射到一种特征函数,形式为
的函数
f_x(y) = 1 iff x e [y-0.5, y+0.5]
现在,在 space 的所有此类函数中,我可以通过简单地构建方程的超平面
轻松地将由奇数 x 创建的函数与其余函数线性分开
<v, x> = SUM_[v_odd] <f_[v_odd](y), f_x(y)> = INTEGRAL (f_v * f_x) (y) dy
这将等于 1 当且仅当 x 是奇数,因为只有这个积分是非零的。显然,我只是使用了有限数量的训练点(此处为 v_odd),但表示本身是无限维的。这个额外的 "information" 来自哪里?根据我的假设 - 我定义映射的方式在我正在考虑的 space 中引入了一个特定的结构。与 RBF 类似 - 你得到无限维度,但这并不意味着你实际上正在考虑每个连续函数 - 你将自己限制在以训练点为中心的高斯线性组合。类似地,您可以使用正弦内核,它限制您只能使用正弦函数的组合。选择一个特定的 "best" 内核是另一回事,复杂且没有明确的答案。希望这能有所帮助。
我在使用 RBF 时无法准确理解 SVM 的工作原理。我的数学知识还可以,但到目前为止,我遇到的每一个解释对我来说都太简洁了。我目前的理解如下。假设我将 SVM 用作不可线性分离的数据集的二元分类器(所以 rbf 是正确的选择吗?)。当 SVM 被训练时,它会绘制一个超平面(我认为它就像一个 3d 平面但具有更多维度?),它最好地分离数据。
调整时,改变伽马值会改变超平面(也称为决策边界?)的表面。
这是我开始感到困惑的地方..
因此,增加伽玛值会导致更窄的高斯分布。这是否就像说可以绘制的平面上的颠簸(如果以 3d 绘制)允许更窄以更好地适应训练数据?或者在 2D 中,这就像是说伽玛定义了分隔数据的线的弯曲程度?
我也很困惑,这怎么能从有限数量的特征中得到无限维度的表示?任何好的类比都会对我有很大帮助。
(so an rbf is the correct choice?)
视情况而定。 RBF 是非常简单的通用内核,可能会用到,但还有许多其他内核。看看 pykernels https://github.com/gmum/pykernels
中包含的示例When the SVM is trained it will plot a hyperplane(which I think is like a plane in 3d but with more dimensions?) that best separates the data.
让我们避免一些奇怪的混淆。这里没有 绘制。 SVM 将寻找由 v
(法向量)和 b
(偏差,距原点的距离)定义的 d 维超平面,它只是一组点 x
使得 <v, x> = b
.在2D超平面中是一条线,在3D超平面中是平面,在d+1维是d维物体,总是比space低一维(线是1D,平面是2D)。
When tuning, changing the value of gamma changes the surface of the of the hyperplane (also called the decision boundary?).
这是一个经常犯的错误。决策边界 不是 超平面。决策边界是超平面在输入 space 上的投影。您无法观察到实际的超平面,因为它通常具有很高的维度。您可以将这个超平面表示为一个函数方程,但仅此而已。另一方面,决策边界 "lives" 在你的输入 space 中,如果输入是低维的,你甚至可以绘制这个对象。但这不是一个超平面,它只是这个超平面与你的输入相交的方式space。这就是为什么决策边界通常是弯曲的甚至是不连续的,即使超平面总是线性和连续的——因为你只是看到它的非线性部分。现在 gamma
在做什么? RBF 内核导致 space 中 连续函数 的优化。这些有很多(此类对象是连续的)。然而,SVM 只能表达这些家伙的一小部分——训练点中内核值的线性组合。修复特定的伽玛限制要考虑的函数集——伽玛越大,内核越窄,因此被考虑的函数由这种 "spiky" 分布的线性组合组成。所以 gamma 本身不会改变表面,它会改变 space 所考虑的假设。
So an increase in the value of gamma, results in a Gaussian which is narrower. Is this like saying that the bumps on the plane (if plotted in 3d) that can be plotted are allowed to be narrower to fit the training data better? Or in 2D is this like saying gamma defines how bendy the line that separtates the data can be?
我想我已经回答了之前的观点 - 高伽玛意味着你只考虑形式的超平面
<v, x> - b = SUM_i alpha_i K_gamma(x_i, x) - b
其中 K_gamma(x_i, x) = exp(-gamma ||x_i-x||^2)
,因此您将获得非常 "spiky" 的基础元素。这将导致非常适合您的训练数据。决策边界的确切形状很难估计,因为这取决于训练期间选择的最佳拉格朗日乘数 alpha_i
。
I'm also very confused about about how this can lead to an infinite dimensional representation from a finite number of features? Any good analogies would help me greatly.
"infinite representation" 源于这样一个事实,即为了使用向量和超平面,您的每个点实际上都映射到 连续函数 。因此,SVM 在内部不再真正处理 d 维点,而是处理函数。考虑 2d 情况,你有点 [0,0] 和 [1,1]。这是一个简单的二维问题。当您在此处应用带有 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))
你将不得不列出 无限数量 这样的值来完整定义它。这就是无限维的概念——你将点映射到函数,函数在向量 spaces 方面是无限维的,因此你的表示是无限维的。
一个很好的例子可能是不同的映射。考虑数字 1、2、3、4、5、6、7、8、9、10 的一维数据集。让奇数与偶数分配不同的标签。你不能将这些人线性分开。但是您可以将每个点(数字)映射到一种特征函数,形式为
的函数f_x(y) = 1 iff x e [y-0.5, y+0.5]
现在,在 space 的所有此类函数中,我可以通过简单地构建方程的超平面
轻松地将由奇数 x 创建的函数与其余函数线性分开<v, x> = SUM_[v_odd] <f_[v_odd](y), f_x(y)> = INTEGRAL (f_v * f_x) (y) dy
这将等于 1 当且仅当 x 是奇数,因为只有这个积分是非零的。显然,我只是使用了有限数量的训练点(此处为 v_odd),但表示本身是无限维的。这个额外的 "information" 来自哪里?根据我的假设 - 我定义映射的方式在我正在考虑的 space 中引入了一个特定的结构。与 RBF 类似 - 你得到无限维度,但这并不意味着你实际上正在考虑每个连续函数 - 你将自己限制在以训练点为中心的高斯线性组合。类似地,您可以使用正弦内核,它限制您只能使用正弦函数的组合。选择一个特定的 "best" 内核是另一回事,复杂且没有明确的答案。希望这能有所帮助。