【SVM】简单介绍(二)

1、SVM另一种推法

在这里插入图片描述
我们不管分类平面,直接去假设Margin的两个边界:
Plus-plane ={x:w⋅x+b=+1}Minus-plane ={x:w⋅x+b=−1}\begin{aligned} & \text { Plus-plane }=\{\boldsymbol{x}: \boldsymbol{w} \cdot \boldsymbol{x}+b=+1\} \\ & \text { Minus-plane }=\{\boldsymbol{x}: \boldsymbol{w} \cdot \boldsymbol{x}+b=-1\} \end{aligned}  Plus-plane ={x:wx+b=+1} Minus-plane ={x:wx+b=1}
这个时候Margin就是这两个平面之间的距离了

回忆一下:
Given 2 parallel lines with equations
ax+by+c1=0a x+b y+c_1=0 ax+by+c1=0
and
ax+by+c2=0a x+b y+c_2=0 ax+by+c2=0
the distance between them is given by:
d=∣c2−c1∣a2+b2d=\frac{\left|c_2-c_1\right|}{\sqrt{a^2+b^2}} d=a2+b2c2c1
在这里插入图片描述
于是就有:

maximize 2∥w∥\frac{2}{\|\mathbf{w}\|}w2
such that
For yi=+1,wTxi+b≥1y_i=+1, \quad \mathbf{w}^T \mathbf{x}_i+b \geq 1yi=+1,wTxi+b1
For yi=−1,wTxi+b≤−1y_i=-1, \quad \mathbf{w}^T \mathbf{x}_i+b \leq-1yi=1,wTxi+b1

进一步的,有
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

模型是一样的

2、二次规划(Quadratic Programming)

二次规划问题是这样的
Find arg⁡max⁡uc+dTu+uTRu2\text { Find } \underset{\mathbf{u}}{\arg \max } \quad c+\mathbf{d}^T \mathbf{u}+\frac{\mathbf{u}^T R \mathbf{u}}{2}  Find uargmaxc+dTu+2uTRu
若干个不等式约束
a11u1+a12u2+…+a1mum≤b1a21u1+a22u2+…+a2mum≤b2:an1u1+an2u2+…+anmum≤bn\begin{gathered} a_{11} u_1+a_{12} u_2+\ldots+a_{1 m} u_m \leq b_1 \\ a_{21} u_1+a_{22} u_2+\ldots+a_{2 m} u_m \leq b_2 \\ : \\ a_{n 1} u_1+a_{n 2} u_2+\ldots+a_{n m} u_m \leq b_n \end{gathered} a11u1+a12u2++a1mumb1a21u1+a22u2++a2mumb2:an1u1+an2u2++anmumbn
若干个等式约束
a(n+1)1u1+a(n+1)2u2+…+a(n+1)mum=b(n+1)a(n+2)1u1+a(n+2)2u2+…+a(n+2)mum=b(n+2):a(n+e)1u1+a(n+e)2u2+…+a(n+e)mum=b(n+e)\begin{gathered} a_{(n+1) 1} u_1+a_{(n+1) 2} u_2+\ldots+a_{(n+1) m} u_m=b_{(n+1)} \\ a_{(n+2) 1} u_1+a_{(n+2) 2} u_2+\ldots+a_{(n+2) m} u_m=b_{(n+2)} \\ : \\ a_{(n+e) 1} u_1+a_{(n+e) 2} u_2+\ldots+a_{(n+e) m} u_m=b_{(n+e)} \end{gathered} a(n+1)1u1+a(n+1)2u2++a(n+1)mum=b(n+1)a(n+2)1u1+a(n+2)2u2++a(n+2)mum=b(n+2):a(n+e)1u1+a(n+e)2u2++a(n+e)mum=b(n+e)
而我们线性SVM要求解的问题是
{w⃗∗,b∗}=min⁡w⃗,b∑iwi2subject to yi(w⃗⋅x⃗i+b)≥1for all training data (x⃗i,yi)\begin{aligned} & \left\{\vec{w}^*, b^*\right\}=\min _{\vec{w}, b} \sum_i w_i^2 \\ & \text { subject to } y_i\left(\vec{w} \cdot \vec{x}_i+b\right) \geq 1 \text { for all training data }\left(\vec{x}_i, y_i\right) \end{aligned} {w,b}=w,bminiwi2 subject to yi(wxi+b)1 for all training data (xi,yi)
其实本质上就是一个QP问题
{w⃗∗,b∗}=argmax⁡w⃗,b{0+0→⋅w⃗−w⃗TInw⃗}\left\{\vec{w}^*, b^*\right\}=\underset{\vec{w}, b}{\operatorname{argmax}}\left\{0+\overrightarrow{0} \cdot \vec{w}-\vec{w}^T \mathbf{I}_{\mathbf{n}} \vec{w}\right\} {w,b}=w,bargmax{0+0wwTInw}
y1(w⃗⋅x⃗1+b)≥1y2(w⃗⋅x⃗2+b)≥1…yN(w⃗⋅x⃗N+b)≥1\begin{aligned} & y_1\left(\vec{w} \cdot \vec{x}_1+b\right) \geq 1 \\ & y_2\left(\vec{w} \cdot \vec{x}_2+b\right) \geq 1 \\ & \ldots \\ & y_N\left(\vec{w} \cdot \vec{x}_N+b\right) \geq 1 \end{aligned} y1(wx1+b)1y2(wx2+b)1yN(wxN+b)1

3、Soft Margin SVM

咱们的Hard Margin SVM要求样本必须是线性可分的(看它的约束条件),那么问题来了,要是样本线性不可分呢?
在这里插入图片描述

