【机器学习·浙江大学】机器学习概述、支持向量机SVM(线性模型)

news2025/1/25 4:34:39

机器学习概述

在这里插入图片描述
在这里插入图片描述
机器学习

  • 特征提取(feature)

  • 根据提取的特征构造算法,实现特定的任务⭐(这门课程的重点:假设所有的特征已经存在且有效,如何根据这些特征来构造学习算法)

  • 如下图所示,机器学习主要就是来进行如何画这一条线(也就是模型,即从泛指从数据中学习得到的结果,其对应了关于数据的某种潜在的规律,因此称为“假设”;这种潜在规律自身,则称为“真相”或者“真实”ground-truth,学习得到模型的过程,就是去找出或者逼近真相):
    在这里插入图片描述

  • 难点

    • 维度(超平面hyper plane上万维度,如何去做这样一个超平面->困难
    • 标准:那一条曲线or哪一个超平面是最好的(没有同一的标准,不同算法的画线和判别标准不同(而机器学习就是学习这些不同的算法,对这些算法有一个感觉,适用于什么场景
  • 没有免费午餐定理
    如果我们不对特征空间进行先验假设,则所有算法的平均表现一样(农场主理论),有了先验假设,才可以说哪个算法更好!

  • 几乎所有机器学习的算法所做的事情都可以分为以下三步

    • 首先用一个方程or一个复杂的函数(其实本质上神经网络就是一个很复杂的函数)来限定一个模型
    • 在这个模型中,留出一些待定的参数
    • 利用样本,去训练模型,用相应的算法确定待定参数(关键)

所以在对比算法时,往往也可以从这三方面来进行对比。

0、历史沿革

  • 发明者:Vapnic(苏联人)
  • 发明时间:70年代中期
  • 发表时间:苏联解体后,Vapnic去往美国,在90年代将其发表
  • 算法性质:针对小样本问题
  • 理论支撑:完整&优美的数学理论

一、线性模型、SVM的基本思想

🌸什么是线性模型?
  在上文的机器学习概述中,我们知道,机器学习的核心就是在特征空间中画这样一个线or面,把训练数据给划分开。而线性模型,其实直观上来讲,就是这个线是直线or这个面是一个超平面,这样的模型我们称为线性模型:
在这里插入图片描述
  同时,对于这样的训练样本集我们称为线性可分训练样本集(Linear Separable);相反,若无法画一条直线or超平面对训练样本集进行划分,则该样本集称为非线性可分训练样本集(Non-Linear Seperable)

 💁🏻‍♀️而SVM(support vector machine)则是研究,如何在线性可分训练样本集上画这样一条直线or超平面,进而推广到非线性可分训练样本集

🌸哪一条直线(模型)是最好的?——模型的评判标准(SVM的基本思想)

  如果存在一条直线可以将样本集进行划分,那么必然存在无数条直线可以对其进行划分。那么哪一条直线是最好的呢?
在这里插入图片描述

  根据上面概述中讲到的“没有午餐定理”,其实并不存在什么“最好”的模型,除非对特征空间进行假设(hypothesis),这种假设也是 基于先验知识(训练数据)的某种潜在的规律
  根据我们的先验知识,从我们角度出发,相信很多人都会在下面三条直线中选择②号线:
在这里插入图片描述

  为什么呢?这其实是根据我们的先验知识或者说是假设(潜在的规律),如下图,只有②号线它的容错能力是最强的(这种容错能力也称为泛化性,当新样本来临时,它的表现会更好),因此我们选择它:
在这里插入图片描述
  那么如何以描述这种假设呢?Vapnic做出如下假设:
   1. 首先我们需要定义对每条直线的一个评判/衡量的标准:performance-measure 代表这条直线的 性能指标,且每条直线都可以计算出其相应的performance
   2. 当然,我们要保证那个容错性能最好的直线的performance是最大的。那么如何计算直线的性能指标呢?对每条直线进行平移,直到穿过每个类别的一个or几个点为止,计算出平移距离之和(也就是间隔),间隔d最大的那条直线,就是我们要选取的那条直线。(同时还有一个约束条件:保证这条线在这个距离之间,即d/2的位置,这样才能保证这条直线唯一)。
在这里插入图片描述

💁🏻‍♀️其实上面的定义性能指标、计算性能指标的过程,就是SVM的基本思想。那么如何对这个过程用数学形式进行表示呢?

二、SVM的数学描述

2.1:一些定义

  1. d:间隔/间隔距离(margin)——支持向量机就是最大化margin的方法

  2. 将直线上下移动所穿过的向量称为:支持向量(support vectors)——为什么呢?因为我们从上文讲到的确定最终直线的方法来看,最大化距离、确定直线,只和这几个穿过的支持向量有关(这也是为什么SVM适合小样本问题)

    在这里插入图片描述

  3. 训练数据及其标签: ( X → 1 , y 1 ) (\overrightarrow{X}_{1},y_{1}) (X 1,y1) ( X → 2 , y 2 ) (\overrightarrow{X}_{2},y_{2}) (X 2,y2) ( X → 3 , y 3 ) (\overrightarrow{X}_{3},y_{3}) (X 3,y3) ( X → N , y N ) (\overrightarrow{X}_{N},y_{N}) (X N,yN)

    注意: X → \overrightarrow{X} X 是特征向量;在这里我们讨论的是二分类问题, y y y 我们限定只能取-11,代表为两个类别。

  4. 线性模型:

    • 参数: ( W → , b ) (\overrightarrow{W},b) (W ,b)
    • 超平面(线性模型)的表达: W → T ⋅ X → + b = 0 \overrightarrow{W}^{T}·\overrightarrow{X}+b = 0 W TX +b=0
  5. 一个训练样本集线性可分是指:对于样本集 { ( X i , y i ) } i = 1 … N \left \{ (X_{i},y_{i} )\right \}_{i=1\dots N} {(Xi,yi)}i=1N
    存在 ( W , b ) (W,b) (W,b),使得,对任意 ( X → i , y i ) (\overrightarrow{X}_{i},y_{i}) (X i,yi) 有:

    • y i = + 1 y_{i} = +1 yi=+1,则 W → i T ⋅ X → + b ≥ 0 \overrightarrow{W}_{i}^{T}·\overrightarrow{X}+b \ge 0 W iTX +b0
    • y i = − 1 y_{i} = -1 yi=1,则 W → i T ⋅ X → + b < 0 \overrightarrow{W}_{i}^{T}·\overrightarrow{X}+b < 0 W iTX +b<0

    上述两个式子合起来也可以用一个公式来表示: y i ( W → i T ⋅ X → + b ) > 0 y_{i}(\overrightarrow{W}_{i}^{T}·\overrightarrow{X}+b) > 0 yi(W iTX +b)>0

    就是存在一个超平面可以将其划分开,使得一类数据在该平面的一侧,另外一类在另一侧,只不过上面是数学表示罢了。

2.2:SVM的优化问题

 上文讲到SVM的线性模型(也就是那个划分样本集的超平面),该如何确定呢?这个问题也叫做SVM的优化问题。其实在第一节讲SVM的基本思想时,我们已经窥得许多了,它的核心就是最大化间隔(margin)——d。在这里,我们将表述成更简洁更优雅的数学表示(本质是做了一个优化,从而确定参数w,b,但是背后的原理还是从最小化d触发的):

  • 最小化(minimize): ∥ W ∥ 2 \left \| W \right \| ^{2} W2
  • 限制条件 (subject to): y i ( W → i T ⋅ X → + b ) ≥ 1 ( i = 1 … N ) y_{i}(\overrightarrow{W}_{i}^{T}·\overrightarrow{X}+b) \ge 1 (i=1\dots N) yi(W iTX +b)1i=1N

 用一句话来解释一下,就是在上面的限制条件下,对 ∥ W ∥ 2 \left \| W \right \| ^{2} W2进行最小化

 相信你和我一样,是不是感到莫名其妙,明明我们的侧重点是放在间隔d间隔d应该相等且最大,怎么现在突然扯到W上了?不急,我们现在慢慢道来。

 首先我们要明确两个事实

  1. W → T ⋅ X → + b = 0 \overrightarrow{W}^{T}·\overrightarrow{X}+b = 0 W TX +b=0 a W → T ⋅ X → + a b = 0 a\overrightarrow{W}^{T}·\overrightarrow{X}+ab = 0 aW TX +ab=0 是一个平面, a ∈ R + a\in R^{+} aR+.这说明: ( W , b ) (W, b) (W,b) 满足线性模型,则 ( a W , a b ) (aW, ab) (aW,ab)也满足。
  2. 向量 X 0 X_{0} X0 到超平面 W → T ⋅ X → + b = 0 \overrightarrow{W}^{T}·\overrightarrow{X}+b = 0 W TX +b=0 的距离为: d = ∣ W T ⋅ X 0 + b ∣ ∥ W ∥ 2 d = \frac{\left | W^{T}·X_{0}+b \right | }{\left \| W \right \|^{2} } d=W2WTX0+b

 OK ,根据事实2,我们得到了间隔d的表达式,但是我们也发现, 直接让所有的支持向量的d最大,是一个很难操控的事情,如是,我们做了如下转换:

 我们根据事实1, 使用一个正实数a对参数进行如下缩放:
( W , b ) → ( a W , a b ) (W,b)\to (aW,ab) (W,b)(aW,ab)
 最终使得所有的支持向量 X 0 X_{0} X0,有: ∣ W T ⋅ X 0 + b ∣ = 1 | W^{T}·X_{0}+b|=1 WTX0+b=1,此时, d = 1 ∥ W ∥ 2 d = \frac{1 }{\left \| W \right \|^{2} } d=W21,至此,为什么要最小化 ∥ W ∥ 2 \left \| W \right \| ^{2} W2也就显而易见了。

 当然,只最大化d从而最小化w可不行,那平面可以无限远呀,那不就最大了。所以还要需要限制条件,保证其他非支持向量的向量点能被成功划分开,这也是为什么有那个限制条件。 在这里插入图片描述

🪧 扩展:

  • 首先,有一些教材会在“最小化”那里,写成 ∥ W ∥ 2 2 \frac{\left \| W \right \| ^{2}}{2} 2W2,其实没什么区别,就是为了求导时能消去W头上移下来的2。
  • 其次,在限制条件那里,其实 y i ( W → i T ⋅ X → + b ) y_{i}(\overrightarrow{W}_{i}^{T}·\overrightarrow{X}+b) yi(W iTX +b) 可以大于任何正实数,道理很简单,因为a可以取不同正实数,且代表的还是同一个平面。

最后,就是如何确定参数W呢?这里其实是 凸优化(二次规划) 问题,也是我们常听说的梯度下降法,不断试探直到达到最优点

三、SVM和逻辑回归(LR)的对比

关于逻辑回归在前面的博客中已经讲解过,感兴趣的同学可以去了解一下【吴恩达·机器学习】第三章:分类任务:逻辑回归模型(交叉熵损失函数、决策边界、过拟合、正则化)。这里我想将两者进行比较,因为在我学习的过程中,我就发现这两者似乎非常相像。

💐 LR和SVM的相同点

  • 都是监督学习算法(都需要有样本进行训练)
  • 如果不考虑核函数,LR和SVM都是线性分类算法
  • 都是判别模型(判别模型会生成一个表示 P(y|x) 的判别函数)

💐 LR和SVM的不同点

  • 损失函数不同:LR采用对对数损失函数,SVM采用hinge损失函数(所谓损失函数,就是我们最终想要最小化的那个东西!)
  • SVM损失函数自带正则项,LR必须另在损失函数上添加正则项
  • SVM 只考虑局部的分界线附近的点(支持向量),LR考虑全局(每个样本点都必须参与决策面的计算过程)

    其实SVM也考虑了其他点,在限制条件里,只不过影响效果没有那么大,这也是下面一点要说的

  • LR对异常值敏感,SVM对异常值不敏感
  • 在解决非线性问题时,SVM采用核函数机制,而LR通常不采用核函数的方法(SVM只有几个样本点参与核计算,而LR如果要使用核函数,则所有样本点都要参与核计算,计算复杂度太高,不划算)
  • 线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受影响。(线性SVM寻找最大间隔分类器时是依据数据的距离测量的,如果不对数据进行正则化,会对结果有所影响,然而,LR虽然也会用到正则化,却是为了方便优化过程的起始值,LR求解的过程是与距离测量无关的,所以归一化对于LR的求解结果是没有影响的)

上面说实话是我在网上找到的,说的不无道理,下面我想说说我理解的不同点。首先你可能还记得在上文机器学习概述中讲到的,几乎所有机器学习的算法所做的事情都可以分为以下三步

  1. 首先用一个方程or一个复杂的函数(其实本质上神经网络就是一个很复杂的函数)来限定一个模型
  2. 在这个模型中,留出一些待定的参数
  3. 利用样本,去训练模型,用相应的算法确定待定参数(关键)

OK,我们从这三点来对比一下SVM和LR

  1. 限定模型:都是线性模型——相同
  2. 预留参数:都是(W,b)——相同
  3. 确定参数的方法——不同
    a. LR:采用的是最大似然估计方法,我们的目标是求取最大化对数似然函数的参数值,这个过程通常使用梯度下降法或牛顿法等优化算法实现。
    b. SVM:采用的是间隔最大化策略,其目标是寻找一个划分超平面,使得该平面距离最邻近的训练样本点(即支持向量)的距离最大化,求解过程一般通过二次规划求解器完成。

其实本质也是我们在“没有免费午餐定理”中提到的,它们两个的“假设”不同:LR旨在最大化样本的似然概率(也即让模型尽可能拟合每一个样本),而SVM在保证分类正确的前提下,尽可能找到离分隔面最远的边界,以实现对未知样本最好的分类效果(容错性)

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

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

相关文章

zdpdjango_argonadmin使用Django开发一个美观的后台管理系统

初始代码 安装依赖 pip install -r requirements.txt生成管理员账户 迁移模型&#xff1a; python manage.py makemigrations python manage.py migrate创建超级用户&#xff1a; python manage.py createsuperuser启动服务 python manage.py runserver浏览器访问&#xf…

学习CSS Flexbox 玩flexboxfroggy flexboxfroggy1-24关详解

欢迎来到Flexbox Froggy&#xff0c;这是一个通过编写CSS代码来帮助Froggy和朋友的游戏! justify-content 和 align-items 是两个用于控制 CSS Flexbox 布局的属性。 justify-content&#xff1a;该属性用于控制 Flexbox 容器中子项目在主轴&#xff08;水平方向&#xff09;…

FPGA + 图像处理(三)生成3x3像素矩阵

前言 生成NxN的像素矩阵是对图像进行各类滤波操作的基本前提&#xff0c;本文介绍一种通过bram生成3x3矩阵的方法。 程序 生成bram核 因为本文介绍的是基于bram生成的3x3像素矩阵&#xff0c;所以要先生成两个bram核&#xff0c;用于缓存前两行图像数据 在 IP catalog中选…

IDEA连接SqlServer数据库详细讲解

####一、前期准备 确保已经安装了SqlServer数据库&#xff0c;并记住服务器名称、登录名和密码等信息。在IDEA中安装适当的JDBC&#xff08;Java Database Connectivity&#xff09;驱动程序。你可以从Microsoft官方网站上下载最新版本。 二、连接步骤 打开IDEA&#xff0c;…

Unity类银河恶魔城学习记录12-7-1 p129 Craft UI - part 1源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI_CraftList.cs using System.Collections; using System.Collections.Gen…

【小白学机器学习10】假设检验之1:F检验,F检验量的构造,F分布,F分布查表求P值等

目录 1 什么是F检验 F-test 1.1 F-test的定义 1.1.1 维基百科对F检验的定义 1.1.2 百度百科的定义 1.2 F检验的别名 1.3 F检验的判断手段 / 要达成的目标 / 适用范围 1.3.1 判断手段 1.3.2 对H0原假设的理解 1.3.3 判断目标/目的 1.3.4 适用的范围&#xff0c;场合 …

HTML5+CSS3+JS小实例:圣诞按钮

实例:圣诞按钮 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0&…

甘特图/横道图制作技巧 - 任务组

在甘特图中通过合理的任务分组可以让项目更加清晰&#xff0c;修改也更方便。 列如下面的甘特图一眼不太容易看清楚整体的进度。或者需要把所有的任务整体的延迟或者提前只能这样一个一个的任务调整&#xff0c;就比较麻烦。 通过给任务分组&#xff0c;看这上面整体的进度就…

TiDB MVCC 版本堆积相关原理及排查手段

导读 本文介绍了 TiDB 中 MVCC&#xff08;多版本并发控制&#xff09;机制的原理和相关排查手段。 TiDB 使用 MVCC 机制实现事务&#xff0c;在写入新数据时不会直接替换旧数据&#xff0c;而是保留旧数据的同时以时间戳区分版本。 当历史版本堆积过多时&#xff0c;会导致读…

【c语言】strncat函数模拟实现

strncat函数模拟实现 strncat函数在cplusplus网站中的定义 模拟实现源码 //strncat函数模拟实现 #include <stdio.h> #include <string.h> #include <assert.h>char* my_strncat(char* destination, const char* source, size_t num) {assert(destination &a…

第十三届蓝桥杯真题解析

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

抖音-引流私域转化模式1.0现场视频,从抖音源源不断把人加到私域,

抖音-引流私域转化模式1.0现场视频&#xff0c;从抖音源源不断把人加到私域&#xff0c;让加到私域的粉丝买单 抖音-引流私域转化模式1.0现场视频&#xff0c;从抖音源源不断把人加到私域 - 百创网-源码交易平台_网站源码_商城源码_小程序源码 课程内容&#xff1a; 01.第一…

JetBrains IDE 2024.1 发布 - 开发者工具

JetBrains IDE 2024.1 (macOS, Linux, Windows) - 开发者工具 CLion, DataGrip, DataSpell, Fleet, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, Rider, RubyMine, WebStorm 请访问原文链接&#xff1a;JetBrains IDE 2024.1 (macOS, Linux, Windows) - 开发者工具&#xff0…

代码随想录阅读笔记-二叉树【合并二叉树】

题目 给定两个二叉树&#xff0c;想象当你将它们中的一个覆盖到另一个上时&#xff0c;两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠&#xff0c;那么将他们的值相加作为节点合并后的新值&#xff0c;否则不为 NULL 的节…

uniapp 密码框的眼睛

效果展示&#xff1a; uniapp input 官网链接&#xff1a;链接 按照官方文档&#xff0c;uni-icon出不来。 通过自己的方法解决了&#xff0c;解决方案如下&#xff1a; 代码&#xff1a; <uni-forms-item name"password"><inputclass"uni-input&quo…

批发批量订购下单商城公众号 小程序_博纳软云

批发批量订购下单商城——满足您的批量采购需求 在如今快节奏的商业环境中&#xff0c;批发批量订购已成为众多企业和个人创业者的首选采购方式。为了满足广大用户的批量采购需求&#xff0c;我们特别推出了批发批量订购下单商城&#xff0c;为您提供一站式的采购解决方案。 …

牛客论坛项目中使用到Redis的地方总结

实体分为很多类&#xff0c;实体的确定要通过实体类型和实体id两个属性同时确定。牛客论坛中使用到了3类实体&#xff1a; 1 登录 使用到的Redis命令&#xff1a; set key value // 设置指定key的值为value get key // 获取指定key的值1.1 存储/获取验证码 验证码文本&…

【iOS】UITableView性能优化

文章目录 前言一、优化的本质二、卡顿产生原因三、CPU层面优化1.使用轻量级对象2.cellForRowAtIndexPath方法中不要做耗时操作3.UITableView的复用机制4.提前计算好布局了解tableView代理方法执行顺序cell高度计算rowHeightestimatedRowHeight 高度计算进行时机rowHeight计算时…

无参数绕过RCE

一.什么是无参数 顾名思义&#xff0c;就是只使用函数&#xff0c;且函数不能带有参数&#xff0c;这里有种种限制&#xff1a;比如我们选择的函数必须能接受其括号内函数的返回值&#xff1b;使用的函数规定必须参数为空或者为一个参数等 无参数题目特征 if(; preg_replace…

这就是AI眼中的物理世界:OpenAI Sora音乐短片《Worldweight》和超现实影片《气球人》

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…