支持向量机(SVM)的主要思想:

给定训练样本,支持向量机建立一个超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化。

线性可分模式的最优超平面

训练样本{(xi,di)}^N i=1 ,其中xi是输入模式的第i个样例,di是对应的期望相应(目标输出)。首先假设由子集di=+1代表的模式(类)和di=-1代表的模式是“线性可分的”。用于分离的产平面形式的决策曲面方程是:

W^T X + b = 0

其中X是输入向量,W是可调的权值向量,b是偏置。因此可以写成:

W^T X + b  >= 0  当di=+1

W^T X + b   < 0  当di=-1

在这里做了模式线性可分的假设,以便在相当简单的环境里解释支持向量机背后的基本思想;对于一个给定的权值向量W和偏置b,由式W^T X + b = 0定义的超平面和最近的数据点之间的间隔被称为分离边缘,用ρ表示。支持向量机的目标是找到一个特殊的超平面,这个超平面的分离边缘ρ最大。在这种条件下,决策曲面称为最优超平面

下面是二维空间中最优超平面的集合结构。

然后是进行处理和转化一下:

二维情况下点到最优超平面的袋鼠距离的几何解释:

满足

第一行或者第二行等号情况的特殊数据点(xi,di)称为支持向量,“支持向量机”因此得名。其他的训练样本完全不重要。由于支持向量的特点,这些向量在这类机器学习运行中起着主导作用。支持向量是最靠近决策面的数据点,这样的数据点是最难分类的。因此,他们和决策面的最优位置直接相关。同时各种推导之后会得到这么一个公式:

说明最大化两个类之间的分离边缘等价于最小化权值向量w的欧几里得范数。

最优超平面是唯一的,意味着最优权值向量w0提供正反例之间最大可能的分离。这个优化条件是通过最小化权值向量w的欧几里得范数获得的。

然后是基本上分四步类求这个超平面:

  1. 寻找最优超平面问题,以这样一个陈述为开始:即在原始权重空间的带约束的优化问题。
  2. 对于上述问题建立拉格朗日函数。[拉格朗日函数可以用来求目标函数约束条件下的极值]
  3. 推到出极值最优化条件。
  4. 问题的最后阶段是在对偶空间解决带拉格朗日乘子的优化问题。

神经网络与机器学习 笔记—支持向量机(SVM)(上)的更多相关文章

  1. Python机器学习笔记:SVM(1)——SVM概述

    前言 整理SVM(support vector machine)的笔记是一个非常麻烦的事情,一方面这个东西本来就不好理解,要深入学习需要花费大量的时间和精力,另一方面我本身也是个初学者,整理起来难免思 ...

  2. 神经网络与机器学习 笔记—LMS(最小均方算法)和学习率退火

    神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制 ...

  3. 机器学习算法 - 支持向量机SVM

    在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...

  4. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  5. python机器学习之支持向量机SVM

    支持向量机SVM(Support Vector Machine) 关注公众号"轻松学编程"了解更多. [关键词]支持向量,最大几何间隔,拉格朗日乘子法 一.支持向量机的原理 Sup ...

  6. 【机器学习】支持向量机SVM

    关于支持向量机SVM,这里也只是简单地作个要点梳理,尤其是要注意的是SVM的SMO优化算法.核函数的选择以及参数调整.在此不作过多阐述,单从应用层面来讲,重点在于如何使用libsvm,但对其原理算法要 ...

  7. 机器学习(十一) 支持向量机 SVM(上)

    一.什么是支撑向量机SVM (Support Vector Machine) SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法.在机器学习领域,是一个有监督 ...

  8. 机器学习笔记——支持向量机 (SVM)

    声明: 机器学习系列主要记录自己学习机器学习算法过程中的一些参考和总结,其中有部分内容是借鉴参考书籍和参考博客的. 目录: 什么支持向量机(SVM) SVM中必须知道的概念 SVM实现过程 SVM核心 ...

  9. 机器学习-5 支持向量机SVM

    一.概念和背景 SVM:Support Vector Machine 支持向量机. 最早是由Vladimir N. Vapnik和Alexey Ya. Chervonenkis在1963年提出的. 目 ...

随机推荐

  1. teprunner测试平台部署到Linux系统Docker

    本文是一篇过渡,在进行用例管理模块开发之前,有必要把入门篇开发完成的代码部署到Linux系统Docker中,把部署流程走一遍,这个过程对后端设计有决定性影响. 本地运行 通过在Vue项目执行npm r ...

  2. JS逆向-抠代码的第一天【手把手学会抠代码】

    首先声明,本人经过无数次摸爬滚打及翻阅各类资料,理论知识极其丰富,但是抠代码怎么都抠不会. 无奈之下,只能承认:这个活,需要熟练度. 本文仅对部分参数进行解析,有需要调用,请自行根据现实情况调整. 第 ...

  3. linux云服务搭建Minecraft服务器

    1 准备工作 以下内容全部要在root用户内完成 1.1 安装文件传输工具 为了方便传文件到服务器上,这里先装一个远程传输工具. yum -y install lrzsz 1.2 安装java Min ...

  4. 深入理解Java并发框架AQS系列(一):线程

    深入理解Java并发框架AQS系列(一):线程 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 一.概述 1.1.前言 重剑无锋,大巧不工 读j.u.c包下的源码,永远无法绕开的经典 ...

  5. 2019 GDUT Rating Contest I : Problem G. Back and Forth

    题面: G. Back and Forth Input file: standard input Output file: standard output Time limit: 1 second Mem ...

  6. gtk中构件添加背景图

    在gtk中我们总想要去给构件添加背景图,具体函数代码如下 void chang_background(GtkWidget *widget, int w, int h, const gcha r *pa ...

  7. 仿String()构造器函数 【总结】

    需求 实现以下方法: 控制台结果: 需求分析: 首先确定new调用的this和什么对象绑定,如果跟默认返回的对象绑定肯定做不到 [ ] 这样的访问,所以要在构造器内部返回一个包装过的数组 1.leng ...

  8. tips 【总结】

    需求 移入a标签把对应的详情显示出来并且根据位置判断,当前详情是否超出父级可视区范围,如果超出就定位的距离方向应该正好在父级可视区范围内 需求分析: 需要用到: offsetLeft   获取外边框到 ...

  9. Net Core 重要的技术点

    Net Core 重要的技术点 1.中间件概念 Asp.Net Core作为控制台应用程序启动,在Program的Main方法是入口,通过调用CreateWebHostBuilder创建WebHost ...

  10. 【安全研究】Domain fronting域名前置网络攻击技术

    出品|MS08067实验室(www.ms08067.com) 千里百科 Domain Fronting基于HTTPS通用规避技术,也被称为域前端网络攻击技术.这是一种用来隐藏Metasploit,Co ...