移动学习网 导航

西瓜书第六章支持向量机(6.1-6.2)

2024-05-07m.verywind.com
~

支持向量机(SVM),全称是support vector machine,简单来说,它是一种二类分类器,基本模型就是在特征空间上寻找间隔最大的线性分类器,基于这个模型我们更改核函数就可以把它应用于非线性问题之中,首先我们看他的定义,什么是“在特征空间中寻找间隔最大的线性分类器”?首先我们应该知道什么是线性分类器,详情见上一篇博文,其中描述的logistic regression 便是我们的基础,假设SVM是一个二分类器,那么显而易见,我们需要将输出结果转换为两种类别。下面举一个简单的例子

圆圈与叉叉分别表示两种不同的种类,显而易见,我们可以通过logistic regression来拟合一条直线分类这两种不同的类别,拟合之后他大概长这个样子。

因为w*x+b输出的是一个连续值,比如说0.8,1.5,需要将他同1,-1,0比较,上图中最左边那条虚线表示的是通过了最近的一个反例,同理最右边那条虚线表示的是通过了最近的一个正例,这些被边缘线通过的点被叫做支持向量,他们是最重要的,哪怕不要其他点。因为他们规定了正例以及反例的边缘。

我们再重新看一遍关于SVM的定义,目的是取得间隔最大化的学习器,当超平面距离数据点越远时候,分类的确信度也越大,为了让确信度足够高我们应该让所选择的超平面最大化这个“间隔”值,两个经过异类支持向量点的超平面之间距离为2/||w||,就是我们需要最大化的间隔。如下图所示

我们的超平面对数据进行正常分类那么必定存在下面的不等式,对于正例y=+1,我们的超平面需要将他预测为>=1的情况,如果y=-1那么我们的超平面需要将他预测为<=-1。

这是很容易理解的,当样例为正例时我们应该把他预测至少=1或者>1,反之也是成立的。那么问题现在就清楚了,我们应该在他满足正常分类的条件下,求得||w||的最小值,也就是我们想要最大化||w||^2

上式中w,b是模型参数,现在我们面临的是一个最优化问题,怎么求解呢?这是一个凸优化问题(y(x),h(x)是凸函数,并且h(x)为仿射函数),我们可以用现成的工具包来解,但是我们这里采用的是另一种解法,可以顺势引出核函数等。
这时候我们需要构造一个拉格朗日函数,拉格朗日函数就是将约束条件分别和拉格朗日乘子相乘,然后再与目标函数相加,这样我们的关系式就可以用一个方程标示出来了,但是我们面临一个问题,就是约束条件可能是等式,也可能是不等式,我们要分开考虑两种情况。

考虑一个简单的问题目标函数f(x) = x1 + x2,等式约束h(x)=x1^2 + x2^2 −2,求解极小值点。f(x)在二维平面上画出等高线(contour)就是一条条斜率相同的直线,h(x)=0在二维平面上画出等高线就是一个圆,如下图所示。可以明显的看出,在圆圈h(x)的限制下,直线f(x)的最小值为-2,在左下角直线x1+x2=2和圆的交点上。

我们从梯度方向考虑一下,如果不考虑限制条件的话,目标函数将会向他梯度的反方向移动,如下方深蓝色箭头。但是如果考虑限制的话我们只能取得圆圈上的值那么他只能向h(x)梯度正切方向移动,(注意h(x)函数是那个圆,梯度是指向圆外的),红粗线表示目标函数移动方向,细红线表示限制函数的梯度。

我们可以发现,在关键的极小值处,我们的目标函数和限制条件的梯度是在一条直线上的,可能是同向的也可能是反向的,在极小值点有如下情况

也就是说,我们对于f(x)以及h(x)来说当满足上面的式子时候,就是目标函数和限制条件在同一条直线时候,并且此时的h(x)=0(因为是在圆上)时候解得的x就是我们需要的极值点,为了做到上面这个条件,我们构造一个拉格朗日函数,对函数令偏导数为0求解,这时候恰好等价于“满足上面那个式子,并且h(x)=0”,那么此时我们求解出来的x就是我们所需要的极值点,和就是拉格朗日乘子法。

上面我们提到的求||w||^2的最小值,限制条件是要求正确分类那些点,那么就可以转换成拉格朗日函数来求解。

其中第二张图片中的x就是我们需要求解的变量,也就是上面问题中的w,接下来我们就需要该函数分别对x和拉格朗日乘子分别求偏导数等于0,对x求偏导为0表示满足梯度在一条直线,对拉格朗日乘子求偏导为0表示h(x)=0,这样求解出来的x就是极值点。

在不等式约束中有两种情况我们需要讨论,这里需要注意以下,很多blog上面都没有写清楚为什么g(x)<0情况下约束条件是不起作用的,参阅了另外一篇博客时候发现了解释,最后写出参考的blog网址,在不等式约束g(x)<0情况下,我们将极值点情况分为两类,这是一种分类思想,将极值点分为在约束域中以及约束域外,首先我们来看极值点在约束域内的话是什么情况。

