【深度学习】机器学习概述(二)优化算法之梯度下降法(批量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的性能。

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

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

相关文章

DevEco Studio 项目鸿蒙(HarmonyOS)资源引用(自定统和系统)

DevEco Studio 项目鸿蒙(HarmonyOS)资源引用(自定统和系统) 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、资源访问 HarmonyOS应用资源分为两类,一类是应用资源&…

调用第三方http接口 hutool工具类

1、引入依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0.M2</version> </dependency>2、请求组装 String params"<BSXml>" " <MsgHeader>&…

【数组Array】力扣-304 二维区域和检索 - 矩阵不可变

目录 题目描述 解题过程 labuladong题解 题目描述 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的 左上角 为 (row1, col1) &#xff0c;右下角 为 (row2, col2) 。 实现 NumMatrix 类&#xf…

逻辑回归的介绍和应用

逻辑回归的介绍 逻辑回归&#xff08;Logistic regression&#xff0c;简称LR&#xff09;虽然其中带有"回归"两个字&#xff0c;但逻辑回归其实是一个分类模型&#xff0c;并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热&#xff0c;但实…

基于YOLOv8深度学习的高精度车辆行人检测与计数系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

YOLOv8 图片目标计数 | 特定目标进行计数

全类别计数特定类别计数如何使用 YOLOv8 进行对象计数 有很多同学留言说想学 YOLOv8 目标计数。那么今天这篇博客,我将教大家如何使用 YOLOv8 进行对象计数。YOLOv8 是一种非常强大的对象检测模型,它可以识别图像中的各种对象。我们将学习如何利用这个模型对特定对象进行计数…

Unity中URP Shader 的 SRP Batcher

文章目录 前言一、SRP Batcher是什么二、SRP Batcher的使用条件1、可编程渲染管线2、我们用URP作为例子3、URP 设置中 Use SRP Batcher开启4、使 SRP Batcher 代码路径能够渲染对象5、使着色器与 SRP Batcher 兼容&#xff1a; 三、不同合批之间的区别BuildIn Render Pipeline下…

IDEA新建jdk8 spring boot项目

今天新建spring boot项目发现JDK版本最低可选17。 但是目前用的最多的还是JDK8啊。 解决办法 Server URL中设置&#xff1a; https://start.aliyun.com/设置完成后&#xff0c;又可以愉快的用jdk8创建项目了。 参考 https://blog.csdn.net/imbzz/article/details/13469117…

轻松制作健身预约小程序

如果你想制作一个健身预约小程序&#xff0c;实现高效预约与健身管理&#xff0c;可以按照以下步骤进行操作。 第一步&#xff1a;注册登录乔拓云平台&#xff0c;进入后台 第二步&#xff1a;点击【轻应用小程序】&#xff0c;进入设计小程序页面。 第三步&#xff1a;在设计小…

SAP ABAP 面试题交流

1.列举AT事件并说明其作用&#xff0c;AT事件中的工作区有何不同&#xff1f; AT FIRST 循环loop中执行第一条数据 AT LAST 循环loop中执行最后一条数据 AT NEW 循环loop中指定字段&#xff08;包含指定字段&#xff09;记录与上一条记录不一致数据执行 AT END OF 循环loo…

计算机网络快速刷题

自用//奈奎斯特定理和香农定理计算题 参考博客&#xff1a;UDP协议是什么&#xff1f;作用是什么&#xff1f; 肝了&#xff0c;整理了8张图详解ARP原理 【网络协议详解】——FTP系统协议&#xff08;学习笔记&#xff09; 在OSI参考模型中&am…

Spring Boot整合Sharding-JDBC实现数据脱敏

目录 背景ShardingSphere脱敏规则sharding-jdbc数据脱敏数据脱敏配置数据分片 数据脱敏配置 背景 对互联网公司、传统行业来说&#xff0c;数据安全一直是极为重视和敏感的话题。数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形&#xff0c;实现敏感隐私数据的可靠保护…