那么咱们就希望Margin大的同时,让分类的损失尽量小一点,于是问题就变为

Minimize
w⋅w+C\boldsymbol{w}\cdot \boldsymbol{w}+Cww+C (#train errors)

这样问题就来了。首先这不再是一个QP问题,QP问题的求解方法很成熟;其次这边有一个超参数C,这个参数又叫tradeoff parameter。C越大说明你更希望分类误差小一点,C越小说明你更希望Margin大一点,所以这边C的取值就是一门学问了。
在这里插入图片描述
我们将误差建模为分类错误点到分类平面的距离
{w⃗∗,b∗}=min⁡w⃗,b∑i=1dwi2+c∑j=1Nεjy1(w⃗⋅x⃗1+b)≥1−ε1y2(w⃗⋅x⃗2+b)≥1−ε2…yN(w⃗⋅x⃗N+b)≥1−εN\begin{aligned} & \left\{\vec{w}^*, b^*\right\}=\min _{\vec{w}, b} \sum_{i=1}^{\mathrm{d}} w_i^2+c \sum_{j=1}^N \varepsilon_j \\ & y_1\left(\vec{w} \cdot \vec{x}_1+b\right) \geq 1-\varepsilon_1 \\ & y_2\left(\vec{w} \cdot \vec{x}_2+b\right) \geq 1-\varepsilon_2 \\ & \ldots \\ & y_N\left(\vec{w} \cdot \vec{x}_N+b\right) \geq 1-\varepsilon_N \end{aligned} {w,b}=w,bmini=1dwi2+cj=1Nεjy1(wx1+b)1ε1y2(wx2+b)1ε2yN(wxN+b)1εN
在这里插入图片描述

如果εi<0?\varepsilon_i<0?εi<0?,这是我们不想看到的,因为当样本分类正确时,我们希望损失是000
{w⃗∗,b∗}=min⁡w⃗,b∑i=1dwi2+c∑j=1Nεjy1(w⃗⋅x⃗1+b)≥1−ε1,ε1>=0y2(w⃗⋅x⃗2+b)≥1−ε2,ε2>=0…yN(w⃗⋅x⃗N+b)≥1−εN,εN>=0\begin{aligned} & \left\{\vec{w}^*, b^*\right\}=\min _{\vec{w}, b} \sum_{i=1}^{\mathrm{d}} w_i^2+c \sum_{j=1}^N \varepsilon_j \\ & y_1\left(\vec{w} \cdot \vec{x}_1+b\right) \geq 1-\varepsilon_1 ,\varepsilon_1>=0\\ & y_2\left(\vec{w} \cdot \vec{x}_2+b\right) \geq 1-\varepsilon_2 ,\varepsilon_2>=0\\ & \ldots \\ & y_N\left(\vec{w} \cdot \vec{x}_N+b\right) \geq 1-\varepsilon_N,\varepsilon_N>=0 \end{aligned} {w,b}=w,bmini=1dwi2+cj=1Nεjy1(wx1+b)1ε1,ε1>=0y2(wx2+b)1ε2,ε2>=0yN(wxN+b)1εN,εN>=0

想象一下,一个样本点错得很离谱,离分界面无穷大,那么其对应的损失也是无限大,所以我们说,SVM对噪声是很敏感的

SVM的损失函数是Hinge loss
hinge⁡(x)=max⁡(1−x,0)\operatorname{hinge}(x)=\max (1-x, 0) hinge(x)=max(1x,0)
在这里插入图片描述

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

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

相关文章

图像像素点赋值_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]…

去除内存上的警告,避免程序崩掉

# pragma clang diagnostic push # pragma clang diagnostic ignored "-Warc-performSelector-leaks" [self performSelector:callFunc withObject:array[1]]; # pragma clang diagnostic pop 使用原理&#xff1a;将出现警告的代码加入内存栈中转载于:https://www.c…

opengl2 vtk 编译_编译和使用VTK时值得注意的点(待续)

最近的一个项目中需要使用VTK&#xff0c;于是开始了VTK的漫漫编译之路。长篇大论的编译步骤网上数不胜数&#xff0c;在这里不再细说&#xff0c;可自行google。这里主要说一些在编译过程中需要注意的地方&#xff0c;以免走歪路。1、使用cmake进行第一次configure的时候需要选…

gg

转载于:https://www.cnblogs.com/lyzuikeai/p/7091206.html

二:Go编程语言规范-类型

1.类型 布尔值&#xff0c;数值与字符串类型的实例的命名是预声明的。 数组&#xff0c;结构&#xff0c;指针&#xff0c;函数&#xff0c;接口&#xff0c;切片&#xff0c;映射和信道这些复合类型可由类型字面构造。 每个类型 T 都有一个 基本类型&#xff1a;若 T 为预声明…

HDU 1728 逃离迷宫

这道题做的我想哭啊。。WA了将近十次了吧 一开始我用数组模拟的队列&#xff0c;后来和老大代码对拍&#xff0c;感觉改的是基本都一模一样了&#xff0c;还是WA 实在没有办法了&#xff0c;改用queue了 题目里的x是列y是行&#xff0c;和代码里的反过来的&#xff0c;要注意&a…

Nginx(六)-- 配置文件之Gzip

1.概念及作用 Gizp主要对内容、静态文件做压缩&#xff0c;用来提升网站访问速度&#xff0c;节省带宽。 2.使用方法 gzip既可以配置在server中&#xff0c;也可以配置在server外&#xff0c;此处配置在server中&#xff0c;如下&#xff1a; 说明&#xff1a;  gizp on|off 是…