【深度学习】机器学习概述(二)优化算法之梯度下降法(批量BGD、随机SGD、小批量)


文章目录

  • 一、基本概念
  • 二、机器学习的三要素
    • 1. 模型
      • a. 线性模型
      • b. 非线性模型
    • 2. 学习准则
      • a. 损失函数
      • b. 风险最小化准则
    • 3. 优化
      • 机器学习问题转化成为一个最优化问题
      • a. 参数与超参数
      • b. 梯度下降法
        • 梯度下降法的迭代公式
        • 具体的参数更新公式
        • 学习率的选择
      • c. 随机梯度下降
        • 批量梯度下降法 (BGD)
        • 随机梯度下降法 (SGD)
        • 小批量梯度下降法 (Mini-batch Gradient Descent)
        • SGD 的优势
        • SGD 的挑战

一、基本概念

  机器学习:通过算法使得机器能从大量数据中学习规律从而对新的样本做决策
  机器学习是从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并可以将总结出来的规律推广应用到未观测样本上。
在这里插入图片描述

二、机器学习的三要素

  机器学习方法可以粗略地分为三个基本要素:模型、学习准则、优化算法

1. 模型

a. 线性模型

f ( x ; θ ) = w T x + b f(\mathbf{x}; \boldsymbol{\theta}) = \mathbf{w}^T \mathbf{x} + b f(x;θ)=wTx+b

b. 非线性模型

  广义的非线性模型可以写为多个非线性基函数 ϕ ( x ) \boldsymbol{\phi}(\mathbf{x}) ϕ(x) 的线性组合: f ( x ; θ ) = w T ϕ ( x ) + b f(\mathbf{x}; \boldsymbol{\theta}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}) + b f(x;θ)=wTϕ(x)+b其中, ϕ ( x ) = [ ϕ 1 ( x ) , ϕ 2 ( x ) , … , ϕ K ( x ) ] T \boldsymbol{\phi}(\mathbf{x}) = [\phi_1(\mathbf{x}), \phi_2(\mathbf{x}), \ldots, \phi_K(\mathbf{x})]^T ϕ(x)=[ϕ1(x),ϕ2(x),,ϕK(x)]T 是由 K K K 个非线性基函数组成的向量,参数 θ \boldsymbol{\theta} θ 包含了权重向量 w \mathbf{w} w 和偏置 b b b
  如果 ϕ ( x ) \boldsymbol{\phi}(\mathbf{x}) ϕ(x) 本身是可学习的基函数,例如:

