机器学习-斯坦福:学习笔记7-最优间隔分类器问题

最优间隔分类器问题

本次课程大纲:

1、 最优间隔分类器

2、 原始优化问题&对偶优化问题(KKT条件)

3、 SVM对偶问题

4、 核方法(下一讲)

复习:

支撑向量机中改动的符号:

输出y∈{-1,+1}

h输出的假设值也改为{-1,+1}

g(z) = { 1 , 如果z>=0;  -1, 如果z<0}

hw.b(x)=g(wTx+b),这里的b相当于原来的θ0,w相当于原来θ除去θ0剩余部分,长度为n维。将截距b单提出来,方便引出支撑向量机。

函数间隔

一个超平面(w,b)和某个特定训练样本(x(i),y(i))对应的函数间隔定义为:

参数(w,b)定义了一个分类器,例如定义了一个线性分界线。

如果y(i)=1,为了获得较大的函数间隔,需要令wTx(i)+b >> 0;

如果y(i)=-1,为了获得较大的函数间隔,需要令wTx(i)+b << 0

如果y(i)(wTx(i)+b) > 0,意味着分类结果正确

一个超平面(w,b)和整个训练集的函数间隔定义为:

即相对于整个训练集的函数间隔定义为所有相对于样本的函数间隔的最坏情形(上述讲到,分界线距离样本越远效果越好)。

几何间隔:

几何间隔定义为:

这个定义和函数间隔很相似,不同点是对向量w进行了标准化。同样,希望几何间隔也是越大越好。

结论:如果||w||=1,函数间隔等于几何间隔。更一般的,几何间隔等于函数间隔除以||w||。

一个超平面(w,b)和整个训练集的几何间隔定义为:

和函数间隔类似,取样本中最小的几何间隔。

性质:可以任意比例缩放w和b,因为任意缩放w和b都不会改变超平面wTx+b=0的位置。这一性质在后续讨论中带来很大便利。

1、 最优间隔分类器

最优间隔分类器可以看做是支撑向量机的前身,是一种学习算法,选择特定的w和b,使几何间隔最大化。最优分类间隔是下述这样的优化问题:

即选择γ,w,b使γ最大,同时满足条件:所选取的最大几何间隔必须保证每个样本的几何间隔至少为γ。即,找到一个超平面,在将正负样本分开的同时,使超平面到正负样本间的距离尽可能大。

由于w和b可随意缩放,约束条件||w||=1,使得函数间隔等于几何间隔。但是这个约束本身是一个非常糟糕的非凸性约束。要求解的参数w在一个球体表面,如果想得到一个凸优化问题,必须保证如梯度下降算法这种局部最优值搜索算法不会找到局部最优值,而非凸性约束不能满足这个条件,所以需要改变优化问题。

为了解决上述问题,提出下面的最优化问题:

即将函数间隔除以||w||的值最大化,而这个值其实就是几何间隔,只是上一个优化问题的另一种表述。最优化目标是,最大化几何间隔,同时保证函数间隔不小于γ^,即求最大的γ^,但是γ^上限是最小的函数间隔的值。

对w添加约束条件:γ^ = 1,即函数间隔为1,即使式子的最小值为1。这个一个隐含的缩放条件。将这个约束加入到第二个最优化问题中,得到最终的最优间隔分类器

这是一个凸优化问题,且没有局部最优值,可以通过梯度下降找到全局最优值。

2、 原始优化问题&对偶优化问题(KKT条件)

原始问题

如要求下式的值:

即最小化函数f(w),并满足约束条件hi(w)=0,可以将hi写成0向量。

创建拉格朗日算子:

即等于原始目标函数加限制函数的线性组合,其中参数β称为拉格朗日乘数。

则,如果对下式求偏导数置为0,即可求出解:

对上述两个偏导数方程求解,检查得到的解是否为最小值即可。

拉格朗日乘数法的一般形式,也称为原始问题

此时,拉格朗日算子为:

此时α和β为拉格朗日乘数,定义:

上式中的p表示原始问题(primal),

如果w违反了约束条件,即gi(w)>0或hi(w)!=0,那么上式变成:

上式中从(1)到(2)的解释为:若gi(w)>0,那么只要使αi无穷大,θp(w)就会无穷大;同理,若hi(w)!=0,只要使βi相应取无穷大(hi(w)>0)或无穷小(hi(w)<0),θp(w)也会无穷大。

反之,若w满足约束条件,那么θp(w) = f(w),所以可得:

