监督学习之支持向量机——Andrew Ng机器学习笔记(五)
来源:互联网 发布:java多线程简单例子 编辑:程序博客网 时间:2024/04/27 13:38
内容提要
这篇博客的主要内容有:
1. 简述支持向量机(SVM)的一般记号
2. 介绍了函数间隔和几何间隔
3. 最大间隔分类器是什么
4. 为了得到最大间隔分类器解,而介绍了一些与拉格朗日有关的理论(拉格朗日乘数法,KKT条件,对偶性质)
5. 求解最大间隔分类器方法推导。其实推导出来的这个方法就是支持向量机。
支持向量机(SVM),通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
准备的记号
在支持向量机(Support Vector Machines(SVM))中我们使用的记号和之前的稍微有些不同。在这里:
令
上式也可以写成如下表达式:
其中:
函数间隔和几何间隔(Functional and geometric margins)
给定一个训练集
从这个式子可以看出,为了获得尽可能大的函数间隔:如果
我们将这个训练集上的函数间隔(样本的函数间隔)定义为:
这个式子的意思很明显,我们要将最小的函数间隔作为训练集的的函数间隔。下来我们再来看看几何间隔:
经过上图的推导,我们最终得到了:
这个式子表明第i个训练样本到分隔平面的距离有参数
对这个式子的理解是,我们认为自己的分类是正确的,并且希望各个训练样本距离分隔平面尽可能的元,只要他们还在平面的同一侧。对于同一侧的限制就是通过
最大间隔分类器
现在我们已经有了间隔的定义,不管是函数间隔还是几何间隔。要完成一个分类问题,一种方式就是让这个间隔最大,然后我们就可以求出响应的参数。首先看看函数间隔,你给参数前乘一个大于零的数,函数间隔就会变大,这个不好。再来看看几何间隔,由于要将参数单位化,所以就不受参数的非因素影响,就是说当几何间隔最大的时候,真的就是训练样本距离超平面最大。这样用几何间隔就可以非常健壮的描述样本与超平面之间的距离。所以我们就构造下面这个优化问题:
这个优化问题中约束式子是函数间隔,但是在最后加上了一个
我们将
啊!这是怎么回事。
看到这个式子你可能就恍然大悟了,加上
看这个图我们可以进一步理解我们构造的优化问题,横纵标标是
总之,通过我们一步步变形,最终问题变成了一个凸二次优化问题。求加他,我们就可以得到一个超平面来分隔训练集。这个凸二次优化就是最大间隔分类器。下一步就是求解这个凸二次优化问题,得到的参数就是分隔训练集的超平面的参数。为了求解这个问题,我们还得知道一些与拉格朗日极值有关的理论。
一些与拉格朗日极值有关的理论
首先我们先回顾一下高数中讲的拉格朗日乘数法,它是为了求函数的极值。
这是我们的目标函数和约束条件。下一步是构造拉格朗日算子:
其中
然后求解方程组,将解得
在实践中上面的目标函数有时候不能满足我们的的要求,所以我们要对它进行升级,得到下面目标函数:
这个问题和上面的问题非常相似,同样的数学家也给出了相似的解法,叫做增广拉格朗日函数。
下来我们在定义一个函数:
可以看出当
如果约束条件成立,则这个函数和
我觉得这个函数可以称之为惩罚函数,意识就是如果在可行域之内这个函数就和原来的目标函数(
下面我们再构造一个最优化问题,其中下标
这式子的理解是:当不在可行域中时,由于有惩罚,目标函数求最小,就会迫使迭代向可行域方向走。当在可行域中时,
关于对偶理论可以参考 运筹学(第四版) 清华大学出版社 第64页
对偶问题的一些性质:
1. 目标函数值相同时,各自的解为最优解
2. 若原问题有最优解,那么对偶问题也有最优解,且目标函数值相同
3. 还有互补松弛性,无界性,对称性等等
如果
当原问题和对偶问题都取得最优解得时候,那么他们分别的目标函数也就到达了最优值。根据对偶问题的性质2,可以得到
现在我们去求解还不行,得做一些假设。我发现数学家们无法将一个问题转换时,就直接假设。的确这也是一种解决问题的方式,但是假设一般都是增加限制条件。即就是损失了我们解决问题的关键。但是,目前我们无法转换,所以先只能这样了。或许会有人提出更好的方法。
现在我们就假设,假设的对象是:
我们假设
有了这些假设我们就可以引出
那么这些最优解满足KKT条件:
最大间隔分类器的求解
已经走得太远了,让我们来回顾一下最大间隔分类器:
我们上面介绍了很多与拉格朗日有关的理论,就是为了利用他。首先我们就要将我们的问题标准化增广拉格朗日可以求解的的样子,下面是标准样子:
目标函数已经是标准好的,我们只需将约束条件进行标注化,如下:
Andrew Ng老师说在实验中,KKT条件的乘子非负条件一般都是成立的,即
31.png
满足约束条件的训练样本(即在虚线上的样本)就是图中三个样本,这个三个样本我们称之为支持向量。一般的,支持向量都比较少,这个是可以理解的。也就是说大多数情况下都有
根据我们的最大间隔分类器,构造拉格朗日函数:
其中
现在我们来看看他的对偶问题的一部分:
是一个求最值的问题我们可以利用拉格朗日乘数法的方式进行计算,分别对
可以得到:
再将上式带入问题的拉格朗日函数中,实质就是我们相对于
下来我们在看完整的对偶问题:
而:
上面我们已经推导了拉格朗日函数求最小值的结果,并将结果用
对于这连个约束的解释是:第一个约束表明我们使用的是支持向量;第二个约束是我们在使得拉格朗日函数最小时得到的,如果它不等于零,那么
这是一个有约束的二次优化问题,总之可以在最优化中找到求解方法,解的最优解为
这样我们就可以求出
具体的计算公式是:
现在我们得到了参数
总结
我觉得SVM最完美的地方就是它找到了一种通过求解对偶问题进而解决原问题的方法,我没查SVM和运筹学中的对偶理论的先后,但是可以看到将对偶理论应用于分类问题其实是一个艰难的探索过程。其中还用到了KKT条件,拉格朗日乘数法,所以说一个伟大发明其实不是一个人的功劳。
end
2015/12/31 15年的最后一天我还在学习,挺好。
- 监督学习之支持向量机——Andrew Ng机器学习笔记(五)
- 监督学习之再聊支持向量机——Andrew Ng机器学习笔记(六)
- Andrew Ng机器学习入门学习笔记(六)之支持向量机(SVM)
- 监督学习之生成学习算法——Andrew Ng机器学习笔记(四)
- 监督学习之梯度下降——Andrew Ng机器学习笔记(一)
- 监督学习之Logistic regression——Andrew Ng机器学习笔记(二)
- 监督学习之广义线性模型——Andrew Ng机器学习笔记(三)
- Coursera机器学习(Andrew Ng)笔记:支持向量机
- Andrew Ng机器学习笔记week7 支持向量机SVM
- Andrew Ng机器学习笔记ex6 支持向量机SVM
- Coursera 机器学习(by Andrew Ng)课程学习笔记(七)——支持向量机
- Andrew NG 机器学习 笔记-week7-支持向量机(Support Vector Machines)
- 非监督学习之k-means聚类算法——Andrew Ng机器学习笔记(九)
- 非监督学习之混合高斯模型和EM算法——Andrew Ng机器学习笔记(十)
- Andrew Ng 机器学习笔记(五)
- Andrew Ng机器学习笔记(五)——生成学习算法和朴素贝叶斯算法
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——4、监督学习:Naive Bayes
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——8、监督学习:Learning Theory
- MS chart 总结
- 设计模式系列5---多变灵活的桥接
- apue.h头文件内容
- MySQL数据库的备份还原
- aircrack-ng on OSX 从零开始
- 监督学习之支持向量机——Andrew Ng机器学习笔记(五)
- 《挑战程序设计竞赛》3.1.1 二分搜索-最大化最小值 POJ1064 2456 3258 3273 3104 3045
- linux 编译内核树
- VTP
- 2015年总结
- Xcode archive 时错误:error itms90475
- Linux修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 问题
- 个人年终总结
- 蓝懿 ios技术交流和心得分享12.31