【SVM】简单介绍(一)

1、结构风险最小化

我们想要在未知的数据上得到低的错误率,这叫做structural risk minimization;相对的,训练误差叫做empirical risk minimization

要是我们能有这样一个式子就好了:
Test error rate <=train error rate +f(N,h,p)\text { Test error rate }<=\text { train error rate }+f(N, h, p)  Test error rate <= train error rate +f(N,h,p)
其中,
N=\mathrm{N}=N= size of training set,
h=\mathrm{h}=h= measure of the model complexity,
p=p=p= the probability that this bound fails

我们需要一个ppp来限制最差的测试集的情况。然后我们就能通过选择模型复杂度hhh来最小化测试误差率的上界。

2、VC维(Vapnik-Chervonenkis dimension)

VC维就是衡量模型复杂度的一个重要概念

选择nnn个样本点,我们随机的给它们分配标签,如果我们的模型都能将它们分开,则样本的VC维>=n>=n>=n,我们不断地增大nnn,直到模型不能分开为止。模型能分开的最大的nnn值就是模型的VC维。
在这里插入图片描述
考虑一条二维空间的一条直线的复杂度。如上图所示,对于三个数据点,无论我们如何分配标签,直线都能很好的将样本正确分类。但是对于四个数据点,直线无法处理异或问题。因此,二维空间中一条直线的VC维是3.

二维空间中的超平面的VC维是3。更一般的,k维空间的超平面的VC维是k+1。

超平面的VC维与参数的数目相等。但这只是个巧合,事实上,模型的参数和模型的复杂度并没有必然的联系。例如,一个正弦曲线的VC维是正无穷大,但是它的参数只有3个。
f(x)=asin⁡(bx+c)f(x)=a \sin (b x+c) f(x)=asin(bx+c)
在这里插入图片描述

最近邻分类器的VC维是无穷大的,因为无论你有多少数据点,你都能在训练集上得到完美的分类器。而当1-NN →K-NN \text { 1-NN } \rightarrow \text { K-NN } 1-NN  K-NN ,相当于减小了VC维。

一般来说,VC维越高,模型的分类能力更强,更flexible。但是VC维更多的是作为一个概念,实际上很难去计算一个模型的VC维。



回到刚才,经过前人推导,我们得到了一个测试集误差的上界如下:
Etest ≤Etrain +(h+hlog⁡(2N/h)−log⁡(p/4)N)12E_{\text {test }} \leq E_{\text {train }}+\left(\frac{h+h \log (2 N / h)-\log (p / 4)}{N}\right)^{\frac{1}{2}} Etest Etrain +(Nh+hlog(2N/h)log(p/4))21
N=\mathrm{N}=N= size of training set
h=VCh=V Ch=VC dimension of the model class
p=p=p= upper bound on probability that this bound fails

从上式看,Good generalization →large Nand small h\text { Good generalization } \rightarrow \text { large } N \text { and small } h  Good generalization  large N and small h
这是符合我们的直觉的。上面这个式子的推导很复杂,但是在实际中也没啥用,因为它给的上界太松了,一个很松的上界又有什么意义呢。

3、Hard-Margin SVM

在这里插入图片描述
对于上面这个两类分类问题,我们用直线进行分类,会发现有好多种分类方法。而SVM所选择的那条直线,是将Margin 最大化的直线。
在这里插入图片描述

为什么要最大化Margin?
  1. 直觉上感觉这最安全
  2. 实际工作中确实不错
  3. 当数据有小波动时错分的概率小一些
  4. 模型只与support vector有关
    在这里插入图片描述
    点到直线的距离:
    d(x)=∣x⋅w+b∣∥w∥22=∣x⋅w+b∣∑i=1dwi2d(\mathbf{x})=\frac{|\mathbf{x} \cdot \mathbf{w}+b|}{\sqrt{\|\mathbf{w}\|_2^2}}=\frac{|\mathbf{x} \cdot \mathbf{w}+b|}{\sqrt{\sum_{i=1}^d w_i^2}} d(x)=w22xw+b=i=1dwi2xw+b
    定义Margin:
    margin⁡≡arg⁡min⁡x∈Dd(x)=arg⁡min⁡x∈D∣x⋅w+b∣∑i=1dwi2\operatorname{margin} \equiv \underset{\mathbf{x} \in D}{\arg \min } \,d(\mathbf{x})=\underset{\mathbf{x} \in D}{\arg \min } \frac{|\mathbf{x} \cdot \mathbf{w}+b|}{\sqrt{\sum_{i=1}^d w_i^2}} marginxDargmind(x)=xDargmini=1dwi2xw+b
    所以我们就要考虑如何来最大化这个Margin了。

