支持向量机SVM 初识
虽然已经学习了神经网络和深度学习并在几个项目之中加以运用了,但在斯坦福公开课上听吴恩达老师说他(在当时)更喜欢使用SVM,而很少使用神经网络来解决问题,因此来学习一下SVM的种种。
先解释一些概念吧:
矩阵二范数:
||w|| = sqrt(w'w)
跟室友探讨了一下,觉得对于n维列向量来说,二范数的意义是它到零点的距离。
支持向量机——即最优间隔分类器:
最优间隔分类器的最终目标就是让边界与数据点之间的间隔(距离)最大,间隔的标度有两种:
1. 函数间隔 γ^(i) = y(i) * (w'x + b) , γ^ = min(γ^(i))
2. 几何间隔 γ (i) = y(i) * (w'x/||w|| + b/||w||) , γ = min(γ (i))
如果给定限定条件||w|| == 1,则两种间隔等价。
对于m个样本计算出的m个单点间隔,取最小值做为间隔,即使间隔的最小值最大。
但是, 这样的描述并不能将问题转换为一个凸问题,不好优化求解,因此转换:
固定γ^ = 1,即要求满足 y(i) * (w'x + b) == 1 且同时使得 ||w|| 的值最小的问题,像不像线性规划?
将问题转化之后,我们便可以使用拉格朗日乘子法来求解这类带约束的规划问题。(细节略去)
以上的方法是针对可以线性分成两类的数据来说的,但如果数据不能完美的分成两类,或是无法采用线性方式来分割改怎么办呢?
这就要引入卷积核Kernel的概念。
卷积核:K(x, z) = <Φ(x), Φ(z)> , 将<x, z>转换为<Φ(x), Φ(z)>,其中Φ(x)式x向量在高维的投影 对应的函数。
简单来说,通过引入卷积核,将线性SVM中的内积运算( <x, z> )全都替换成 K(x, z) 的卷积核运算( <Φ(x), Φ(z)> ),便可以将向量投影到更高维度,类似于把空间扭曲、折叠,这样,在高维度中,便能够找到线性的分类方法了。
常用的卷积核:
高斯核 K(x, z) = -||x-z||^2 / (2σ^2) 维度:无限维
多项式核 K(x, z) = (x'z + c) ^ d 维度:C(N+d, d)
等等。
在对SVM做了以上改进之后,我们便要回归本源——如何求解那个类似线性规划的问题?
使用已知条件以及KKT条件等,我们可以采用坐标上升法的变种, SMO,来更快速的求得最后解——每次固定n-2个参数,只调整其中两个,发现是一个二次函数,直接使用求根公式即可,经过多次迭代,所有参数都会接近极值。在此问题中,这种方法比梯度下降法或是牛顿法来的更快。
软间隔SVM:减少特殊坏点对于分类结果的影响
支持向量机SVM 初识的更多相关文章
- 【IUML】支持向量机SVM
从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...
- 机器学习:Python中如何使用支持向量机(SVM)算法
(简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...
- 以图像分割为例浅谈支持向量机(SVM)
1. 什么是支持向量机? 在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...
- 机器学习算法 - 支持向量机SVM
在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- 支持向量机SVM——专治线性不可分
SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...
- 一步步教你轻松学支持向量机SVM算法之案例篇2
一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- 一步步教你轻松学支持向量机SVM算法之理论篇1
一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- OpenCV 学习笔记 07 支持向量机SVM(flag)
1 SVM 基本概念 本章节主要从文字层面来概括性理解 SVM. 支持向量机(support vector machine,简SVM)是二类分类模型. 在机器学习中,它在分类与回归分析中分析数据的监督 ...
随机推荐
- Docker 常用命令——镜像
Docker 常用命令 帮助命令 docker version --版本信息 docker info --详细信息 docker --help --帮助 镜像命令 1.doc ...
- throws、throw和try catch
在学习代理模式的时候,编写动态生成代理类.java文件时,用try{}catch(){}捕获异常发现catch(Exception e)报错,得换成catch(Throwable e),然后又查了查两 ...
- restframework序列化使用方法
serializers.Serializer class Userinfoserializers(serializers.Serializer): username = serializers.Cha ...
- Zeta Linux上进行WiFi Direct调试
1)叫醒p2p网卡 ifconfig p2p0 up 2)启动wpa_supplicant服务 wpa_supplicant -Dnl80211 -ip2p0 -c /etc/wpa_suppli ...
- web安全入门笔记
0x01 前言 这正邪两字,原本难分. 正派弟子若是心术不正,便是邪徒. 邪派中人只要一心向善,便是正人君子. 0x01 信息安全的定义 信息安全,意为保护信息及信息系统免受未经授权的进入.使用.披露 ...
- PTA基础编程题目集6-7 统计某类完全平方数 (函数题)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ( const int N ); 其中 ...
- 理解 ajax、fetch和axios
背景 ajax fetch.axios 优缺点 ajax基于jquery,引入时需要引入庞大的jquery库,不符合当下前端框架,于是fetch替代了ajax 由于fetch是比较底层,需要我们再次封 ...
- go语言的cron包的简单使用
3.cron举例说明 每隔5秒执行一次:*/5 * * * * ? 每隔1分钟执行一次:0 */1 * * * ? 每天23点执行一次:0 0 ...
- cygwin下安装NCL
1.安装cygwin 到cygwin官网https://www.cygwin.com/下载安装程序,setup-x86.exe,注意能下载这个安装程序, setup-x86_64.exe64位不支 ...
- 20155229 2016-2017-2 《Java程序设计》第十周学习总结
20155229 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络 网络分为局域网.广域网.城域网 一次HTTP请求包含3个部分:①方法--统一资源标识符 ...