SVM学习之五——支持向量机的原理 - 叶子 - 语言技术网 自然语言处理|信息检索|人工智能 - Powered by X-Space
2008-04-11 21:17
676 查看
SVM学习之五——支持向量机的原理
名词解释1——支持向量机:“机(machine,机器)”实际上是一个算法。在机器学习领域,常把一些算法看作是一个机器(又叫学习机器,或预测函数,或学习函数)。“支持向量”则是指训练集中的某些训练点的输入 xi 。它是一种有监督(有导师)学习方法,即已知训练点的类别,求训练点和类别之间的对应关系,以便将训练集按照类别分开,或者是预测新的训练点所对应的类别。
名词解释2——符号函数:sgn(a) = 1, a >= 0;sgn(a) = -1, a < 0.
一般地,考虑 n 维空间上的分类问题,它包含 n 个指标和 l 个样本点。记这 l 个样本点的集合为 T = {(x1,y1),...,(xl,yl)},其中 xi 是输入指标向量,或称输入,或称模式,其分量称为特征,或属性,或输入指标;yi 是输出指标向量,或称输出,i = 1,...,l。 这 l 个样本点组成的集合称为训练集,所以我们也称样本点位训练点。
对于训练集来说,有线性可分、近似线性可分和线性不可分等三种情况,这就是分类问题的三种类型。其实,无论是哪类问题,都有对应的分类机,这将在以下的内容中进行详细阐述。那么,有人可能会问,什么叫线性可分?通俗地讲,就是可以用一条或几条直线把属于不同类别的样本点分开。实际上,求解分类问题,就是要求出这条或这几条直线!那么,问题是:怎么求?这里先以二维两类线性可分的分类问题为例,做个详细的说明,然后再过渡到多类分类问题。
首先,回忆一下平面(二维)坐标系中某条直线的方程。还记得直线的一般方程
Ax + By + C = 0 (公式一)
吧,我们引入向量的概念,则该方程可以写成{x,y}与{A,B}的内积加上C等于0,即
{A,B}·{x,y} + C = 0
你还记得法向量和方向向量的概念吗?其实{A,B}就是法向量,而{B,-A}就是方向向量了。那么我们可以把直线的一般方程简化成为
w·x + b = 0 (公式二)
的形式(因为这个式子是大家最常用的嘛)。注意:(公式二)中的 x 和(公式一)中的 x 不同,前者一个二维向量,后者是一个实数。
对于两类问题,如果将某一直线两侧的样本点分为正类和负类,则用符号函数的方式推断点 x 所对应的类别 y 的决策函数如下:
y = f(x) = sgn((w·x) + b) (公式三)
根据符号函数的定义,很明显 y 的取值要么是 1 ,要么是 -1,也就是说样本点的类别只有 1 和 -1 两类。此时的分类问题是:对于任意给定的一个新的模式 x ,根据训练集推断它所对应的输出 y 是 1 还是 -1。这就是线性可分的分类问题,也是一个模式识别问题,我们要做的工作就是要求出 w 和 b 。
直接求这两个参数基本上不太可能,除了训练集我们又没有别的信息可以利用,这可如何是好?前辈们给出了一个绝妙的方法——就是所求得的预测函数 f(x) 对原有样本的分类错误率最小。那么,问题又出来了,这个错误率咋算?损失函数就是专门用来评价预测准确程度的一种度量,而且模式识别问题使用的正是“0-1损失函数”。根据我的上一篇学习体会——《从机器学习到支持向量机》http://axywestwind.bokee.com/viewdiary.14525093.html中的阐述,使(公式三)中的 f(x) 的预测误差最小的问题转化成期望误差最小、经验风险最小,最后在统计学习理论中又转化为结构风险最小(Structural Risk Minimization, SRM)。而实现SRM的思路之一就是设计预测函数集的某种结构使每个子集中都能取得最小的经验风险(如使训练误差为0),然后只需选择适当的子集使置信范围最小,则这个子集中使经验风险最小的函数就是最优函数。SVM方法实际上就是这种思想的具体实现,它是对SRM的近似。说了半天,终于和上次的内容连接上了。但是,为了求解SRM这个最小化问题,还得将它转化成数学形式。
SVM方法是从线性可分情况下的最优分类面提出的,它是实现统计学习理论思想的方法。什么是最优分类面呢?这要从最优分类线说起。所谓最优分类线就是要求分类线不但能将两类无错误地分开,而且要使两类的分类间隔最大。前者是保证经验风险最小(如使训练误差为0),而使分类间隔最大实际上就是使推广性的界中的置信范围最小,从而使真实风险最小。推广到高维空间,最优分类线就成为最优分类面。
那么如何构造这个最优分类面呢?方法有 2 个:平分最近点法和最大间隔法。有趣的是,这两个方法殊途同归,它们求解得到的是同一个超平面(由三个定理联合起来证明了这个结论)。由这三个定理可知,这两个方法与一个最优化问题求解方法等价,这个方法就称为“线性可分支持向量分类机”。其实,这个分类机是将最大间隔法求解最优分类面的最优化问题转化为其对偶问题,从而通过求解相对简单的对偶问题来求解原分类问题的算法。随后引入松弛变量和惩罚因子来解决非线性分类问题,并且允许一定的分类错误(软间隔),最终得到非线性软间隔的标准的 C-支持向量机(C-SVC)。其中的巧妙之处就在于把一个复杂的最优化问题的求解简化为对原有样本数据的内积运算。我们要做的就是选择适当的核函数及其参数、惩罚因子就可以了。
概括地说,SVM就是首先通过用内积函数定义的非线性变换将输入空间变换到一个高维空间,然后再在这个空间中求(广义)最优分类面的分类方法。
那么,如何通过计算机来求解这个内积运算呢?且听下回分解!下次会介绍选块算法、分解算法,并重点介绍由分解算法改进得到的最经典的 SMO 算法。
本文转自
http://www.langtech.org.cn/index.php/uid-507-action-viewspace-itemid-445
名词解释1——支持向量机:“机(machine,机器)”实际上是一个算法。在机器学习领域,常把一些算法看作是一个机器(又叫学习机器,或预测函数,或学习函数)。“支持向量”则是指训练集中的某些训练点的输入 xi 。它是一种有监督(有导师)学习方法,即已知训练点的类别,求训练点和类别之间的对应关系,以便将训练集按照类别分开,或者是预测新的训练点所对应的类别。
名词解释2——符号函数:sgn(a) = 1, a >= 0;sgn(a) = -1, a < 0.
一般地,考虑 n 维空间上的分类问题,它包含 n 个指标和 l 个样本点。记这 l 个样本点的集合为 T = {(x1,y1),...,(xl,yl)},其中 xi 是输入指标向量,或称输入,或称模式,其分量称为特征,或属性,或输入指标;yi 是输出指标向量,或称输出,i = 1,...,l。 这 l 个样本点组成的集合称为训练集,所以我们也称样本点位训练点。
对于训练集来说,有线性可分、近似线性可分和线性不可分等三种情况,这就是分类问题的三种类型。其实,无论是哪类问题,都有对应的分类机,这将在以下的内容中进行详细阐述。那么,有人可能会问,什么叫线性可分?通俗地讲,就是可以用一条或几条直线把属于不同类别的样本点分开。实际上,求解分类问题,就是要求出这条或这几条直线!那么,问题是:怎么求?这里先以二维两类线性可分的分类问题为例,做个详细的说明,然后再过渡到多类分类问题。
首先,回忆一下平面(二维)坐标系中某条直线的方程。还记得直线的一般方程
Ax + By + C = 0 (公式一)
吧,我们引入向量的概念,则该方程可以写成{x,y}与{A,B}的内积加上C等于0,即
{A,B}·{x,y} + C = 0
你还记得法向量和方向向量的概念吗?其实{A,B}就是法向量,而{B,-A}就是方向向量了。那么我们可以把直线的一般方程简化成为
w·x + b = 0 (公式二)
的形式(因为这个式子是大家最常用的嘛)。注意:(公式二)中的 x 和(公式一)中的 x 不同,前者一个二维向量,后者是一个实数。
对于两类问题,如果将某一直线两侧的样本点分为正类和负类,则用符号函数的方式推断点 x 所对应的类别 y 的决策函数如下:
y = f(x) = sgn((w·x) + b) (公式三)
根据符号函数的定义,很明显 y 的取值要么是 1 ,要么是 -1,也就是说样本点的类别只有 1 和 -1 两类。此时的分类问题是:对于任意给定的一个新的模式 x ,根据训练集推断它所对应的输出 y 是 1 还是 -1。这就是线性可分的分类问题,也是一个模式识别问题,我们要做的工作就是要求出 w 和 b 。
直接求这两个参数基本上不太可能,除了训练集我们又没有别的信息可以利用,这可如何是好?前辈们给出了一个绝妙的方法——就是所求得的预测函数 f(x) 对原有样本的分类错误率最小。那么,问题又出来了,这个错误率咋算?损失函数就是专门用来评价预测准确程度的一种度量,而且模式识别问题使用的正是“0-1损失函数”。根据我的上一篇学习体会——《从机器学习到支持向量机》http://axywestwind.bokee.com/viewdiary.14525093.html中的阐述,使(公式三)中的 f(x) 的预测误差最小的问题转化成期望误差最小、经验风险最小,最后在统计学习理论中又转化为结构风险最小(Structural Risk Minimization, SRM)。而实现SRM的思路之一就是设计预测函数集的某种结构使每个子集中都能取得最小的经验风险(如使训练误差为0),然后只需选择适当的子集使置信范围最小,则这个子集中使经验风险最小的函数就是最优函数。SVM方法实际上就是这种思想的具体实现,它是对SRM的近似。说了半天,终于和上次的内容连接上了。但是,为了求解SRM这个最小化问题,还得将它转化成数学形式。
SVM方法是从线性可分情况下的最优分类面提出的,它是实现统计学习理论思想的方法。什么是最优分类面呢?这要从最优分类线说起。所谓最优分类线就是要求分类线不但能将两类无错误地分开,而且要使两类的分类间隔最大。前者是保证经验风险最小(如使训练误差为0),而使分类间隔最大实际上就是使推广性的界中的置信范围最小,从而使真实风险最小。推广到高维空间,最优分类线就成为最优分类面。
那么如何构造这个最优分类面呢?方法有 2 个:平分最近点法和最大间隔法。有趣的是,这两个方法殊途同归,它们求解得到的是同一个超平面(由三个定理联合起来证明了这个结论)。由这三个定理可知,这两个方法与一个最优化问题求解方法等价,这个方法就称为“线性可分支持向量分类机”。其实,这个分类机是将最大间隔法求解最优分类面的最优化问题转化为其对偶问题,从而通过求解相对简单的对偶问题来求解原分类问题的算法。随后引入松弛变量和惩罚因子来解决非线性分类问题,并且允许一定的分类错误(软间隔),最终得到非线性软间隔的标准的 C-支持向量机(C-SVC)。其中的巧妙之处就在于把一个复杂的最优化问题的求解简化为对原有样本数据的内积运算。我们要做的就是选择适当的核函数及其参数、惩罚因子就可以了。
概括地说,SVM就是首先通过用内积函数定义的非线性变换将输入空间变换到一个高维空间,然后再在这个空间中求(广义)最优分类面的分类方法。
那么,如何通过计算机来求解这个内积运算呢?且听下回分解!下次会介绍选块算法、分解算法,并重点介绍由分解算法改进得到的最经典的 SMO 算法。
本文转自
http://www.langtech.org.cn/index.php/uid-507-action-viewspace-itemid-445
相关文章推荐
- 机器学习之-搞定支持向量机(SVM)【人工智能工程师--AI转型必修课】
- 转:SVM与SVR支持向量机原理学习与思考(一)
- Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札--转自CSDN
- Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札
- Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- java语言学习路线目录,从入门到资深工程师要掌握的技术
- C语言学习笔记---001C语言的介绍,编译过程原理,工具等
- 西卡编程教学 C语言教学视频(共32课更新完毕) - 『 西卡教学 』 - 西卡学院 - Powered by Pureing Labs!
- 【转】WebSphere Process Server 新手入门 - CloudSpace的个人空间 - ITPUB个人空间 - powered by X-Space
- 新一代人工智能发力:深度学习技术正在改变互联网
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 转移指令的原理02 - 零基础入门学习汇编语言44
- 学习笔记4:《大型网站技术架构 核心原理与案例分析》之 大型网站核心架构要素
- 学习笔记5:《大型网站技术架构 核心原理与案例分析》之 瞬时响应:网站的高性能架构
- 学习web开发,理解HTML,XHTML,XML,CSS,JS等技术的关系后,眼界会更宽(publish by sunwei)
- 转移指令的原理03 - 零基础入门学习汇编语言45
- 学习笔记2:《大型网站技术架构 核心原理与案例分析》之 大型网站架构演化
- 就C语言的指针、链表的原理和各类操作撰写一篇技术博客,说说自己学习C语言指针和链表的体会,并将学生信息管理系统进行修改,使能完成其他的功能,并撰写体会,附加源代码。
- 转移指令的原理05 - 零基础入门学习汇编语言47