那么我们的问题就可以建模为:
argmax⁡w,bmargin⁡(w,b,D)=arg⁡max⁡w,barg⁡min⁡xi∈Dd(xi)=arg⁡max⁡w,barg⁡min⁡xi∈D∣b+xi⋅w∣∑i=1dwi2\begin{aligned} & \underset{\mathbf{w}, b}{\operatorname{argmax}} \operatorname{margin} (\mathbf{w}, b, D) \\ & =\underset{\mathbf{w}, b}{\arg\max}\, \underset{\mathbf{x}_i \in D}{\arg \min } \,d\left(\mathbf{x}_i\right) \\ & =\underset{\mathbf{w}, b}{\arg\max} \,\underset{\mathbf{x}_i \in D}{\arg \min } \frac{\left|b+\mathbf{x}_i \cdot \mathbf{w}\right|}{\sqrt{\sum_{i=1}^d w_i^2}} \end{aligned} w,bargmaxmargin(w,b,D)=w,bargmaxxiDargmind(xi)=w,bargmaxxiDargmini=1dwi2b+xiw
如果只是这样的话,肯定是不行的,想像一下,一条直线离两类都非常远,也是符合上式的,因此需要附加条件,也就是直线能正确分类。
WXi+b≥0iff yi=1WXi+b≤0iff yi=−1yi(WXi+b)≥0\begin{gathered} \mathbf{W X _ { i }}+b \geq 0 \text { iff } y_i=1 \\ \mathbf{W X _ { i }}+b \leq 0 \text { iff } y_i=-1 \\ y_i\left(\mathbf{W X _ { i }}+b\right) \geq 0 \end{gathered} WXi+b0 iff yi=1WXi+b0 iff yi=1yi(WXi+b)0
也就是
argmax⁡w,barg⁡min⁡xi∈D∣b+xi⋅w∣∑i=1dwi2subject to ∀xi∈D:yi(xi⋅w+b)≥0\begin{aligned} & \underset{\mathbf{w}, b}{\operatorname{argmax}} \,\underset{\mathbf{x}_i \in D}{\arg \min } \frac{\left|b+\mathbf{x}_i \cdot \mathbf{w}\right|}{\sqrt{\sum_{i=1}^d w_i^2}} \\ & \text { subject to } \forall \mathbf{x}_i \in D: y_i\left(\mathbf{x}_i \cdot \mathbf{w}+b\right) \geq 0 \end{aligned} w,bargmaxxiDargmini=1dwi2b+xiw subject to xiD:yi(xiw+b)0
这边对一个限制条件进行强化,假设
∀xi∈D:∣b+xi⋅w∣≥1\forall \mathbf{x}_i \in D:\left|b+\mathbf{x}_i \cdot \mathbf{w}\right| \geq 1 xiD:b+xiw1
因为咱们是对w进行优化,所以本质上其实是一样的,就是一个缩放的问题。

那么对里层的优化,有:
arg⁡min⁡xi∈D∣b+xi⋅w∣∑i=1dwi2≥arg⁡min⁡xi∈D1∑i=1dwi2=1∑i=1dwi2\underset{\mathbf{x}_i \in D}{\arg \min } \frac{\left|b+\mathbf{x}_i \cdot \mathbf{w}\right|}{\sqrt{\sum_{i=1}^d w_i^2}} \geq \underset{\mathbf{x}_i \in D}{\arg \min } \frac{1}{\sqrt{\sum_{i=1}^d w_i^2}}=\frac{1}{\sqrt{\sum_{i=1}^d w_i^2}} xiDargmini=1dwi2b+xiwxiDargmini=1dwi21=i=1dwi21

