神经网络与机器学习 笔记—支持向量机(SVM)(上)
支持向量机(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的欧几里得范数获得的。
然后是基本上分四步类求这个超平面:
- 寻找最优超平面问题,以这样一个陈述为开始:即在原始权重空间的带约束的优化问题。
- 对于上述问题建立拉格朗日函数。[拉格朗日函数可以用来求目标函数约束条件下的极值]
- 推到出极值最优化条件。
- 问题的最后阶段是在对偶空间解决带拉格朗日乘子的优化问题。
神经网络与机器学习 笔记—支持向量机(SVM)(上)的更多相关文章
- Python机器学习笔记:SVM(1)——SVM概述
前言 整理SVM(support vector machine)的笔记是一个非常麻烦的事情,一方面这个东西本来就不好理解,要深入学习需要花费大量的时间和精力,另一方面我本身也是个初学者,整理起来难免思 ...
- 神经网络与机器学习 笔记—LMS(最小均方算法)和学习率退火
神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制 ...
- 机器学习算法 - 支持向量机SVM
在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- python机器学习之支持向量机SVM
支持向量机SVM(Support Vector Machine) 关注公众号"轻松学编程"了解更多. [关键词]支持向量,最大几何间隔,拉格朗日乘子法 一.支持向量机的原理 Sup ...
- 【机器学习】支持向量机SVM
关于支持向量机SVM,这里也只是简单地作个要点梳理,尤其是要注意的是SVM的SMO优化算法.核函数的选择以及参数调整.在此不作过多阐述,单从应用层面来讲,重点在于如何使用libsvm,但对其原理算法要 ...
- 机器学习(十一) 支持向量机 SVM(上)
一.什么是支撑向量机SVM (Support Vector Machine) SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法.在机器学习领域,是一个有监督 ...
- 机器学习笔记——支持向量机 (SVM)
声明: 机器学习系列主要记录自己学习机器学习算法过程中的一些参考和总结,其中有部分内容是借鉴参考书籍和参考博客的. 目录: 什么支持向量机(SVM) SVM中必须知道的概念 SVM实现过程 SVM核心 ...
- 机器学习-5 支持向量机SVM
一.概念和背景 SVM:Support Vector Machine 支持向量机. 最早是由Vladimir N. Vapnik和Alexey Ya. Chervonenkis在1963年提出的. 目 ...
随机推荐
- windows跳转端口
//将客户机端口内网33306转发到外网,在通过本地连接ssh -L 3306:10.0.0.208:3306 ttx@180.180.180.182--通过git bash执行命令--10.0.0. ...
- rest framework Genericview
通用视图 Django的通用视图...被开发为普通使用模式的快捷方式......他们采取某些共同的习惯和模式的发展观和抽象,从而使您可以快速地将数据写入的共同看法,而不必重复自己发现的. - Djan ...
- 常见 git 需求整理(持续更新中)
首发于 语雀文档 突然感觉自己对 git 还是挺熟悉的,因为团队里新来的七八号应届生来问我 git 问题,基本没有答不上的情况,但为了能更好地对知识进行整理,还是记录一下为好. (希望能)持续更新.. ...
- 选择 FreeBSD 而不是 Linux 的技术性原因2
ZFSZFS 文件系统是 FreeBSD 上的一等公民.这不仅意味着可以在 ZFS 上安装根目录,安装程序也支持这一点,而且还意味着很多基础系统工具都已经紧密地集成或构建了对 ZFS 的支持.在 Fr ...
- 任务4 PHP扩展模块安装
/usr/local/php/bin/php -m //如何查看PHP加载了哪些模块 #cd /usr/local/src #wget http://pecl.php.net/get/redis-2 ...
- springMVC @InitBinder注解
springMVC @InitBinder注解.setFieldDefaultPrefix则可以在表单用如user.name进行传递属性
- python flake8 代码扫描
一.介绍 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,flake8是下面三个工具的封装: PyFlakes Pep8 NedBatchelder's McCab ...
- PTA 统计二叉树度为2的结点个数
6-4 统计二叉树度为2的结点个数 (11 分) 本题要求实现一个函数,可统计二叉树中度为2的结点个数. 函数接口定义: int NodeCount ( BiTree T); T是二叉树树根指针, ...
- HashMap 这套八股,不得背个十来遍?
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 「CS-Wiki」Gitee ...
- python函数之闭包函数与无参装饰器
一.global与nonlocal #global x = 1 def f1(): global x # 声明此处是全部变量x x = 2 print(x) f1() # 调用f1后,修改了全局变量x ...