ϕ k ( x ) = h ( w k T ϕ ′ ( x ) + b k ) \phi_k(\mathbf{x}) = h(\mathbf{w}_k^T \boldsymbol{\phi}'(\mathbf{x}) + b_k) ϕk(x)=h(wkTϕ(x)+bk)其中, h ( ⋅ ) h(\cdot) h() 是非线性函数, ϕ ′ ( x ) \boldsymbol{\phi}'(\mathbf{x}) ϕ(x) 是另一组基函数, w k \mathbf{w}_k wk b k b_k bk 是可学习的参数,那么模型 f ( x ; θ ) f(\mathbf{x}; \boldsymbol{\theta}) f(x;θ) 就等价于神经网络模型。

2. 学习准则

a. 损失函数

b. 风险最小化准则

【深度学习】机器学习概述(一)机器学习三要素——模型、学习准则、优化算法

3. 优化

机器学习问题转化成为一个最优化问题

  一旦确定了训练集 D \mathcal{D} D、假设空间 F \mathcal{F} F 以及学习准则,接下来的任务就是通过优化算法找到最优的模型 f ( x , θ ∗ ) f(\mathbf{x}, \boldsymbol{\theta}^*) f(x,θ)。机器学习的训练过程本质上是最优化问题的求解过程。

a. 参数与超参数

  优化可以分为参数优化和超参数优化两个方面:

  1. 参数优化: ( x ; θ ) (\mathbf{x}; \boldsymbol{\theta}) (x;θ) 中的 θ \boldsymbol{\theta} θ 称为模型的参数,这些参数通过优化算法进行学习。这些参数可以通过梯度下降等算法迭代地更新,以使损失函数最小化。

  2. 超参数优化: 除了可学习的参数 θ \boldsymbol{\theta} θ 外,还有一类参数用于定义模型结构或优化策略,这些参数被称为超参数。例如,聚类算法中的类别个数、梯度下降法中的学习率、正则化项的系数、神经网络的层数、支持向量机中的核函数等都是超参数。与可学习的参数不同,超参数的选取通常是一个组合优化问题,很难通过优化算法自动学习。通常,超参数的设定是基于经验或者通过搜索的方法对一组超参数组合进行不断试错调整。

b. 梯度下降法

  在机器学习中,最简单而常用的优化算法之一是梯度下降法。梯度下降法用于最小化一个函数,通常是损失函数或者风险函数。这个函数关于模型参数(权重)的梯度指向了函数值增加最快的方向,梯度下降法利用这一信息来更新参数,使得函数值逐渐减小。

梯度下降法的迭代公式

θ t + 1 = θ t − α ∂ R D ( θ ) ∂ θ \boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \alpha \frac{\partial \mathcal{R}_{\mathcal{D}}(\boldsymbol{\theta})}{\partial \boldsymbol{\theta}} θt+1=θtαθRD(θ)

其中:

  • θ t \boldsymbol{\theta}_t θt 是第 (t) 次迭代时的参数值。
  • α \alpha α 是学习率,控制参数更新的步长。
  • R D ( θ ) \mathcal{R}_{\mathcal{D}}(\boldsymbol{\theta}) RD(θ) 是风险函数,也可以是损失函数,表示在训练集 (\mathcal{D}) 上的性能。

梯度下降法的目标是通过迭代调整参数,使得风险函数最小化。

具体的参数更新公式

参数更新公式可以具体化为:

θ t + 1 = θ t − α 1 N ∑ n = 1 N ∂ L ( y ( n ) , f ( x ( n ) ; θ ) ) ∂ θ \boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \alpha \frac{1}{N} \sum_{n=1}^{N} \frac{\partial \mathcal{L}(y^{(n)}, f(\mathbf{x}^{(n)}; \boldsymbol{\theta}))}{\partial \boldsymbol{\theta}} θt+1=θtαN1n=1NθL(y(n),f(x(n);θ))

其中:

  • N N N 是训练集中样本的数量。
  • L ( y ( n ) , f ( x ( n ) ; θ ) ) \mathcal{L}(y^{(n)}, f(\mathbf{x}^{(n)}; \boldsymbol{\theta})) L(y(n),f(x(n);θ)) 是损失函数,表示模型对样本 n n n 的预测误差。
学习率的选择

  学习率 α \alpha α 是一个关键的超参数,影响着参数更新的步长。选择合适的学习率很重要,过小的学习率可能导致收敛速度过慢,而过大的学习率可能导致参数在优化过程中发散。

  梯度下降法的一种改进是使用自适应学习率的变体,如 Adagrad、RMSprop 和 Adam 等。这些算法能够根据参数的历史梯度自动调整学习率,从而更灵活地适应不同参数的更新需求。

c. 随机梯度下降

在这里插入图片描述

批量梯度下降法 (BGD)

  在批量梯度下降法中,每一次迭代都要计算整个训练集上的梯度,然后更新模型参数,这导致了在大规模数据集上的高计算成本和内存要求。其迭代更新规则如下:

θ t + 1 = θ t − α ∇ R D ( θ t ) \theta_{t+1} = \theta_t - \alpha \nabla \mathcal{R}_{\mathcal{D}}(\theta_t) θt+1=θtαRD(θt)

其中, α \alpha α 是学习率, ∇ R D ( θ t ) \nabla \mathcal{R}_{\mathcal{D}}(\theta_t) RD(θt) 是整个训练集上损失函数关于参数 θ t \theta_t θt 的梯度。

随机梯度下降法 (SGD)

  随机梯度下降法通过在每次迭代中仅使用一个样本来估计梯度,从而减小了计算成本。其迭代更新规则如下:

θ t + 1 = θ t − α ∇ L ( θ t , x i , y i ) \theta_{t+1} = \theta_t - \alpha \nabla \mathcal{L}(\theta_t, \mathbf{x}_i, y_i) θt+1=θtαL(θt,xi,yi)

其中, ∇ L ( θ t , x i , y i ) \nabla \mathcal{L}(\theta_t, \mathbf{x}_i, y_i) L(θt,xi,yi) 是单个样本 ( x i , y i ) (\mathbf{x}_i, y_i) (xi,yi) 上的损失函数关于参数 θ t \theta_t θt 的梯度。

小批量梯度下降法 (Mini-batch Gradient Descent)

  为了权衡计算成本和梯度估计的准确性,通常使用小批量梯度下降法。该方法在每次迭代中使用一个小批量(mini-batch)样本来估计梯度,从而兼具计算效率和梯度准确性。

θ t + 1 = θ t − α ∇ L batch ( θ t , Batch ) \theta_{t+1} = \theta_t - \alpha \nabla \mathcal{L}_{\text{batch}}(\theta_t, \text{Batch}) θt+1=θtαLbatch(θt,Batch)

其中, ∇ L batch ( θ t , Batch ) \nabla \mathcal{L}_{\text{batch}}(\theta_t, \text{Batch}) Lbatch(θt,Batch) 是小批量样本集 Batch \text{Batch} Batch 上的损失函数关于参数 θ t \theta_t θt 的梯度。

SGD 的优势
  1. 计算效率: 相对于批量梯度下降法,SGD的计算成本更低,尤其在大规模数据集上更为实用。

  2. 在线学习: SGD具有在线学习的性质,每次迭代只需一个样本,使得模型可以逐步适应新数据。

  3. 跳出局部极小值: 由于每次迭代使用的样本不同,SGD有助于跳出局部极小值,从而更有可能找到全局最优解。

SGD 的挑战
  1. 不稳定性: SGD中每次迭代的更新可能受到单个样本的影响,导致更新方向波动较大。

  2. 学习率调整: 选择合适的学习率对于SGD的性能至关重要。学习率过大可能导致不稳定性,而学习率过小可能使模型收敛缓慢。

  3. 需调参: SGD的性能依赖于学习率、小批量大小等超参数的选择,需要进行调参。

在实践中,通常会使用学习率衰减、动量法等技术来改进SGD的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

提升英语学习效率,尽在Eudic欧路词典 for Mac

Eudic欧路词典 for Mac是一款专为英语学习者打造的强大工具。无论您是初学者还是高级学习者,这款词典都能满足您的需求。 首先,Eudic欧路词典 for Mac具备丰富的词库,涵盖了各个领域的单词和释义。您可以轻松查询并学习单词的意思、用法和例…

金蝶云星空协同开发环境应用内执行单据类型脚本

文章目录 金蝶云星空协同开发环境应用内执行单据类型脚本业务界面查询单据类型表数据导出数据执行数据库脚本单据类型xml检验是否执行成功检查数据库检查业务数据 金蝶云星空协同开发环境应用内执行单据类型脚本 业务界面 查询单据类型表数据 先使用类型中文在单据类型多语言…

扫地机器人测试点

简介:在科技发展的浪潮下,扫地机器人已经成为越来越多家庭的“贴心管家”,助力我们迎战尘埃和杂物。但是,面对市面上五花八门的扫地机器人,以下为一般情况下扫地机器人的功能测试要点。 历史攻略: AI语音…

VSCode如何编辑Markdown文件

VSCode如何编辑Markdown文件 一、安装插件二、常用命令 一、安装插件 需要在VSCode安装一个插件Markdown Theme Kit 二、常用命令 1、CtrlShiftV 预览模式

104基于matlab的人工蜂群数据聚类算法ABCO-K-均值

基于matlab的人工蜂群数据聚类算法ABCO-K-均值。该代码提供了比K-均值算法更准确的结果。关键技术人工蜂群优化(ABCO)是自然发式优化方法,这是类似于在自然界寻找食物的方式的蜜蜂,以及优化算法搜索最佳的组合优化问题&#xff0c…

HTTP 414错误:请求URI过长,如何避免

在Web开发中,HTTP状态码是用于表示Web服务器响应的各种状态。其中,HTTP 414错误表示请求URI过长,这意味着客户端发送的请求URL超过了服务器所能处理的长度限制。 当请求的URI过长时,服务器可能无法正确处理请求,从而导…

正则表达式:简化模式匹配的利器

正则表达式:简化模式匹配的利器 一、正则表达式简介1.1 正则表达式介绍1.2 正则表达式使用场景 二、正则表达式语法2.1 正则表达式元字符和特性2.2 正则表达式常用匹配 三、正则表达式实战3.1 常见的正则表达式用法3.2 正则表达式的过滤用法3.3 正则表达式的代码用法…

SpringBoot Starter机制(自定义Start案例,实际开发场景中的短信模拟,AOP实现日志打印)

前言: 在我们上一篇博客中,实现Freemarke的增删改查,今天分享的是关于SpringBoot Starter机制-- 1.SpringBoot Starter 1.1.什么是SpringBoot Starter SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂…

云开发微信小程序实战

随着移动互联网的快速发展,微信小程序作为一种轻量级的应用程序,逐渐成为了企业开展业务和提升用户体验的重要工具。而云开发则为企业提供了高效、安全、可靠的后台服务,使得小程序的开发和维护更加便捷。本文将详细介绍如何使用微信小程序与…

web应用开发技术的一些概念

一、Servlet 1.Servlet的工作过程: Servelt的工作流程示意图 (1)客户端发起一个Http请求到服务器,请求特定的资源或者是要执行特定的操作 (2)服务器在接收到请求后,根据请求相应的URL将请求分发…

【node】 地址标准化 解析手机号、姓名、行政区

地址标准化 解析手机号、姓名、行政区 实现效果链接源码 实现效果 将东光县科技园南路444号马晓姐13243214321 解析为 东光县科技园南路444号 13243214321 河北省;沧州市;东光县;东光镇 马晓姐 console.log(address, phone, divisions,name);链接 API概览 源码 https://gi…

WPS Office JS宏实现Excel转换为JSON格式数据

通过Excel JS宏,将表格中的数据以”列“形式导出为JSON数据格式。 我们在整理文档时,产品会通过Excel将功能点和功能描述分层级整理出来,有时需要将此数据导入到系统中,Web端对Json这类数据比较友好,所以这里试着使用E…

【Android】在Android上使用mlKit构建人脸检测程序

在Android上构建人脸检测程序 目录 1、导入mlKit依赖包2、配置人脸检测器并且获取人脸检测器3、加载图片资源4、调用人脸检测器5、绘制矩形边框6、完整代码7、效果展示 1、导入mlKit依赖包 dependencies {// ...// Use this dependency to bundle the model with your appi…

用23种设计模式打造一个cocos creator的游戏框架----(十七)命令模式

1、模式标准 模式名称:命令模式 模式分类:行为型 模式意图:将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作。 结构图: 适用于&am…

DS冲刺整理做题定理(四)查找与排序

最后一期更新,考试之前应该不会再出该专题了,之后有时间会出一些有关链表的代码题,其他章节只挑选重点的总结~ 一.查找 1.顺序查找 又被称为线性查找,对顺序表和链表都使用~基本思想是从某一端开始,逐个检查关键字是否…

GZ015 机器人系统集成应用技术样题1-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书(学生赛) 样题1 选手须知: 本任务书共 25页,如出现任务书缺页、字迹不清等问题,请及时向裁判示意,并进行任务书的更换。参赛队…

IEEE Transactions on Industrial Electronics工业电子TIE论文投稿须知

一、背景 IEEE TIE作为控制领域的TOP期刊,接收机器人、控制、自动驾驶、仪器和传感等方面的论文,当然范围不止这些,感兴趣的可以自行登录TIE官网查看。所投稿论文必须经过实验验证,偏工程应用类,当然也必须有方法上的…

MFC逆向之CrackMe Level3 过反调试 + 写注册机

今天我来分享一下,过反调试的方法以及使用IDA还原代码 写注册机的过程 由于内容太多,我准备分为两个帖子写,这个帖子主要是写IDA还原代码,下一个帖子是写反调试的分析以及过反调试和异常 这个CrackMe Level3是一个朋友发我的,我也不知道他在哪里弄的,我感觉挺好玩的,对反调试…

Ubuntu解决Failed to fetch https://... Could not resolve ‘某个源‘

在我使用sudo apt install subversion的时候遇到报错: 这个报错与Ubuntu操作系统的软件源配置文件有关系。错误提示显示无法解析“mirrors.shanhe.com”地址,这可能是由于更新软件包列表或下载软件包时出现的网络问题。 1.可以先更新一下源试试&#xf…

TCP/IP详解——UDP 协议

文章目录 1. UDP1.1 UDP 头部1.2 UDP 校验和1.3 UDP 传输过程1.4 UDP-Lite1.5 最大 UDP 数据报长度1.6 UDP 输入队列 1. UDP UDP:用户数据报协议(User Datagram Protocol)面向无连接的,也就是无需建立连接,传输不可靠。…