首页 > 其他分享 >机器学习技法---(Week1)Linear Support Vector Machine

机器学习技法---(Week1)Linear Support Vector Machine

时间:2023-01-01 17:33:53浏览次数:47  
标签:Machine SVM Linear 缩放 距离 --- wT 超平面 向量


  技法的课,相对更关注算法,希望1个月内搞掂~

课程介绍

  共计16周课程,主要内容:哲学上直观的理解、关键理论、核心算法和实际操作的注意点。围绕特征变换,本次课程涉及到以下三个方向:
1. 如何对大量的特征进行开发和正则化操作:SVM模型
2. 组合预测特征,构建和融合预测特征:AdaBoost算法
3. 识别和学习潜藏的特征:Deep Learning

线性支持向量机的引入

  回顾《机器学习基石》中的PLA,对于线性可分的数据,能找到多个超平面正确的分开两类数据。

机器学习技法---(Week1)Linear Support Vector Machine_支持向量机

那么这些超平面中哪一个是最优的?

机器学习技法---(Week1)Linear Support Vector Machine_支持向量机_02

仅凭直觉,可以认为第三条直线最好。因为旁边的点离他们比较远,两个问题:

  • 离得远为什么好
  • 怎么量化/计算这个距离

点距离超平面远,可以理解成对误差的容忍度高,即如果观测受噪声影响出现部分偏差,距离大的超平面仍然能够正确区分两类数据。如下图:

机器学习技法---(Week1)Linear Support Vector Machine_支持向量机_03

