支持向量机理解

Posted

技术标签:

【中文标题】支持向量机理解【英文标题】:Support Vector Machines understanding 【发布时间】:2016-01-13 19:24:48 【问题描述】:

最近,我一直在阅读讲座和课文,并试图了解 SVM 是如何在更高维空间中工作的。

在普通逻辑回归中,我们按原样使用特征..但在 SVM 中,我们使用映射来帮助我们获得非线性决策边界。

通常我们直接使用特征..但是在内核技巧的帮助下,我们可以使用特征的平方找到数据中的关系..它们之间的乘积等等..这是正确的?? p>

我们在内核的帮助下做到这一点。

现在..我知道多项式内核对应于已知特征向量..但我无法理解 高斯内核对应于什么(我被告知一个无限维特征向量..但是什么?)

另外,我无法理解内核是衡量训练示例之间相似性的概念..这是 SVM 工作的一部分吗?

我花了很多时间试图理解这些..但徒劳无功。任何帮助将不胜感激!

提前致谢:)

【问题讨论】:

kernel 只是一个操作,必须满足一些预定义的属性(我就不一一列举了,大家自己找)。在线性情况下内核 - 点积,在非线性情况下,它被(比方说)高斯内核取代。点积在某种意义上也是相似度的度量,因为如果两个向量之间的角度减小,你会得到更大的点积结果。 为什么我们在使用 svm 时需要相似性度量。据我了解。使用内核,我们可以通过使用更高维度的特征向量来找到非线性决策边界。 相似度是距离的倒数。对于线性情况,距离函数是简单的毕达哥拉斯距离,通过线性向量运算实现。 “内核技巧”应用了非线性距离函数。另一种思考方式是内核技巧搜索距离度量,该度量将空间转换为分离超平面线性的位置。 一种方法是在空间中添加一个维度,然后搜索一个函数,它将所有“加”点放在这个新维度的正侧,所有“减”点在负侧。高斯过程特别擅长寻找处理这种搜索的函数。 【参考方案1】:

通常我们直接使用特征..但是在内核技巧的帮助下,我们可以使用特征的平方找到数据中的关系..它们之间的乘积等..这是正确的吗?

即使使用内核您仍然使用功能,您可以简单地利用更复杂的这些功能的关系。例如在您的示例中-多项式内核使您可以访问特征之间的低次多项式关系(例如正方形或特征的乘积)。

现在..我知道多项式内核对应于已知特征向量..但我无法理解高斯内核对应于什么(我被告知无限维特征向量..但是什么?)

高斯核将您的特征向量映射到非归一化高斯概率密度函数。换句话说,您将每个点映射到 函数 的空间中,您的点现在是一个以该点为中心的高斯(方差对应于高斯的超参数 gamma核心)。内核始终是向量之间的点积。特别是,在函数空间 L2 中,我们将经典的点积定义为对积的积分,所以

<f,g> = integral (f*g) (x) dx

其中f,g 是高斯分布。

幸运的是,对于两个高斯密度,它们的乘积的积分也是一个高斯,这就是为什么高斯核与高斯分布的 pdf 函数如此相似的原因。

另外,我无法理解内核是衡量训练示例之间相似性的概念。这是 SVM 工作的一部分吗?

如前所述,内核是一个点积,点积可以看作是相似度的度量(当两个向量具有相同方向时最大化)。但是反过来就不行,你不能将每个相似性度量都用作内核,因为并非每个相似性度量都是有效的点积。

【讨论】:

所以我们可以利用原始属性之间的复杂关系。这如何转化为高斯内核..如果我理解正确,当应用于 2 个向量时,内核会给出相似度的度量..如何这对分类任务有帮助吗? 有助于建立复杂的决策边界。 SVM是一个线性模型,它只能表达线性依赖,所以决策边界是一个超平面。使用多项式内核,您可以在诱导空间中获得超平面,这可以转化为输入空间中更复杂的决策形状。最后, rbf 导致函数空间中的超平面给你一个决策边界,它是高斯的线性组合(非常非线性)【参考方案2】:

在我开始回答这个问题之前,先简单介绍一下 svm。这将帮助您获得有关 svm 的概述。 Svm 的任务是找到最好的分离数据的最佳边距最大化超平面。我们有 svm 的软边距表示,也称为原始形式,其等效形式是 svm 的对偶形式。支持向量机的对偶形式利用了内核技巧。

内核技巧正在部分替代特征工程,这是机器学习中最重要的一步,当我们拥有非线性数据集(例如同心圆形状的数据集)时。

现在您可以通过 FE 和内核技巧将此数据集从非线性转换为线性。通过 FE,您可以对该数据集中的每个特征进行平方,并将其转换为线性数据集,然后您可以应用最适合线性数据的逻辑回归等技术。

在内核技巧中,您可以使用一般形式为 (a + x_i(transpose)x_j)^d 的多项式内核,其中 a 和 d 是常数,d 指定度数,假设度数为 2,那么我们可以这样说是二次的,同样。现在假设我们应用 d =2 现在我们的方程变为 (a + x_i(transpose)x_j)^2。让我们原始数据集中的 2 个特征(例如,对于 x_1 向量是 [x_11,x__12] 和 x_2 向量是 [x_21,x_22])现在当我们对其应用多项式内核时,我们得到 6 维向量。现在我们已经将特征从 2-d 转换为 6-d。现在您可以直观地看到更高维度的数据更好地支持 svm,因为它最终会将特征转换到更高的空间。事实上,最好的 svm 情况是,如果你有高维,那就去 svm。

现在您可以看到核技巧和特征工程解决并转换数据集(同心圆之一),但不同之处在于我们显式地执行 FE,但核技巧隐含地使用 svm。还有一个通用内核称为径向基函数内核,当您事先不知道内核时可以使用它。 RBF内核有一个参数(sigma),如果sigma的值设置为1,那么你会得到一个看起来像高斯曲线的曲线。

您可以仅将内核视为相似性度量,并且可以解释如果点之间的距离越小,则相似性越高。

【讨论】:

以上是关于支持向量机理解的主要内容,如果未能解决你的问题,请参考以下文章

大脑中的支持向量机

统计学习笔记之支持向量机

学习大脑中的支持向量机

直观详解支持向量机SVM

机器学习:支持向量机

支持向量机之SMO-------7