机器学习(二)--- SVM的学习:理论基础理解

SVM是一种应用比较广泛的分类器,全名为Support Vector Machine,即支持向量机,在没有学习SVM之前,我对这个分类器汉字的理解是支持/向量机,学习之后,才知道原名是支持向量/机,我对这个分类器的名字理解是:通过具有稀疏性质的一系列支持向量从而得到一个比较好的分类器,这个分类器在名称里面体现为Machine。下面是我对于学习SVM理论后认为几个需要理解和掌握的知识点

  • 函数间隔(functional margin) and 几何间隔(geometric margin)
  • 支持向量的理解
  • SVM的最优化问题的解决

首先给出一个一般介绍SVM开篇的一类型的图:

从这幅图上看,可以很清楚的看见,SVM实现了两类数据的分类,在这幅图中,有中间的一条横线就是我们要得到的分类器,在二维平面表现为直线(线性分类)或者曲线(非线性分类),在高维空间表现为超平面(hyperplane)。

回顾一下机器学习(一)--- 监督学习之回归中有关于逻辑回归的知识:对于分类器hypothesis,,在而进行二分类的问题上,现在对于该函数,用超平面的表达式:进行替换,对于二分类问题而言,需要说明的是:

联系该公式与上图之间的联系,当大于0的时候,则数据分类的label为1,反之则定为-1。由此引出关于函数间隔的定义,functional margin:

其中,的值为{+1,-1},当值为+1时,为了达到很好的分类效果,括号里面的值需要表现为positive,且是较为大的正值,而对值为-1,括号里面的值则需要表现为negative,且是绝对值较为大的负值。

为了比较大的函数间隔,达到很好的confidence,即分类结果更加准确可信,有可能简单的增加w和b的值,但是这样简单的处理是没有任何意义的,因为我们的目的就是为了找到一个比较好的超平面,应该是w,b是不同,在三维空间内,w代表的是分类平面的法向量,对于简单的乘上一个因子,实质上平面并没有发生改变,因此这并不是我们需要的结果。

接着我们需要引出几何间隔,geometric margin的概念。

对于上图,B点是A点在超平面上的投影,对于B点的坐标,这是一个很简单的立体几何问题,对于超平面的法向量,w,我们可以很容易求得它的单位向量,由此可以余弦角,由此可以很容易根据A的坐标求得B的坐标,即:。由因为B点是落在超平面上的,由此可以得到以下结果:

经过简单的线性代数的处理,可以得到:

感觉是不是有点似曾显示的感觉,非常类似点到平面的距离的公式,因为它有可能是负值,因为少了一个绝对值符号,再经过简单的处理:

这样就保证了非负性质。这就是几何间隔的定义式

可以看到几何间隔和函数间隔是非常类似的,但是点到平面的距离是不会因为w,b的缩发生变化,在这一点上,几何间隔比函数间隔更具有意义和价值。

因此,对于以上的二分类问题,可以得到以下的抽象模型:定义

即:通过学习和训练,可以得到一组,使得能够达到最大。

===================================================================================

接下来需要讨论上面提出的模型的求解问题。

通过函数间隔和几何间隔的关系,经过转换,可以得到:

这里需要深入的讨论一下的问题。这也是我在理解SVM的时候始终不太明白的问题,在SVM的理论学习中,通常会有。的限制

对于,我们可以采取任意的缩放因子,这里当然就对有了一定的限制。但是可以肯定的是,通过缩放,可以使得。同时缩放,对于几何间隔是没有影响的。

======================================题外话===============================================

但是还有一个问题,一开始容易陷入怪圈的问题:对于最小间隔,可能在真实情况中,需要分类的数据到超平面的间隔可能是小于1的。那么加入最小间隔为1的这样一个限制,不就把这样一部分点过滤掉了,导致计算的时候不考虑这部分点。

对于这个问题,我的理解是。首先这样理解的因果关系是有问题的,首先我们就是为了使得最小间隔最大化,从而得到,得到分类器。那么在不确定超平面的表达式之前,函数间隔是变化的,不存在过滤不过滤的说法。加入“1”的限制,仅仅是为了方便处理。

========================================================================================

解释完的取值问题,接着开始正题,模型的求解问题。当时,可以将以上的模型求解转换为一下模型的求解:

这个问题,是一个典型的凸优化问题,可以用QP模型来求解。

至此,关于SVM的基础知识点就已经全部清点完毕,下一篇将会讲解在以上提出的模型的求解问题。但是我总觉得还有已给关键的名词没有给出,是什么呢?对了,就是支持向量的概念。

========================================================================================

前面我们讨论了关于的取值问题,给出了的限制条件。对于满足的值为1的数据,我们称为支持向量。如下图所示:

从上图和本文的第一张图可以看到,满足的向量,即支持向量,是很少的,即具有稀疏性。

时间: 2024-08-08 13:58:05

机器学习(二)--- SVM的学习:理论基础理解的相关文章

[matlab]机器学习及SVM工具箱学习笔记