对于外层优化,只需最大化里层的下界就行,于是问题化为:
argmin⁡w,b∑i=1dwi2subject to ∀xi∈D:yi(xi⋅w+b)≥1\begin{aligned} & \underset{\mathbf{w}, b}{\operatorname{argmin}} \sum_{i=1}^d w_i^2 \\ & \text { subject to } \forall \mathbf{x}_i \in D: y_i\left(\mathbf{x}_i \cdot \mathbf{w}+b\right) \geq 1 \end{aligned} w,bargmini=1dwi2 subject to xiD:yi(xiw+b)1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

L8_2

4.留下pid为12345的那个sh进程&#xff0c;杀死系统中所有其它sh进程 ps –ef|grep sh |awk ‘{if($2!”12345”) {print “kill “$2}}’ >killpid.sh cat killpid.sh ./killpid.sh 5. 根据以下日志文件&#xff0c;计算使用各种浏览器的人所占的百分比&#xff08;注意先排…

iOS 打包iPa

http://blog.fir.im/how-to-build-adhoc-ipa/ 之前都是打包好ipa然后发送给客户&#xff0c;特麻烦&#xff0c;fir.im网站不错 迅速获取自己手机的udid: http://fir.im/udid 网页安装ipa&#xff1a; http://fir.im/cxsv 转载于:https://www.cnblogs.com/shidaying/p/4829102…

# 遍历删除字典元素_第六章 字典

一、使用字典一个简单的字典字典是一系列键——值对。每个键都与一个值相关联&#xff0c;可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上&#xff0c;可将任何Python对象用作字典中的值。在Python中&#xff0c;字典用放在花括号{}…

user-select属性用法

这是在css3 UI规范中新增的一个功能&#xff0c;用来控制内容的可选择性。 auto——默认值&#xff0c;用户可以选中元素中的内容none——用户不能选择元素中的任何内容text——用户可以选择元素中的文本element——文本可选&#xff0c;但仅限元素的边界内(只有IE和FF支持)all…

弄清 CSS3 的 transition 和 animation

弄清 CSS3 的 transition 和 animation 原文:弄清 CSS3 的 transition 和 animation弄清 CSS3 的 transition 和 animation transition transition 属性是transition-property,transition-duration,transition-timing-function,transition-delay的简称,用于设定一个元素的两个状…

【SVM】简单介绍(二)

1、SVM另一种推法 我们不管分类平面&#xff0c;直接去假设Margin的两个边界&#xff1a; Plus-plane {x:w⋅xb1}Minus-plane {x:w⋅xb−1}\begin{aligned} & \text { Plus-plane }\{\boldsymbol{x}: \boldsymbol{w} \cdot \boldsymbol{x}b1\} \\ & \text { Minus-plan…

图像像素点赋值_Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像...

普通操作1. 读取像素读取像素可以通过行坐标和列坐标来进行访问&#xff0c;灰度图像直接返回灰度值&#xff0c;彩色图像则返回B、G、R三个分量。需要注意的是&#xff0c; OpenCV 读取图像是 BGR 存储显示。灰度图片读取操作&#xff1a;import cv2 as cv# 灰度图像读取gray_…

cocopods

一、什么是CocoaPods 1、为什么需要CocoaPods 在进行iOS开发的时候&#xff0c;总免不了使用第三方的开源库&#xff0c;比如SBJson、AFNetworking、Reachability等等。使用这些库的时候通常需要&#xff1a; 下载开源库的源代码并引入工程向工程中添加开源库使用到的framework…

CSS3学习手记(10) 过渡

CSS3过渡 允许css的属性值在一定的时间内平滑地过渡在鼠标单击、获取焦点、被点击或对元素任何改变中触发&#xff0c;并圆滑地以动画效果改变CSS的属性值transition transition-property属性检索或设置对象中的参与过渡的属性 语法 transition-property:none|all|property …