距离定义为:离超平面最近的点到分类超平面的距离,用margin表示。
那么在样本数据线性可分条件下找到间隔最大的超平面可以这样描述:

    机器学习技法---(Week1)Linear Support Vector Machine_缩放_04

    机器学习技法---(Week1)Linear Support Vector Machine_二次规划_05

    参数求解

    w0,w1,...,wd w 0 , w 1 , . . . , w d 中的w0 w 0 拿出来用b b 表示。同时省去x0x0项。这样hypothesis变为h(x)=sign(wTx+b) h ( x ) = s i g n ( w T x + b ) 。这里要注意一下,为什么后面会出现yn(wTxn+b)≥0 y n ( w T x n + b ) ≥ 0 。

    距离计算

    distance

    d i s t a n c e ,初中数学就学过点到直线的距离,点到面的距离可以理解成向量往超平面的法向量方向的投影。具体如下:

    机器学习技法---(Week1)Linear Support Vector Machine_缩放_06

    上图主要分两步:第一步证明w

    w 是超平面的法向量,第二步求点到直线距离,目标点和超平面上任意一点构成向量,该向量往超平面的法向量上投影即可得点到超平面的距离。∣∣wT∥w∥(x−x′)∣∣=∣∣wT∥w∥x−wT∥w∥x′∣∣=∣∣wT∥w∥x+b∣∣|wT‖w‖(x−x′)|=|wT‖w‖x−wT‖w‖x′|=|wT‖w‖x+b|即可得出距离公式。那么目标函数转换为:

    机器学习技法---(Week1)Linear Support Vector Machine_二次规划_07


    投影的计算:

    由下图的推导,容易得到上述投影的计算

    机器学习技法---(Week1)Linear Support Vector Machine_支持向量机_08

    缩放

    w,b

    w , b 同时缩放,从而使得

    机器学习技法---(Week1)Linear Support Vector Machine_缩放_09

    这样缩放并不会改变超平面的性质,也不会改变点到超平面的距离。经过缩放,目标函数可以写成:

    机器学习技法---(Week1)Linear Support Vector Machine_支持向量机_10

    又min yn(wTxn+b)=1 m i n   y n ( w T x n + b ) = 1 ,因此所有yn(wTxn+b)≥1 y n ( w T x n + b ) ≥ 1 ,那么此时分类一定是准确的,所以第一个条件一定可以满足。对第二个条件做一些修改,min yn(wTxn+b)=1 m i n   y n ( w T x n + b ) = 1 变为yn(wTxn+b)≥1 y n ( w T x n + b ) ≥ 1 ,这样处理可能会导致最小距离大于1,但是可以同样对w,b w , b 做缩放使得最小距离等于1。具体逻辑如下:

    机器学习技法---(Week1)Linear Support Vector Machine_支持向量机_11

    二次规划求解

      通过上节一系列变换,原始问题转换为二次规划问题。先举一个简单的例子做说明。二维平面上有四个点,两个正类两个负类。具体求解逻辑如下:

    机器学习技法---(Week1)Linear Support Vector Machine_缩放_12

    这种求最大间隔超平面的方法称为SVM,因为超平面的确定依靠的是最近的几个点,其余点没有影响。而这几个点称为支撑向量,利用支撑向量得到最大间隔超平面的方法称为支持向量机。

    SVM的一般化求解方法是利用相关软件求解二次规划问题,即Quadratic Programming。具体求解需要对目标函数做一些整体,使其满足二次规划一般化的表达方式。具体如下:

    机器学习技法---(Week1)Linear Support Vector Machine_二次规划_13

    SVM的优点

      从直觉上讲,SVM可以找到最大间隔超平面,从而对噪声的容忍度更高,分类想过相对更好。但是它背后的逻辑是什么呢?SVM的思想和之前regularization的思想类似,调换了目标和限制条件,具体如下:

    机器学习技法---(Week1)Linear Support Vector Machine_二次规划_14

    从另外一方面看,Large-Margin会限制Dichotomies的个数,并且可能shatter的点更少。回忆Dichotomies和shatter、break point 的定义:

    1. 类似的某一种线可以把点二分,如果hypothesis可以把点二分,则称为一个dichotomy

    2. 如果N

    N 个点有2N2N个dichotomy,称N N 个点被shatter

    3. 如果kk个点有小于2k 2 k 个dichotomy,称k k 为HH的break point

    机器学习技法---(Week1)Linear Support Vector Machine_二次规划_15

    直观上看,线越胖,Dichotomies越少,那么模型复杂度就越低,模型的泛化性能越强。

    Summary

      本节课主要是介绍用线性支持向量机解决PLA问题,通过转换目标函数,得到二次规划的形式。并且介绍了SVM背后的逻辑,即减少dichotomies的个数,减少VC维,使得模型有更好的泛化能力。

                                          2018-03-20 于杭州


    标签:Machine,SVM,Linear,缩放,距离,---,wT,超平面,向量
    From: https://blog.51cto.com/u_15575753/5983167

    相关文章

    • Bias-Variance
      knitr::opts_chunk$set(echo=TRUE)看了蛮久的,各种各样的说法,把不同的阐述分别写下,以供自己参考Hastie-《统计学习导论》《ISLR》是Hastie写的基于R的统计学习教材,网上有......
    • 11、Nacos配置中心-加载多配置集
      把我们以前项目中的配置文件中内容进行拆分,然后都弄到配置中心,方便维护.以前我们的配置:现在在nacos中拆分后的配置:这样我们项目中只需维护一个bootstrap.yml配置文件......
    • 机器学习基石---How Can Machines Learn Better
        对Week12-Week16做简单的总结,不仔细看所有细节。大体内容:借由非线性分类模型引出Overfitting的问题,从而提出Regularization和Validation,以及机器学习中三个原则。非线性......
    • 软件方法(下)分析和设计2021版本连载-第8章 分析类图(1)
      ​(1)任何您认为的错误都可以,包括错别字。(2)同一错误仅支付最先指正者报酬。(3)请根据最新版本作指正。下册内容目前指正人有:吴佰钊、王周文、刘学斌、成文华、黄树成、李蜀斌、......
    • OpenOCD+DAP-LINK调试ESP32的失败经历
      目的手里有调试STM32的DAP-LINK,想试试通过JTAG调试ESP32OpenOCD支持CMSIS-DAPDAP-LINK支持的芯片,我手上这款描述如下,应该JTAG协议的都支持平台windows10+ESP-IDFE......
    • leetcode-599. 两个列表的最小索引总和
      599.两个列表的最小索引总和-力扣(Leetcode)刚开始的思路是搞两个map,但是性能比较差,只需要构建一个map然后遍历第二个list即可[!添加后可以过滤一些肯定不符合条件的]......
    • Java - CAS 总结
      CAS介绍CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值,否则处理器不做任何操作......
    • layui 注册模板--并且提示注册成功--太爽了
      <!doctypehtml><htmlclass="x-admin-sm"><head><metacharset="UTF-8"><title>后台登录-X-admin2.2</title><metaname="renderer"content="webkit|ie-comp......
    • 性能测试-微服务性能压测监控和调优【重点】【杭州多测师_王sir】【杭州多测师】
       本文主要内容一、何为压力测试1.1、大白话解释性能压测是什么:就是考察当前软件和硬件环境下,系统所能承受的最大负荷,并帮助找出系统的瓶颈所在。性能压测的......
    • 性能测试-CPU使用率和平均负载的关系【杭州多测师_王sir】【杭州多测师】
      1、压测的时候,cpu使用率很高,但是平均负载很低?分析下当前进程使用了cpu资源,并没有很多的进程在等待,分析这个进程是哪一个进程,再进入进程别分析java应用dbredis2、压测的时......