机器学习笔记2:支持向量机原理基础

本菜鸟最近打算开始学习机器学习的常用算法了,毕竟写博客也是较好的学习手段,机器学习的基础概念基础概念主要在笔记1中谈到。本篇主要谈谈支持向量机的原理基础。
本篇图文主要参考(搬运)周志华教授的《机器学习》第六章。
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。其实就是希望建立某种分类的方法,同时遇到问题时相对容易求解。

1.什么是支持向量

刚开始学习支持向量机的朋友肯定会问什么支持向量机,因而我们先弄清楚什么是支持向量吧。以下的描述我们将基于支持向量机(SVM)基本型。
设训练集D={(x1,y1),(x2,y2),⋯,(xm,ym)},其中yi∈{−1,+1},yi为标签,共有+1与-1两类。
为了实现分类,我们希望将训练样本集通过一个超平面分为两类。
下图中的红线便是二维视角下的超平面:
在这里插入图片描述
通过观察,我们不难发现,这样的超平面并不唯一,如下图所示:
在这里插入图片描述
所以,既然有多种选择我们希望从中选择“最好的”。直观来看便是中间的那个超平面,而不是其他的。事实上这种直觉是是正确的,直观上看其距两侧两类距离最远,选择中间这一超平面“泛化能力”最好,也就是说这一模型在对新加入的样本进行分类时出错的可能较小。
设超平面方程为:
在这里插入图片描述
w为法向量,b为偏移量,这是一种较为规范的写法,翻译成常见的式子就是:
在这里插入图片描述
也就是说:
在这里插入图片描述在这里插入图片描述
若上式将=0改为>0则表示标签为+1的样本所处的范围,若<0则为标签为-1的样本所处的范围。
为后续数学过程的便利,所以令
在这里插入图片描述
其中当两个不等式取等时,能够得到两个与我们选择的超平面平行的两个平面,如下图所示:
在这里插入图片描述
这两个平面均恰好经过一些样本点,我们将这些样本点用向量表示在这里插入图片描述
这些向量即被称为支持向量,事实上训练形成的最终模型仅与支持向量有关,原因我们后面会提到。

2.支持向量机(SVM)基本型的模型

我们已经明白了什么是支持向量接下里,我们首先引入间隔的概念,其图形如下图所示。
在这里插入图片描述
我们希望得到一个较好的模型即希望通过一超平面将样本划分后两类可以明显的分开,那么我们希望通过两侧支持向量的两个平面间距离最大,即希望间隔:
在这里插入图片描述
能够最大,这也就是我们判断我们选择超平面的一个定量依据。因而我们将其作为目标函数。
同时我们的模型应当不存在错分,若分类正确,标签为+1时,上面写出的不等式>=1,其乘积>=1,标签为-1时,上面写出的不等式<=-1,其乘积也>=1,可以得到一个约束条件:在这里插入图片描述
最终得到支持向量机(SVM)基本型的模型:
在这里插入图片描述
为了后续的一些计算过程的便利,我们通常将其转化为:
在这里插入图片描述

3.模型求解

我们得到了模型,一个问题产生了,如何对该模型进行求解?这时候就不可避免的要引入一些数学过程(这部分感觉写不好,如果数学有困难的朋友可略过,看结果)。
我们已经得到规划模型:
在这里插入图片描述
我们的目标是要得到超平面所对应的模型:
在这里插入图片描述
我们已经可以采用一些求解规划问题的工具进行求解,但为简化计算,可用拉格朗日乘子法得到其对偶问题。
主要采取以下三步:
第一步:引入拉格朗日乘子得到拉格朗日函数
对其约束条件添加拉格朗日乘子:
在这里插入图片描述
可得拉格朗日函数在这里插入图片描述
第二步:对其做偏导
由对w和b偏导为零可得,
在这里插入图片描述
第三步:回代
在这里插入图片描述
解出w和b可得最终模型:
在这里插入图片描述
由其需满足KKT条件可知:
在这里插入图片描述
当xi不为支持向量时有
在这里插入图片描述
即可得到
在这里插入图片描述
因而仅有为支持向量的项不为0在最终模型中保留,因而我们不难发现支持向量机解的稀疏性,训练完成后, 大部分的训练样本都不需保留, 最终模型仅与支持向量有关。
模型通过SMO算法可得出具体参数。

4.核函数:进一步一般化我们的问题

此前为了简化问题我们将问题看成总是线性可分的,就像只需画一条线表示超平面即可将样本分开,事实上,现实往往不这么理想。我们往往会遇到下面这种情况:

在这里插入图片描述
看上去按照此前的方法问题变得无解了,这个时候我们需要在一个高维的特征空间解决这一问题。
在这里插入图片描述
那么我们需要将原先空间的向量进行变换即
在这里插入图片描述
这个时候我们便可以继续采用先前的结论将其带入可得
在这里插入图片描述
通过和此前一致的求解过程可得:
在这里插入图片描述
我们可以设
在这里插入图片描述
k即为核函数。
通过经验我们得到了一些常用的核函数如下表所示。
在这里插入图片描述

5.容错机制

为了解决线性不可分的问题我们引进了核函数的概念,但是实际操作过程中核函数很难找,特别是完全符合要求的核函数难以找到,因而我们需允许对训练集分类的过程中存在一定的错误,如下图所示:
在这里插入图片描述
因而我们需引入软间隔的概念,其与之前采用的硬间隔的最大的区别即允许存在误分,我们需要对原先的模型进行修改。
首先我们将目标函数改为
在这里插入图片描述
l0/1为0/1损失函数,即
在这里插入图片描述
但其不具备良好的数学性质(非凸、非连续, 不易优化),因而我们通常选择其他的损失函数进行替代,替代损失函数数学性质较好, 一般是0/1损失函数的上界。经过hinge损失函数替代后我们得到:
在这里插入图片描述
我们可选择引入松弛变量代表损失函数,简化式子。
最终在取对偶问题后,可得

在这里插入图片描述

6.正则化

通过上述过程我们能够得到支持向量机模型更一般的形式即进行正则化。
在这里插入图片描述
其中我们将第一项称为“结构风险”,第二项称为“经验风险”。

发布了8 篇原创文章 · 获赞 18 · 访问量 2520

猜你喜欢

转载自blog.csdn.net/qq_19869749/article/details/103291435