POJ 1286 Necklaces of Beads (Burnside定理,有限制型)

题目链接&#xff1a;http://vjudge.net/problem/viewProblem.action?id11117 就是利用每种等价情形算出置换节之后算组合数 #include <stdio.h> #include <cstring> #include <cstdlib> #include <algorithm> #include <cmath>using namespace…

全局搜索快捷键_Windows 自带的聚合搜索来了,与 Mac 的 Spotlight 相比体验如何?...

最近 Windows 10 推出了自带的聚合搜索功能 PowerToys Run&#xff0c;取代了之前的 WinR。苹果的 macOS 以人性化著称&#xff0c;有几个功能让 Windows 用户一直很羡慕&#xff0c;比如全局的聚合搜索工具 Spotlight。在任何界面 command空格&#xff0c;输入关键字就能搜索电…

transform你不知道的那些事

transform是诸多css3新特性中最打动我的&#xff0c;因为它让方方正正的box module变得真实了。 transform通过一组函数实现了对盒子大小、位置、角度的2D或者3D变换。不过很长时间内&#xff0c;我对以下问题都想不太明白&#xff1a; 1、尺寸缩放scale与zoom变换有何不同&…

【SVM】简单介绍(三)

我们考虑SVM的对偶问题&#xff0c;我们通常是在对偶空间中进行求解的。 1、Lagrange Multipliers 对于一个很一般的问题 Minimize f(x)subject to {a(x)≥0b(x)≤0c(x)0\begin{aligned} \text { Minimize } & f(x) \\ \text { subject to } \quad & \left\{\begin{a…

玩转iOS开发:NSURLSession讲解(三)

文章分享至我的个人技术博客: https://cainluo.github.io/14986211698053.html 前言 虽然前面两讲都是说了NSURLSession的一些理论上的知识, 但我们现在起码对NSURLSession有个大概的了解, 并不会像一开始的那样, 一脸懵逼的看着, 这个请求是什么鬼, 那个方法是什么鬼, Task是什…

轻松搞定面试中的二叉树题目

版权全部&#xff0c;转载请注明出处&#xff0c;谢谢&#xff01;http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比較重要的数据结构&#xff0c;尤其是二叉树。二叉树是一种特殊的树&#xff0c;在二叉树中每一个节点最多有两个子节点&#xff0c;…

李倩星r语言实战_《基于R的统计分析与数据挖掘》教学大纲

《基于R的统计分析与数据挖掘》课程教学大纲课程代码&#xff1a;090542009课程英文名称&#xff1a;R Language and Data Mining课程总学时&#xff1a;32讲课&#xff1a;32实验&#xff1a;0上机&#xff1a;0适用专业&#xff1a;应用统计学大纲编写(修订)时间&#xff1a;…

自动化测试小结

最近差不多一年从事自动化的测试工作&#xff0c;从开始对自动化一点都不了解到现在能从实现用例、手动命令行执行用例、自制工具来执行用例&#xff0c;感觉进步还是有的。 自动化测试对于手动测试应该是有不小的优势的&#xff0c;虽然在自动化的用例实现中刚开始的时候会显得…

python地理可视化_【Python教程】地理可视化之二

Basemap是Matplotlib的一个子包&#xff0c;负责地图绘制。昨天的推送对如何绘制风向图进行了描述&#xff0c;本文再次利用该包简单介绍如何绘制海洋及海冰温度彩色图示&#xff0c;该图常见于NOAA官网。具体操作如下&#xff1a;导入命令1)设置工作环境并导入程序包%cd "…

寻找白板上的便签条

问题来源&#xff1a;http://answers.opencv.org/question/162480/contour-detection-for-gray-stickers-on-white-background/ 题目的大概意思就是这样的白板&#xff0c;寻找上面的各种便签条。我找到了橘色的&#xff0c;结果是这样代码是这样Mat src imread("gray-st…

LeetCode Permutations

原题链接在这里&#xff1a;https://leetcode.com/problems/permutations/ 题目&#xff1a; Given a collection of distinct numbers, return all possible permutations. For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2]…