考虑目标函数f(x)=x1 2 +x2 2 ,不等值约束g(x)=x1 2 +x2 2 −1,显然f(x)的极小值为原点(0,0),落在可行域内。可行域以原点为圆心,半径为1。

考虑目标函数f(x)=(x1−1.1) 2 +(x2+1.1) 2 ,不等值约束g(x)=x1 2 +x2 2 −1,显然f(x)的极小值为原点(1.1, -1.1),落在可行域外。可行域以原点为圆心,半径为1。这种情况下我们的约束条件是有效的,因为极值点在约束域外,所以我们的取值不能取到全局的极值点,只能取到在约束域上的极小值。

我们可以总结一下不等式情况下有什么特点,我们可以发现,不管是极值点在约束域内亦或者是在约束域外,我们都会有这个关系

当极值点在约束域内的时候因为约束条件是没用的,所以我们应该让拉格朗日乘子等于0,如果极值点在约束域之外的时候存在g(x)=0。

上面哪个关系式子是我们将目标函数转换成为拉格朗日函数之后的一个限制条件,并且我们知道在不等式的两种情况下拉格朗日乘子都是>0的,同样的这也是拉格朗日函数的一个限制条件。如果在凸优化问题中这两个条件都满足那么我们求出来的极值点就是全局最小的极值点,如果不是凸优化问题那么上述条件只是必要条件不是充分条件,我们求解出来的可能不是全局极值点也可能是驻点。而我们上述的条件就是KKT条件

上述所有就是我们在求解SVM时候需要考虑的两个难点,过了这道坎之后SVM大概也完成了不到一半吧,后面还有一个SMO算法以及关于核函数的问题,任重而道远哦~



  • 西瓜书第六章支持向量机(6.1-6.2)
  • 答:支持向量机(SVM),全称是support vector machine,简单来说,它是一种二类分类器,基本模型就是在特征空间上寻找间隔最大的线性分类器,基于这个模型我们更改核函数就可以把它应用于非线性问题之中,首先我们看他的定义,什么...

  • 支持向量机(三)——线性支持向量机
  • 答:支持向量机(Support Vector Machine,SVM)是监督学习中非常经典的算法。笔者主要参考学习的是李航老师《统计学习方法(第二版)》[1]和周志华老师的西瓜书《机器学习》[2]。一方面,线性可分支持向量机只适用于线性可分的训练...

  • 学好西瓜书和花书没有它怎么行?
  • 答:深入理解其在优化和变换中的角色 2.6 二次型:理解其在机器学习中的几何意义 3.3 黑塞矩阵与最小二乘法:实战中的应用 4.6.5 支持向量机:理解其优化原理每个概念都以实例说明,...

  • 机器学习:几种常见的学习方法
  • 答:1、有准备的去听,也就是说听课前要先预习,找出不懂的知识、发现问题,带着知识点和问题去听课会有解惑的快乐,也更听得进去,容易掌握;2、参与交流和互动,不要只是把自己摆在“听”的旁观者,而是“听”的参与者,...

  • 机器学习,数据挖掘的书有哪些
  • 答:一方面,该书成书更晚,涵盖的机器学习方法也更广泛,决策树、神经网络、支持向量机、增强学习等大家常常听到的热点方法,书中都分章做了细致的介绍。另一方面,西瓜书涉及了不少数学公式,需要读者有一定的统计、代数数学基础...

  • 人工智能好学么?
  • 答:所以学习人工智能的的突破点就比较明确了,就是学好机器学习就行了。机器学习主要包括,神经网络计算、支持向量机、决策树、深度卷积神经网络、等。学习这些可以看周志华的西瓜书入门,在此之前、你需要现有一定的高等数学和矩阵...

  • 深度学习和普通机器学习之间有何区别
  • 答:1、普通机器学习一般指的是像决策树、逻辑回归、支持向量机、xgboost等 2、深度学习主要特点是使用深度神经网络:深度卷积网络、深度循环网络、递归网络等 区别的话:1、算法层面上没有任何相似的地方,硬要说相似可能就是大家...

  • 经典机器学习系列之【集成学习】
  • 答:  这种训练样本扰动的方法简单高效,但 只对不稳定的基学习器有效 ,像 决策树 、 神经网络 等;对于稳定的基学习器,如线性学习器、支持向量机、朴素贝叶斯、K-NN等,就效果不明显,产生这个问题的原因就是因为稳定的基学习器,“变...

  • 大数据人工智能培训?
  • 答:2、机器学习。机器学习的作用是从数据中习得学习算法,进而解决实际的应用问题,是【人工智能】的核心内容之一。这一模块覆盖了机器学习中的主要方法,包括线性回归、决策树、支持向量机、聚类等。3、人工神经网络。作为机器学习...

  • 人工智能难吗?
  • 答:人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛...

    户户网菜鸟学习
    联系邮箱
    返回顶部
    移动学习网