搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 机器学习算法与自然语言处理 > 【直观详解】支持向量机SVM

【直观详解】支持向量机SVM

机器学习算法与自然语言处理 2017-11-29


【阅读时间】

    13min - 19min


【内容简介】

     详解解读什么是支持向量机,如何解支持向量以及涉及的拉普拉斯乘子法,还有核方法的解读。


1
什么是 支持向量机-SVM


支持向量机-SVM(Support Vector Machine)从本质来说是一种:用一条线(方程)分类两种事物。

有了直观的感知,在定义这一节在做一些深入的思考,分解名词(Support Vector Machine)并尝试解释:

【直观详解】支持向量机SVM


公式中每一个符号的含义在后文有说明

2
 如何求解支持向量机


对于我们需要求解的这个超平面(直线)来说,我们知道

  • 它离两边一样远(待分类的两个部分的样本点)

  • 最近的距离就是到支持向量中的点的距离

根据这两点,抽象SVM的直接表达(Directly Representation)

【直观详解】支持向量机SVM

其实这个公式是一点也不抽象,需要更进一步的用符号来表达。

我们知道在准确描述世界运行的规律这件事上,数学比文字要准确并且无歧义的多,文字(例子)直观啰嗦,数学(公式)准确简介。

         硬间隔         


【直观详解】支持向量机SVM

SVM支持向量机


注:公式中加粗或者带有向量箭头的都表达一个向量

【直观详解】支持向量机SVM

【直观详解】支持向量机SVM


注:s.t. :subject to 表示约束条件,表达的意思等价于:为了使得所有样本数据都在间隔区(两条虚线)以外。

为了解(3)式,需要用到拉格朗日乘子法(Method of lagrange multiplier),它是用来求解在约束条件目标函数的极值的。

注:以下解算过程中很多地方推导过程只写必要过程及结论


【直观详解】支持向量机SVM

【直观详解】支持向量机SVM


         软间隔         

已经说明了如何求得方程,以上的推导形式都是建立在样本数据线性可分的基础上,如果样本数据你中有我我中有你(线性不可分),应该如何处理呢?这里就需要引入软间隔(Soft Margin),意味着,允许支持向量机在一定程度上出错。

【直观详解】支持向量机SVM

【直观详解】支持向量机SVM

三种常见损失函数如下图

【直观详解】支持向量机SVM


【直观详解】支持向量机SVM

(8)式就是常见的软间隔支持向量机,其中,每一个样本都有一个对应的松弛变量,用以表征该样本不满足约束的程度,求解的方法同理硬间隔支持向量机。

3
 支持向量机扩展


         核方法         

以上我们求解的支持向量机都是在线性情况下的,那么非线性情况下如何处理?这里就引入:核方法

对于这样的问题,可以将样本从原始空间映射到一个更高为的特征空间,使得样本在这个特征空间内线性可分

【直观详解】支持向量机SVM

【直观详解】支持向量机SVM


         多类问题         

多类问题可以使用两两做支持向量机,再由所有的支持向量机投票选出这个类别的归属,被称为one-versus-one approace


推荐阅读:


         欢迎加入交流群交流学习       


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【直观详解】支持向量机SVM》的版权归原作者「机器学习算法与自然语言处理」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注机器学习算法与自然语言处理微信公众号

机器学习算法与自然语言处理微信公众号:yizhennotes

机器学习算法与自然语言处理

手机扫描上方二维码即可关注机器学习算法与自然语言处理微信公众号

机器学习算法与自然语言处理最新文章

精品公众号随机推荐