机器学习与神经网络的关系: 机器学习是目的,神经网络是算法.神经网络是实现机器学习的一种方法,平行于SVM. 常用的两种工具:svm tool.libsvm clear; N = 50; n=2*N; randn('state',6); x1 = randn(2,N) y1 = ones(1,N); x2 = 5+randn(2,N); y2 = -ones(1,N); figure; plot(x1(1,:),x1(2,:),'bx',x2(1,:),x2(2,:),'k.'); axis([

机器学习之SVM

一.线性分类器: 首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线) 假如说,我们令黑色的点 = -1, 白色的点 =  +1,直线f(x) = w.x + b,这儿的x.w是向量,其实写成这种形式也是等价的f(x) = w1x1 + w2x2 - + wnxn + b, 当向量x的维度=2的时候,f(x) 表示二 维空间中的一条直线, 当x的维度=3的时候,f(x) 表示3维空

机器学习-李航-统计学习方法学习笔记之感知机(2)

在机器学习-李航-统计学习方法学习笔记之感知机(1)中我们已经知道感知机的建模和其几何意义.相关推导也做了明确的推导.有了数学建模.我们要对模型进行计算. 感知机学习的目的是求的是一个能将正实例和负实例完全分开的分离超平面.也就是去求感知机模型中的参数w和b.学习策略也就是求解途径就是定义个经验损失函数,并将损失函数极小化.我们这儿采用的学习策略是求所有误分类点到超平面S的总距离.假设超平面s的误分类点集合为M,那么所有误分类点到超平面S的总距离为 显然损失函数L(w,b)是非负的,如果没有误分

机器学习(Machine Learning)&深度学习(Deep Learning)资料

机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室Jurgen Schmidhuber写的最新版本

机器学习笔记——SVM之一

SVM(Support Vector Machine),中文名为 支持向量机,就像自动机一样,听起来异常神气,最初总是纠结于不是机器怎么能叫"机",后来才知道其实此处的"机"实际上是算法的意思. 支持向量机一般用于分类,基本上,在我的理解范围内,所有的机器学习问题都是分类问题.而据说,SVM是效果最好而成本最低的分类算法. SVM是从线性可分的情况下最优分类面发展而来的,其基本思想可以用下图表示: (最优分类面示意图) 图中空心点和实心点代表两类数据样本,H为分类线

【机器学习算法应用和学习_2_理论篇】2.2 M_分类_逻辑回归

一.原理阐述 算法类型:监督学习_分类算法 输入:数值型或标称型(标称型需要独热编码) V1.0 用回归方式解决二分类问题,通过引入一个Sigmoid函数将中间y值映射到实际二分类的y值上. 二.算法选择 三.算法过程 1.Sigmoid函数是一个x值域是(-∞,+∞),y值域是(0,1)的单调递增函数: 2.预测y值>0.5为1类,<0.5为0类,y值也可以解释为为1和0类的概率: 3.同样使用“最小二乘”概念,求得最佳方程,得到目标函数: 4.要使得目标函数达到最小,需要采用一种称为“梯度

二 从 GPU 的角度理解并行计算

前言 本文从使用 GPU 编程技术的角度来了解计算中并行实现的方法思路. 并行计算中需要考虑的三个重要问题 1. 同步问题 在操作系统原理的相关课程中我们学习过进程间的死锁问题,以及由于资源共享带来的临界资源问题等,这里不做累述. 2. 并发度 有一些问题属于 “易并行” 问题:如矩阵乘法.在这类型问题中,各个运算单元输出的结果是相互独立的,这类问题能够得到很轻松的解决 (通常甚至调用几个类库就能搞定问题). 然而,若各个运算单元之间有依赖关系,那问题就复杂了.在 CUDA 中,块内的通信通过共

机器学习实战——SVM(1/3)

SVM(支持向量机)是典型的二分类的判别式模型,这种方法以Rosenblatt于1957年提出的感知机模型的基础上,都是通过训练一个分类超平面之后,作为分类的决策函数,然后对未知的样本进行预测.通过对输入特征使用法向量和截距w=(w1,w2,...wn).b进行线性组合,得到超平面,最终的决策函数也和感知机一样,为符号函数f(x)=sign(w? ?x? +b),符号函数大于0则为正类(w? 指向的一侧)否则为负类(w? 指向的对侧).但SVM与感知机不同的是,SVM训练模型的策略是分类平面的间

spss C# 二次开发 学习笔记(六)——Spss统计结果的输出

Spss的二次开发可以很简单,实例化一个对象,然后启用服务,接着提交命令,最后停止服务. 其中重点为提交命令,针对各种统计功能需求,以及被统计分析的数据内容等,命令的内容可以很复杂,但也可以简单的为一个字符串.命令的获取,可以类似于Office录制宏一样,操作的过程中,Spss输出应用程序会记录命令内容,然后可以参考命令语法手册,去完善命令内容. 而获取输出结果,即获取统计的图.表等内容,功能很强大,当然起初操作起来也有些不可思议.它不是常规的进行统计,然后执行输出命令获取输出结果.Spss的输

Civil 3D API二次开发学习指南

Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开发学习指南.另外,如果你用到Map 3D相关的功能,你还可能需要Map 3D的开发知识,看Map 3D API二次开发学习指南. 软件准备及开发环境 AutoCAD Civil 3D 软件,推荐2014以上版本,你可以从Autodesk 官方网站下载试用版, Visual Studio 2012 或