那么,求min f(w)就是求下式的值,定义为p*:

对偶问题

定义:

对其取最大值,即给出对偶优化问题,定义为d*:

从公式上看,对偶问题就是把原始问题中的min,max换了顺序。

可得:

原始问题和对偶问题获得相同解的条件:

令f为凸函数(凸函数的hessian 矩阵是半正定的,H>=0,即开口朝上的碗状函数)

假设hi为仿射函数,即

假设gi是严格可执行的,即存在w,使得对于所有i,gi(w)<0

在上述条件下,存在w*,α*,β*,其中w*是原始问题的解,α*,β*是对偶问题的解,并且:

此外,还要满足条件:

这些条件被称为KKT互补条件

KKT中的隐含条件:

如果αi>0 => gi(w*)=0,但是一般来说αi>0 <=> gi(w*)=0

当gi(w*)=0,称gi(w*)为活动约束。

3、 SVM对偶问题

最优间隔分类器:

将约束改写为:

又通过KKT条件,αi>0 => gi(w,b)=0,即活动约束

gi(w,b)=0 <=> y(i)(wTx(i)+b)=1,即函数间隔为1

给出例子如下图:

图中的圈和叉即正负样本,实线即w,b确定的分隔线,虚线即函数间隔为1的点所构成的线。看出有三个样本的函数间隔为1,其他样本的函数间隔大于1。

通过KKT条件,这些函数间隔为1的样本对应的拉格朗日乘数一般不等于0,即αi>0。这个函数间隔为1的样本称为支撑向量。支撑向量数量很少,所以多数的αi=0,那么反推可得,αi=0,对应的样本不是支撑向量。

对最优间隔优化问题建立拉格朗日算子:

由于这个问题只有不等式约束,所以没有β。

为了使拉格朗日算子最小,因为它是w,b的函数,对w,b求偏导数并设为0。

推出:

w就是输入特征向量的线性组合。对b求偏导:

将w代入拉格朗日算子,即代入||w||=wTw,化简后得到:

根据对b求偏导的结果,最后一项为0,得到:

将上式表示为W(α),对偶问题就是:

所有优化问题都是针对w进行了,b只是一个参数。

为了解决上述对偶问题,求出参数α*,而求出α,即可通过上面w的公式求出w,求出α和w后,容易求出b,因为w决定了超平面的斜率,那么根据最优间隔,将α和w代入原始问题,就容易求出b了,如下式:

这个公式的直观理解就是,找到最差的样本(离得最近的正负样本),根据它们的位置,可求出超平面的位置。

4、 核方法

可以将上面整个算法表示成内积的形式:

x(i)Tx表示为新输入的x和训练样本x的内积的和。

在SVM特征空间中,由于训练样本的维数可能会很高,核方法可以高效计算内积的表示方法,但是仅对一些特定的特征空间成立。

浏览整个SVM计算过程,所有步骤都可以不直接计算x(i),而通过计算特征向量的内积得到结果,所以核方法被引入。

该算法另一个性质就是,由于函数间隔为1的样本只占训练集的一小部分,大多数αi=0,计算w时计算量小。

时间: 2024-10-10 17:08:12

机器学习-斯坦福:学习笔记7-最优间隔分类器问题的相关文章

(笔记)斯坦福机器学习第七讲--最优间隔分类器

本讲内容 1.Optional margin classifier(最优间隔分类器) 2.primal/dual optimization(原始优化问题和对偶优化问题)KKT conditions(KKT条件) 3.SVM dual (SVM的对偶问题) 4.kernels (核方法) 1.最优间隔分类器 对于一个线性可分的训练集合,最优间隔分类器的任务是寻找到一个超平面(w,b), 使得该超平面到训练样本的几何间隔最大. 你可以任意地成比例地缩放w和b的值,这并不会改变几何间隔的大小. 例如,

斯坦福《机器学习》Lesson7感想———1、最优间隔分类器

从上一课可知,对于给定的线性可分的数据集,离分隔超平面最近的点是支持向量.而支持向量与分隔超平面间的距离越远,则说明最后算法的预测结果越可信.这课的核心就在于如何确定最佳的分隔超平面,即最优间隔分类器. 首先我们要介绍其中的数学推理,然后介绍最优间隔分类器. 1.凸优化问题 选取一个函数里的两个点,连接两个点成一条直线,两点间的函数点都在这条直线下即为凸函数,凸函数的例子有指数函数.当一个问题被转化为凸优化问题,说明这个问题可以很好被解决.对于凸优化问题来说,局部最优解就是全局最优解. 给定一个

