6、 支持向量机

支持向量机(SVM)是一种机器学习算法,旨在寻找最大分类间距的超平面。本文介绍了SVM的工作原理,包括如何寻找最大间隔,以及通过拉格朗日乘子法优化问题。此外,还讨论了SMO高效优化算法,以及SVM在手写数字识别等项目中的应用和核函数的使用。
摘要由CSDN通过智能技术生成

支持向量机 概述

支持向量机(Support Vector Machines, SVM):是一种机器学习算法。 支持向量(Support Vector)就是离分隔超平面最近的那些点。 机(Machine)就是表示一种算法,而不是表示机器。

支持向量机 场景

  • 要给左右两边的点进行分类
  • 明显发现:选择D会比B、C分隔的效果要好很多。

线性可分

支持向量机 原理

SVM 工作原理

k_2

对于上述的苹果和香蕉,我们想象为2种水果类型的炸弹。(保证距离最近的炸弹,距离它们最远)

  1. 寻找最大分类间距
  2. 转而通过拉格朗日函数求优化的问题

  3. 数据可以通过画一条直线就可以将它们完全分开,这组数据叫线性可分(linearly separable)数据,而这条分隔直线称为分隔超平面(separating hyperplane)

  4. 如果数据集上升到1024维呢?那么需要1023维来分隔数据集,也就说需要N-1维的对象来分隔,这个对象叫做超平面(hyperlane),也就是分类的决策边界。

分隔超平面

寻找最大间隔

为什么寻找最大间隔
摘录地址:http://slideplayer.com/slide/8610144  (第12条信息)
Support Vector Machines: Slide 12 Copyright © 2001, 2003, Andrew W. Moore Why Maximum Margin? 
denotes +1 denotes -1 f(x,w,b) = sign(w. x - b) The maximum margin linear classifier is the linear classifier with the, um, maximum margin. 
This is the simplest kind of SVM (Called an LSVM) Support Vectors are those datapoints that the margin pushes up against 

1.Intuitively this feels safest. 
2.If we’ve made a small error in the location of the boundary (it’s been jolted in its perpendicular direction) this gives us least chance of causing a misclassification. 
3.CV is easy since the model is immune to removal of any non-support-vector datapoints. 
4.There’s some theory that this is a good thing. 
5.Empirically it works very very well. 

* * *

1. 直觉上是安全的
2. 如果我们在边界的位置发生了一个小错误(它在垂直方向上被颠倒),这给我们最小的错误分类机会。
3. CV(Computer Vision 计算机视觉 - 这缩写看着可怕)很容易,因为该模型对任何非支持向量数据点的去除是免疫的。
4. 有一些理论,这是一件好事。
5. 通常它的工作非常好。
怎么寻找最大间隔

点到超平面的距离

  • 分隔超平面函数间距
  • 分类的结果:  (sign表示>0为1,<0为-1,=0为0)
  • 点到超平面的几何间距:  (||w||表示w矩阵的二范式=> , 点到超平面的距离也是类似的)

点到直线的几何距离

拉格朗日乘子法

  • 类别标签用-1、1,是为了后期方便 \(lable(w^Tx+b)\) 的标识和距离计算;如果 \(lable(w^Tx+b)>0\) 表示预测正确,否则预测错误。
  • 现在目标很明确,就是要找到wb,因此我们必须要找到最小间隔的数据点,也就是前面所说的支持向量
    • 也就说,让最小的距离取最大.(最小的距离:就是最小间隔的数据点;最大:就是最大间距,为了找出最优超平面--最终就是支持向量)
    • 目标函数:\(arg: max_{关于w, b} \left( min[lable(w^Tx+b)]\frac{1}{||w||} \right) \)
      1. 如果  表示预测正确,也称函数间隔, 可以理解为归一化,也称几何间隔
      2. 令 \(lable(w^Tx+b)>=1\) 因为 0 ~ 1 之间, 得到的点是存在误判的可能性,所以要保障 \(lable(w^Tx+b)>=1\)
      3. 令 \(lable(w^Tx+b)>=1\) 因为 0 ~ 1 之间,得到的点是存在误判的可能性,所以要保障 \(min[lable(w^Tx+b)]=1\) ,才能更好降低噪音数据影响。
      4. 所以本质上是求 ;也就说,我们约束(前提)条件是: 
  • 新的目标函数求解: 
    • => 就是求:  (求矩阵会比较麻烦,如果x只是  的偏导数,那么。。同样是求最小值)
    • => 就是求:  (二次函数求导,求极值,平方也方便计算)
    • 本质上就是求线性不等式的二次优化问题(求分隔超平面,等价于求解相应的凸二次规划问题)
  • 通过拉格朗日乘子法,求二次优化问题
    • 假设需要求极值的目标函数 (objective function) 为 f(x,y),限制条件为 φ(x,y)=M # M=1
    • 设g(x,y)=M-φ(x,y) # 临时φ(x,y)表示下文中 
    • 定义一个新函数: F(x,y,λ)=f(x,y)+λg(x,y)
    • a为λ(a>=0),代表要引入的拉格朗日乘子(Lagrange multiplier)
    • 那么: 
    • 因为:\(label
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值