胜博国际_胜博国际从大间隔分类器到核函数:全面理解支持向量机

中国围棋网2017年10月11日 09时10分28秒
62

原标题:从大间隔分类器到核函数:全面理解支持向量机

在这篇文章中,我们希望读者能对支持向量机(SVM)的工作方式有更高层次的理解。因此本文将更专注于培养直觉理解而不是严密的数学证明,这意味着我们会尽可能跳过数学细节而建立其工作方式的直观理解。

自从 Statsbot 团队发表了关于(时间序列的异常检测(time series anomaly detection)的文章之后,很多读者要求我们介绍支持向量机方法。因此 Statsbot 团队将在不使用高深数学的前提下向各位读者介绍 SVM,并分享有用的程序库和资源。

如果你曾经使用机器学习执行分类任务,应该会听说支持向量机(SVM)。这个算法的历史已经有五十出头,它们随着时间不断在进化,并适应于各种其它问题比如回归、离群值分析和排序等。

在很多深度学习开发者的模型储备中,SVM 都是他们的至爱。在 [24]7(https://www.247-inc.com/),我们也将使用它们解决多个问题。

我将更专注于培养直觉理解而不是严密的数学推导,这意味着我们会尽可能跳过数学细节而建立其工作方式的理论的直观理解。

分类问题

假设你们的大学开设了一项机器学习课程,课程的讲师发现那些擅长数学或者统计学的学生往往表现的最好。课程结束之后,老师们记录了注册课程的学生的分数,他们对每一个学生根据其在机器学习课程上的表现加上了一个标签:「好」或者「坏」。

现在,老师们想要确定数学和统计学的得分与机器学习课程表现的关系。或许,根据他们的统计结果,他们会在学生注册课程时加上一个前提条件限制。

他们会怎么做呢?首先把他们的数据表示出来,我们可以画一个二维图,一个坐标轴表示数学成绩,另一个表示统计学成绩。每个学生的具体成绩作为一个点在图中表示。

点的颜色(绿色或者红色)表示学生在机器学习课程中的表现:「好」或者「坏」。将图画出来的话应该是这样的:




当一个学生要求注册课程的时候,讲师将会要求她提供数学和统计学的成绩。根据他们已有的数据,他们将对她在机器学习课程上的表现作出合理的猜测。我们真正想要的是一类以形式(math_score,stats_score)馈送到「分数元组」的算法。这个算法能告诉你一个学生在图中是以一个红点还是一个绿点表示(红/绿可理解为类别或者标签)。当然,这个算法已经以某种方式包含了训练数据的特征。

在这个案例中,一个好的算法将能寻找在红色和绿色群集之间的分界线(即决策边界),然后确定一个分数多元组将依赖于哪一侧。我们选择绿色方或者红色方的其中一侧作为他在这项课程中最可能的表现水平标签。




这条线称为决策边界(因为它将不同标记的群集分离开来)或者分类器(我们用它来将点集分类)。图中展示了这个问题中可能的两个分类器。

好分类器和坏分类器

有一个很有趣的问题:以上两条线都将红色和绿色的点群集分离开来。有什么合理依据能让我们选择其中一个而舍弃另一个吗?

要注意一个分类器的价值并不在于它能将训练数据分离的多好。我们最终是希望它能将尚未见过的数据分离(即测试数据)。因此我们需要选择能捕捉训练数据的普遍模式的那条线,而这条线更可能在测试数据中表现的更好。

以上所示的第一条线看起来有些许偏差,其下半部分看起来过于接近红点群集,其上半部分过于接近绿点群集。当然它确实很完美的将训练数据分离开来,但是如果在测试数据中遇到了有一个点离群集稍远的情况,它很有可能会将其加上错误的标记。

而第二的点就没有这样的问题。例如,下图为两个分类器分离方块点群集的结果展示。




第二条线在正确分离训练数据的同时也尽可能的远离两个群集,即采取最大间隔的策略。处于两个群集的正中间位置能降低犯错的风险,可以说,这给了每一个类的数据分布更多的浮动空间,因此它能更好的泛化到测试数据中。

SVM 就是试图寻找第二类决策边界的算法。上文我们只是通过目测选择更好的分类器,但实际上为了在一般案例中应用,我们需要将其隐含原理定义地更加精确。以下将简要说明 SVM 是如何工作的:

1. 寻找能准确分离训练数据的决策边界;

2. 在所有这些决策边界中选择能最大化与最近邻点的距离的决策边界。

那些定义了这条决策边界的最近邻点被称作支持向量。而决策边界周围的区域被定义为间隔。下图展示了支持向量和对应的第二条决策边界:黑色边界的点(有两个)和间隔(阴影区域)。




支持向量机提供了一个方法在多个分类器中寻找能更准确分离测试数据的分类器。虽然上图中的决策边界和数据是处于二维空间的,但是必须注意 SVM 实际上能在任何维度的数据中工作,在这些维度中,它们寻找的是和二维空间决策边界类似的结构。

比如,在三维空间中它们寻找的是一个分离面(后面将简要提到),在更高维空间中它们寻找的是一个分离超平面,即将二维决策边界和三维分离面推广到任意维度的结构。一个可以被决策边界(或者在普遍意义上,一个分离超平面)被称作线性可分数据。分离超平面被称作线性分类器。

容错性和软间隔分类器

我们在上一节看到的是一个线性可分数据的简单例子,但现实中的数据通常是很凌乱的。你也很可能经常遇到一些不能正确线性分类的例子。这里展示了一个这样的例子:




很显然,使用一个线性分类器通常都无法完美的将标签分离,但我们也不想将其完全抛弃不用,毕竟除了几个错点它基本上能很好的解决问题。那么 SVM 会如何处理这个问题呢?SVM 允许你明确规定允许多少个错点出现。你可以在 SVM 中设定一个参数「C」;从而你可以在两种结果中权衡:

1. 拥有很宽的间隔;

2. 精确分离训练数据;

C 的值越大,意味着在训练数据中允许的误差越少。

必需强调一下这是一个权衡的过程。如果想要更好地分类训练数据,那么代价就是间隔会更宽。以下几个图展示了在不同的 C 值中分类器和间隔的变化(未显示支持向量)。




标签:胜博国际,胜博国际官网,胜博国际娱乐

本文链接:http://www.weiqi.cc/developer/116647.html 转载请注明出处