机器学习实战学习笔记(一)

1.k-近邻算法 算法原理: 存在一个样本数据集(训练样本集),并且我们知道样本集中的每个数据与其所属分类的对应关系.输入未知类别的数据后将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似(最近邻)的k组数据.然后将k组数据中出现次数最多的分类,来作为新数据的分类. 算法步骤: 计算已知类别数据集中的每一个点与当前点之前的距离.(相似度度量) 按照距离递增次序排序 选取与当前点距离最小的k个点 确定k个点所在类别的出现频率 返回频率最高的类别作为当前点的分类 py

《机器学习》学习笔记(一)

今天看了两集Stanford 的Machine Learning,先说说感受,在看的过程中,脑海里冒出来一个念头:在中国的大学里,教授们都是好像在做研究,而学生们都是好像在上课,到头来不知道学到了什么,我在屏幕的这边都能感受到他们和我们的不一样. 其实对于机器学习,我是真心不懂,也不知道为什么忽然就想学习一下了,然后看了第一集就觉得实在是太牛X了,他们做的那个爬越障碍物的狗和快速避障的小车,都不是我们能搞出来的,说来也奇怪,我们不是也有他们一样的课程体系吗?照理说在大学里能做出来的东西,我们也应

《Java程序性能优化》学习笔记 Ⅳ JVM调优

第五章 JVM调优5.1 Java虚拟机内存模型1.JVM虚拟机将其内存数据分为程序计数器.虚拟机栈,本地方法栈,Java堆,和方法去等部分.5.2 JVM内存分配参数5.3 垃圾收集基础5.4 常用调优案例和方法5.5 使用JVM参数5.6 实战JVM调优 <Java程序性能优化>学习笔记 Ⅳ JVM调优

最优间隔分类器

最优间隔分类器 最优间隔分类器 对于一个给定的数据集,目前有一个很现实的需求就是要找到一个合适的决策边界,使得样本中的最小间隔(几何间隔)最大,而且这样的分类器能够使得分割的训练样本集之间的间隔(gap)最大.现在,我们假设训练集合线性可分,即可以找一条超平面把正样本和负样本分割开来.那么我们如何找到一个超平面来最大化几何间隔呢?我们得到了如下的优化问题: maxγ,w,b γ s.t. y(i)(wTx(i)+ b) ≥ γ, i = 1, . . . , m ||w|| = 1 也就是说,我

机器学习技法--学习笔记04--Soft SVM

背景 之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开.但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的.所以,需要在hard SVM上添加容错机制,使得可以容忍少量噪声数据. ? "软"化问题 软化SVM的思路有点类似正规化,在目标函数添加错误累加项,然后加一个系数,控制对错误的容忍度,并且在约束中添加错误容忍度的约束,形式如下: ? 现在问题就变成了(d+1+N)个变量和2N个约束.ξ用来描述错误的容忍度.C是常量,用来控制容忍度.C越大,由

模式识别(Pattern Recognition)学习笔记(七)——线性分类器及线性判别函数

1.为什么要设计分类器? 回顾下前面学习的统计决策,也就是贝叶斯决策,它可以简单被划分为两步,首先根据样本进行PDF估计,然后根据估计出的PDF来求分类面,因此又经常被叫做两步贝叶斯决策.如果我们能够很好地估计出PDF模型,也总可以利用贝叶斯来实现两类甚至多类的最优分类,但是很多实际情形中,想要精准的估计出PDF模型,并非易事,尤其当样本存在高维特征空间,以及样本数量并不足够多的情况,本质上来说,模式识别的真正目的并非估计PDF模型,而是在特征空间中想方设法找到各类的分界线或分界面.因此,如果可

机器学习基石--学习笔记01--linear hard SVM

背景 支持向量机(SVM)背后的数学知识比较复杂,之前尝试过在网上搜索一些资料自学,但是效果不佳.所以,在我的数据挖掘工具箱中,一直不会使用SVM这个利器.最近,台大林轩田老师在Coursera上的机器学习技法课程上有很详细的讲授SVM的原理,所以机会难得,一定要好好把握这次机会,将SVM背后的原理梳理清楚并记录下来.这篇文章总结第一讲linear hard SVM的相关内容. ? ? 最好的分割线 之前有讲过PLA,即在线性可分的数据中,找到一条线,能够区分开正负样本,如下所示: 上面三条线,