转载作者:liangdas

引言:

1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于人工神经网络,所以在这之后,人们将SVM应用于各个领域。大量使用SVM模型的论文不断涌现,包括国内和国外。

但是,直到现在,很少能见到一个能对SVM的原理准确,详细,通俗,严谨阐述的论文或者资料,所以决定查阅很多的资料,结合自己的思考和理解,来写一篇关于SVM的系列文章。

线性可分问题:

在分类问题中,最简单的分类就是二分类问题,而且这个二分类问题是一个线性可分问题。那么对于一个线性二分类问题,它的目标函数是什么呢?确定目标函数之后,我们又用什么方法来求解呢?

在一维空间,也就是一个坐标轴上面,要分开两个可以分开的点集合,我们只需要找到一个点,如图1:

图1 一维线性可分示意图

  在二维空间中,要分开两个线性可分的点集合,我们需要找到一条分类直线即可,如图2:

图2 二维线性可分示意图

  在三维空间中,要分开两个线性可分的点集合,我们需要找到一个分类面:如图3:

图3 三维线性可分示意图

  在n维空间中,要分开两个线性可分的点集合,我们需要找到一个超平面(Hyper Plane)。

为了直观,我们以上面二维空间为例子来分析:在图2中分布着两类点:淡蓝色和黑色的点,分别代表着不同的两个类别,显然,我们可以找到一条直线来把这两类点分开,高中的时候,常见的直线方程表达式是y=ax+b,我们现在用向量来表示,就是:,把向量(a,-1)用向量符号w来表示,维数向量(x,y)用向量符号x(此时的x是一个向量)来表示,那么直线方程就变成了wx + b = 0。

目标函数:

再次观察图2,可以知道,在这个二维平面中,可以把两类点的分开的直线有很多条,如图4所示,那么这些直线中,哪一条才是最好的呢?也就是如何选择出一条最好的直线呢?

图4 多条分类直线

  在图4中,我们先看淡蓝色的点,如果这些点到分类直线的距离越大,分类直线也就越远离蓝色的点,那么再来一个新的点,如果这个点是依照淡蓝色点集合的特性产生的(也就是它不是一个相对于蓝色点集合很奇异的点),那么这个点也很可能和蓝色的点集合一样,分布在直线的同一侧。分布在同一侧,表明它和蓝色集合点属于同一个类别。用同样的思想,图4中,对于黑色的集合点,这条分类直线离它们的距离也要越远越好。所以找最优分类线,就是要找到这条一条直线,使它到两个类别点的距离越大越好。

回忆一下高中所学的点到直线的距离公式:直线(一般式):Ax+By+C=0另外一个点的坐标(x0, y0),那么这点到这直线的距离就是:

  那么,对于直线wx+b=0的形式,如果有一个点x,那么它到直线的距离公式就是,把向量写成二范数的形式,即是:

  所以上面的二维线性可分问题的目标函数就可以抽象成如下的数学表达式:

目标函数的简化:

对于一个待分类类别,为了自己的类别能准确地分类,都希望分类直线到自己的距离大些,当有两类的时候,就会形成相互竞争,最后的竞争结果就是让这条分类直线,到两个类别的距离相等,在生活中,通常也是这样达到一种平衡状态的。

如图5,我们作两条直线,和分类直线平行,让这两条直线分别经过下面蓝色和黑色集合的边界,同时,满足这两条直线到中间分类直线的距离相等,那么,我们可以假定这两条直线方程分别是wx+b=c, wx+b=-c。

图5 两类别到分类直线的距离相等

用两条平行直线的距离计算公式, 那么,两个类别集合到分类直线的最近距离,这个公式,其实和上面点到直线的距离公式是一样的。

对于一条直线,wx+b=c,我们相应的成比例的缩小他们的系数,如变成,这条直线和原来的直线还是同一条直线。现在把它变成,新的直线还是和以前直线是同一条直线,也就是说,对于直线wx+b=c,我们总可以找到另外的一条新的 w1=w/c, b1=b/c,使w1*x+b1=1, 而且这两条直线其实表达的是同一条直线,这样的话,上面的图5可以变成如下的图6:

图6 两类别到分类直线的距离相等

  从图6中,结合我们要寻找的最优分类直线,是到两类类别点集合的距离最大的直线的思想,我们可以抽象出此时的目标函数:

这样,这个目标函数看起来就比原来简洁多了。

目标函数的约束条件:

在图6中,对蓝色样本点而言,不在w1*x+b1=1直线上的点,一定是在直线上面的点,它们满足w1*x+b1>1,所以对所有的蓝色样本点而言,它们都满足w1*x+b1>=1;同理,对所有黑色的样本点,都是满足w1*x+b1<=-1。这两个条件是我们求解的限制条件,也就是我们寻找上面的目标函数的时候,必须满足上面的两个不等式约束。

                      满足条件:

观察上面的不等式条件表达式,是不是有一种想把两个式子合并成一个式子的冲动?其实,上面蓝色点对应的不等式,我们在不等式两边同时乘以一个y=1;同理,黑色点对应的不等式,在式子两边同时乘以一个y=-1, 那么上面的两个式子可以变成

但是,为什么可以在一个不等式的两边乘以一个1,而另外一个乘以-1呢?我们来看蓝色点对应的不等式,式子左边是样本点的维度向量x的表达式,对于一些训练样本点,它们还有一个已知的类别标记量label,这里我们把它叫做y,这样的话,对蓝色点的y值,我们人为将其定为1,而对黑色点的y值,我们将其定为-1,所以,对上面的两个不等式,分别在不等式的两边乘以类别值y,我们就可以自然将两个不等式合并成上面的那一个不等式了。这也是为什么我们在生成SVM训练样本的时候,将两个类别分别定义成1和-1的原因!

到这里,我们目标函数可以写成:

这样的一个目标函数是一个带不等式约束条件的优化问题,它怎么来求解呢?后面一章节来继续讲解这个问题。

SVM清晰讲解——线性可分问题的更多相关文章

  1. 支持向量机SVM——专治线性不可分

    SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...

  2. SVM之解决线性不可分

    SVM之问题形式化 SVM之对偶问题 SVM之核函数 >>>SVM之解决线性不可分 写在SVM之前——凸优化与对偶问题 上一篇SVM之核函数介绍了通过计算样本核函数,实际上将样本映射 ...

  3. SVM明确的解释1__ 线性可分问题

    笔者:liangdas 出处:简单点儿,通俗点儿,机器学习    http://blog.csdn.net/liangdas/article/details/44251469 引言: 1995年Cor ...

  4. 线性可分SVM中线性规划问题的化简

    在网上找了许多关于线性可分SVM化简的过程,但似乎都不是很详细,所以凭借自己的理解去详解了一下. 线性可分SVM的目标是求得一个超平面(其实就是求w和b),在其在对目标样本的划分正确的基础上,使得到该 ...

  5. 线性可分支持向量机与软间隔最大化--SVM(2)

    线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...

  6. 线性可分支持向量机--SVM(1)

    线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...

  7. svm 之 线性可分支持向量机

    定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...

  8. 统计学习:线性可分支持向量机(SVM)

    模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...

  9. SVM学习笔记-线性支撑向量机

    对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程. 从VC bound的角度来说,上述三条线的复杂度是一样的 Eout(w)≤Ein0+Ω(H)dvc= ...

随机推荐

  1. xdoj-1243 (费马平方和问题)

    1243: CKJ老师爱数学 时间限制: 1 Sec  内存限制: 128 MB提交: 56  解决: 13[提交][状态][讨论版] 题目描述 众所周知,CKJ老师非常热爱数学,他对于方程组的有自己 ...

  2. 51Nod 1135:元根(数论)

    1135 原根  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m) ...

  3. FZU软工第四次作业-团队介绍

    目录 团队展示----旅法师 团队成员 队名----旅法师 拟作的团队项目描述 队员风采 团队首次合照 团队的特色描述 团队展示----旅法师 本次作业链接 团队成员 031602305 陈玮 031 ...

  4. C++学习(四)(C语言部分)之 二进制

    二进制学习时的笔记(其实也没什么用,留着给自己看的) 二进制简介只有 0 1 优点:1.二进制状态简单2.可靠性.稳定性高3.运算规则简单,简化设计4.通用性强 二进制计算正数二进制十进制转二进制(除 ...

  5. 直面Java 第003期

    . 问:什么是平台无关性,Java是如何做到平台无关的? 解: 大家说的都很对,看来大家对这个概念掌握的很可以.我简单总结一下. 跨平台指的是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行 ...

  6. day08 MapReduce

    PS: HDFS对于MapReduce来说,HDFS就是一个就是一个客户端. PS: 离线就是 写sql,sparkh还是写sql 1. MAPREDUCE原理篇(1) Mapreduce是一个分布式 ...

  7. Compoxure example 应用说明

    Compoxure 官方提供了一个demo应用,包含了cache,error,layout 等功能 环境准备 demo 使用docker-compose 运行 clone 代码 git clone h ...

  8. BackgroundWorker Class Sample for Beginners

    Download source - 27.27 KB Introduction This article presents a novice .NET developer to develop a m ...

  9. Revit 开发将自己的窗口设置为Revit窗口

    在Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,To ...

  10. 阿里云学习笔记之Java Web环境搭建

    1. 下载JDK7 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521 ...