机器学习 Support Vector Machines 1
来源:互联网 发布:spss软件怎么下载 编辑:程序博客网 时间:2024/05/22 16:54
引言
这一讲及接下来的几讲,我们要介绍supervised learning 算法中最好的算法之一:Support Vector Machines (SVM,支持向量机)。为了介绍支持向量机,我们先讨论“边界”的概念,接下来,我们将讨论优化的边界分类器,并将引出拉格朗日数乘法。我们还会给出 kernel function 的概念,利用 kernel function,可以有效地处理高维(甚至无限维数)的特征向量,最后,我们会介绍SMO算法,该算法说明了如何高效地实现SVM。
Margin 边界
我们的SVM之旅,从边界的讨论开始,我们要讨论边界的概念以及预测的置信度等概念。
考虑 logistic regression, 其概率
我们先来考虑如下一张图,其中
我们注意到点A离决策边界非常远,如果要我们判断点A,我们有很高的置信度判断点A为正样本,其y=1。但是对于点C,我们发现它离决策边界很近,在图上所示的情况下,我们知道点C是正样本,我们预测其输出y=1,但是我们也注意到,如果决策边界稍微有点改变,则点C有可能被判断为负样本,预测的输出为y=0。因此,从图上各点的分布以及决策边界的位置,我们可以说我们对于点A的预测比对点C的预测更加自信,换句话说,点A的置信度比点C高。我们看到,如果一个点离决策边界越远,那么分类器判断的时候置信度也会更高。因此,给定一组训练样本,我们试着找到这样一个决策边界,使得分类器对所有训练样本的判断都有一个很高的置信度(意味着所有的点都要尽可能地远离决策边界),我们稍后将用 geometric margin (几何边界)的概念去实现这个想法。
在介绍函数边界和几何边界之前,我们要先定义一些符号。我们考虑用线性分类器解决二分类问题,其输出为y,输入的特征向量为x,现在我们要用
其中,函数
从分类器的函数表达式可以看出,我们将直接预测样本的输出为1或者-1,而不再像logistic regression那样,先判断其概率,然后再判断样本的输出。
函数边界和几何边界
接下来,我们探讨函数边界和几何边界,给定一组训练样本
如果
进一步的,如果
对于线性分类器,其函数为g,我们发现如果函数g的参数w,b变成2w,2b,由于
给定一组训练样本,
因此,一个训练集的\textbf{函数边界},就是该训练集中所有样本的函数边界的最小值。
接下来,我们讨论几何边界,考虑如下的一张图:
w,b对应的决策边界已经给出,沿着w的方向,请注意,w是垂直于分界面的(这一点应该容易证明)。考虑点A,表示某个正样本,点A到决策边界的距离
如何确定
进而可以求得
上式给出的是正样本的情况,更一般地,我们定义一个样本关于参数w,b的几何边界为:
我们可以发现如果
最后,我们给出几何边界的定义, 与函数边界的定义类似,给定一组训练样本,
因此,一个训练集的几何边界,就是该训练集中所有样本的几何边界的最小值。
参考文献
Andrew Ng, “Machine Learning”, Stanford University.
- 机器学习 Support Vector Machines 1
- 机器学习 Support Vector Machines 2
- 机器学习 Support Vector Machines 3
- [机器学习] Coursera笔记 - Support Vector Machines
- Support Vector Machines 1
- Stanford 机器学习笔记 Week7 Support Vector Machines
- 【Stanford机器学习笔记】10-Support Vector Machines
- 机器学习之支持向量机: Support Vector Machines (SVM)
- coursera机器学习笔记之“Support Vector Machines(SVMs)”
- [Coursera机器学习]Support Vector Machines WEEK7编程作业
- Andrew Ng机器学习week7(Support Vector Machines)编程习题
- Andrew NG 机器学习 练习6-Support Vector Machines
- Python机器学习: Support Vector Machines 01 sklearn_note_26.1_26.2
- 斯坦福机器学习视频笔记 Week7 支持向量机 Support Vector Machines
- Andrew NG 机器学习 笔记-week7-支持向量机(Support Vector Machines)
- Machine Learning—Support Vector Machines(1)
- Support Vector Machines
- Support Vector Machines (SVM)
- mac修改环境变量
- 后端JSP文件里Java语言如何操作Oracle Spatial提供的JGeometry对象2
- 第六周 项目六(1):复数模板类
- 关于手写验证码
- VS使用技巧
- 机器学习 Support Vector Machines 1
- 《c++ primer》整理
- ACM文件测试数据及文件操作
- yum的变量从哪里来?
- Android Continuous Integration
- Windows下C++实现编码转换(SDK、MFC)
- session和cookie使用说明
- php执行函数总结
- 去见你想见的人吧!