机器学习模型(3/4课时):梯度下降

机器学习入门:线性回归及梯度下降 本文会讲到: (1)线性回归的定义 (2)单变量线性回归 (3)cost function:评价线性回归是否拟合训练集的方法 (4)梯度下降:解决线性回归的方法之一 (5)feature scaling:加快梯度下降执行速度的方法 (6)多变量线性回归 Linear Regression     注意一句话:多变量线性回归之前必须要Feature Scaling 阅读详情

梯度下降法是一种数学方法,可迭代查找可生成损失最低的模型的权重和偏差。梯度下降法会重复以下过程若干次(用户指定的迭代次数),以找到最佳权重和偏差。

模型开始训练时,权重和偏差为接近零的随机值,然后重复以下步骤:

  1. 使用当前权重和偏差计算损失。

  2. 确定用于减少损失的权重和偏差的移动方向。

  3. 将权重和偏差值向可减少损失的方向稍微移动。

  4. 返回第 1 步并重复此过程,直到模型无法进一步降低损失。

下图概述了梯度下降法执行的迭代步骤,以便找到可生成损失最低的模型的权重和偏差。

图片

- 图 1- 

梯度下降是一种迭代过程,用于查找可生成损失最低的模型的权重和偏差。

» 梯度下降背后的数学原理

具体而言,我们可以使用一个包含 7 个示例的小型数据集,演示梯度下降步骤,这些示例分别对应汽车的重量(以磅为单位)和每加仑行驶里程数:

图片

- 图 2 -

  • 模型会先将权重和偏差设为零,然后开始训练:

Weight:0

Bias:0

y=0+0(x1)

  • 使用当前的模型参数计算 MSE 损失:

Loss=[(18−0)2+(15−0)2+(18−0)2+(16−0)2+(15−0)2+(14−0)2+(24−0)2] / 7

Loss=303.71

  • 计算每个权重和偏差处损失函数的切线的斜率:

Weight slope: −119.7

Bias slope: −34.3

  • 向负斜率方向移动一小段距离,即可获得下一个权重和偏差。目前,我们将“小额”定义为 0.01:

New weight = old weight − (small amount∗weight slope)

New bias = old bias − (small amount∗bias slope)

New weight = 0 − (0.01)∗(−119.7)

New bias = 0 − (0.01)∗(−34.3)

New weight = 1.2

New bias = 0.34

使用新的权重和偏差计算损失,然后重复上述步骤。完成六次迭代后,我们会得到以下权重、偏差和损失:

图片

- 图 3- 

您可以看到,随着每次更新权重和偏差,损失会越来越小。在此示例中,我们在 6 次迭代后停止了。实际上,模型会一直训练,直到收敛。当模型收敛时,进行更多迭代不会进一步降低损失,因为梯度下降法已找到几乎能将损失降至最低的权重和偏差。

如果模型在收敛后继续训练,随着模型不断更新参数以使其接近最低值,损失开始小幅波动。这可能会导致难以验证模型是否已实际收敛。为了确认模型已收敛,您需要继续训练,直到损失稳定为止。

» 模型收敛和损失曲线

在训练模型时,您通常会查看损失曲线,以确定模型是否已收敛。损失曲线显示了损失在模型训练过程中的变化情况。典型的损失曲线如下所示。损失在 y 轴上,迭代次数在 x 轴上:

图片

- 图 4 - 

损失曲线,显示模型在第 1,000 次迭代左右收敛。

您可以看到,在前几次迭代中,损失会大幅下降,然后逐渐下降,在第 1,000 次迭代左右趋于平稳。经过 1,000 次迭代后,我们可以基本确定模型已收敛。

在以下图中,我们在训练过程中的三个时间点绘制了模型:开始、中间和结束。在训练过程中直观呈现模型的快照状态,有助于加深对更新权重和偏差、降低损失和模型收敛之间的联系的理解。

在图中,我们使用特定迭代中派生的权重和偏差来表示模型。在包含数据点和模型快照的图表中,从模型到数据点的蓝色损失线表示损失量。线条越长,损失就越大。

在下图中,我们可以看到,在第二次迭代后,由于损失较大,模型无法很好地进行预测。

图片

- 图 5 - 

训练流程开始时的损失曲线和模型快照。

在第 400 次迭代左右,我们可以看到,梯度下降法找到了可生成更优模型的权重和偏差。

图片

- 图 6 - 

损失曲线和训练大约中途的模型快照。

在第 1,000 次迭代左右,我们可以看到模型已收敛,生成了损失可能最低的模型。

图片

- 图 7 - 

训练过程接近结束时的损失曲线和模型快照。

» 收敛和凸函数

线性模型的损失函数始终会产生凸函数面。因此,当线性回归模型收敛时,我们知道该模型已找到可产生最小损失的权重和偏差。

如果我们为具有一个特征的模型绘制损失函数表面图,可以看到其凸形。以下是前面示例中使用的每加仑行驶里程数据集的损失函数表面。权重在 x 轴上,偏差在 y 轴上,损失在 z轴上:

图片

- 图 8 - 

显示凸形的损失曲面。

在此示例中,权重为 -5.44 且偏差为 35.94 时,损失最小,为 5.54:

图片

- 图 9 - 

损失函数表面,显示可产生最小损失的权重和偏差值。

线性模型在找到最小损失后会收敛。因此,进行更多迭代只会导致梯度下降在最小值周围以极小的量移动权重和偏差值。如果我们绘制梯度下降过程中的权重和偏置点图表,这些点看起来就像从山上滚落的球,最终会在没有下坡的点停止。

图片

- 图 10 - 

损失图表,显示梯度下降点在图表上的最低点停止。

请注意,黑色损失点形成了损失曲线的确切形状:先急剧下降,然后逐渐向下倾斜,直到达到损失表面上的最低点。

请务必注意,模型几乎从不找到每个权重和偏差的确切最小值,而是找到非常接近该值的值。另请务必注意,权重和偏差的最小值并不对应于零损失,而只是能为该参数产生最低损失的值。

使用产生最小损失的权重和偏差值(在本例中,权重为 -5.44,偏差为 35.94),我们可以绘制模型图,以了解该模型与数据的拟合程度:

图片

- 图 11 - 

使用产生最小损失的权重和偏差值绘制的模型图。

这是此数据集的最佳模型,因为没有其他权重和偏差值可以产生损失更低的模型。

【python机器学习】——梯度下降法 梯度下降是一种优化算法,用于机器学习和人工智能中以最小化一个函数。在机器学习中,我们通常试图找到一组参数的值,使得某个损失函数(如成本函数)的值最小。梯度下降算法通过迭代地调整参数的值来实现这一点。 阅读详情

相关推荐

[机器学习算法]逻辑回归模型、优缺点及spark ml机器学习库实现LR

目录 一、逻辑回归模型-log损失函数 1.1 模型定义 1.2 损失函数 1.3 梯度下降求解参数 二、利用最大似然估计求解逻辑回归模型参数 三、逻辑回归模型优缺点分析 四、spark ml机器学习库实现逻辑回归模型 五、离散特征作为模型输入 一、逻辑回归模型-log损失函数 1.1 模型定义    1.2 损失函数                    ...

woniu201411的博客 2856

梯度下降算法(gradient descent)

简述梯度下降法又被称为最速下降法(Steepest descend method),其理论基础是梯度的概念。梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的方向导数的最大值。现在假设我们要求函数的最值,采用梯度下降法,如图所示:梯度下降的相关概念    在详细了解梯度下降的算法之前,我们先看看相关的一些概念。    1. 步长(Learning rate...

weixin_30730151的博客 383

保姆级教程:在瑞芯微RV1126B上部署轻量化YOLOv8,实现端侧实时目标检测

本文详细介绍了在瑞芯微RV1126B芯片上部署轻量化YOLOv8模型的完整流程,包括开发环境搭建、模型训练优化、量化转换及嵌入式部署。通过利用RV1126B的3TOPS NPU算力和AI-ISP特性,实现端侧实时目标检测,提升边缘AI应用的性能和效率。

weixin_30329623的博客 269

解锁机器学习-梯度下降:从技术到实战的全面指南

本文全面深入地探讨了梯度下降及其变体——批量梯度下降、随机梯度下降和小批量梯度下降的原理和应用。通过数学表达式和基于PyTorch的代码示例,本文旨在为读者提供一种直观且实用的视角,以理解这些优化算法的工作原理和应用场景。

TechLead 3675

如何更好的理解PFC(功率因数校正)

此电路虽然简单,可以在前期设计的无PFC功能的设备上,简单的增加一个合适的电感(适当的选取L和C的值),从而达到具有PFC的作用,但是这种简单的、低成本的无源PFC输出纹波较大,滤波电容两端的直流电压也较低,电流畸变的校正及功率因数补偿的能力都很差,而且L的绕制及铁芯的质量控制不好,会对图像及伴音产生严重的干扰,只能是对于前期无PFC设备使之能进入市场的临时措施。)在t4~t5期间尽管二极管左边电压在逐步上升,但是由于二极管右边的Uc放电缓慢右边的电压Uc仍旧大于左边,二极管仍旧反偏截止。

U_YAO的博客 949

DexProtector内存校验绕过与DEX提取实战

DEX文件是Android应用的核心执行单元,其动态加载与运行时保护机制直接关系到App安全强度。DexProtector作为主流商业加固方案,摒弃传统文件级防护,转而依托ART虚拟机下的匿名内存映射段(anonymous mmap)构建多维校验体系——涵盖字节码完整性校验、内存页属性检测及运行时环境感知。其技术价值在于将防护锚点从静态APK迁移至动态内存态,大幅提升逆向门槛。典型应用场景包括金融类App的防篡改加固、游戏客户端的反外挂保护,以及政企应用的合规性安全增强。本文聚焦DexProtector v

weixin_30315435的博客 714

【机器学习】梯度下降

梯度下降(Gradient Descent)是一种在机器学习和深度学习中广泛使用的优化算法,用于最小化给定的目标函数。目标函数通常表示模型的误差或损失,我们的目标是找到一组参数,使得这个误差尽可能小。梯度下降的基本思想是迭代地调整模型参数,以减小目标函数的值。它基于这样的观察:如果函数 F(θ)在点 θ是可微的,那么 F(θ)在该点的梯度(∇F(θ)指向函数增长最快的方向。因此,如果我们从当前位置沿着梯度的反方向移动一小步,我们就可以降低函数的值。以下是梯度下降的一般步骤:梯度下降有几种变体,包括:此外,还

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

VLM,VLA,VLN的区别与联系

VLM 提供了理解世界的“眼睛和大脑”,VLN 赋予了这个智能体在空间中“移动的双腿”,而 VLA 则进一步赋予了它“灵巧的双手”来改变世界。三者共同构成了一个完整具身智能体的核心能力模块。

l0409044222的博客 1314

handson-ml3终极优化:梯度下降算法对比完整指南

在机器学习模型训练中,梯度下降算法是实现优化的核心方法。handson-ml3项目通过[extra_gradient_descent_comparison.ipynb](https://link.gitcode.com/i/6aafbbb648f6f6a04acc76583a91fa5e)提供了三种梯度下降算法的详细对比:批量梯度下降、小批量梯度下降和随机梯度下降。本文将为你深入解析这些算法的优缺

gitblog_01037的博客 618

从硬件到软件:深度解析D435i USB SCP overflow错误的根源与解决方案

本文深入解析Intel RealSense D435i相机在ROS环境下常见的'USB SCP overflow'错误,特别是与`control_transfer`相关的错误提示。从硬件配置到软件优化,详细介绍了如何通过调整USB接口、优化`rs_camera.launch`参数、更新固件驱动等方法解决数据传输溢出问题,提升设备稳定性和性能。

yy01234的博客 771

fbx bip互转 测试OK

fbx bip互转

jacke121的专栏 519

机器学习模型(4/4课时):超参数

但是,如果学习速率过高,模型将永远不会收敛,而是在最小化损失的权重和偏差之间来回跳动。模型会随机选择每个批处理中包含的示例,对其梯度求平均值,然后每迭代一次更新权重和偏差。例如,如果梯度幅度为 2.5,学习率为 0.01,则模型将将参数更改 0.025。损失图,显示使用过大学习率训练的模型,其中损失曲线会大幅波动,随着迭代次数的增加而上下波动。请注意,使用随机梯度下降法可能会在整个损失曲线中产生噪声,而不仅仅是在收敛附近。损失图,显示使用过大学习速率训练的模型,其中损失曲线在后续迭代中急剧增加。

EasyOps_DevOps的博客 769

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 7万+

机器学习·day4梯度下降

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ_0,θ_1) 的最小值。

凯的博客 1213

Altium Designer应用技巧1: 功能模块的复用方法

Altium Designer应用技巧1: 功能模块的复用方法      我们在使用Altium Designer进行电路图设计时,常会遇到功能模块的复用问题,例如我们经常需要将12V以DC-DC的方式转换成5V,这在很多线路板上都会应用到。现在我们普通的做法是,每个板子都重新绘制一遍,像这样DC-DC的电路,很浪费时间。那么如何采用提高工作效率呢?我们可以采取Altium Desi

snmplink的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【机器学习】梯度下降算法

相比于批量梯度下降(BGD)和随机梯度下降(SGD),小批量梯度下降综合了两者的优点,既在计算效率上比BGD更高,又比SGD更稳定,能够获得较为准确的梯度信息。总结来说,梯度下降算法的几何解释是,在目标函数的等高线中,沿着梯度的反方向移动参数,通过不断迭代更新参数的路径,最终达到目标函数的最小值。为了克服SGD的问题,可以使用小批量梯度下降(Mini-Batch Gradient Descent),它是将一小批样本的梯度作为参数更新的依据,既兼顾了计算效率,又减小了参数更新的方差。

九筠的博客 2644

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ML算法——梯度下降随笔【机器学习】

是一种通过已知的观测数据,来近似模拟自变量与因变量之间的关系,并进行模型的修正完善、预测等数据分析任务的过程。具体来说,模型拟合的主要思想是通过收集数据点对,利用近似准则,对各数据点之间的关系进行分析,拟合。在实际图像处理中,我们通常不直接使用函数的全微分来确定梯度方向,而是使用更高效的算法如Sobel、Prewitt、Scharr等来计算图像中每个像素点处的梯度幅值和梯度方向。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了这个点!不是,甚至完全相反。

cold的博客 968

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【机器学习】梯度下降算法详解

梯度下降是数学中的一种优化算法,广泛应用在机器学习和深度学习中来寻找最优解。

m0_73881415的博客 1506

Spark ML机器学习:标准化-StandardScaler

1 动机     对于同一个特征,不同的样本中的取值可能会相差非常大,一些异常小或异常大的数据会误导模型的正确训练;另外,如果数据的分布很分散也会影响训练结果。以上两种方式都体现在方差会非常大。此时,我们可以将特征中的值进行标准差标准化,即转换为均值为0,方差为1的正态分布。如果特征非常稀疏,并且有大量的0(现实应用中很多特征都具有这个特点),Z-score 标准化的过程几乎就是一个除0的过程,...

大模型大数据攻城狮的专栏 4482

随机梯度下降法

一、考虑一下线性方程组

Forever-守望 6万+

【ML】 第四章 训练模型

第 4 章训练模型至今我们将机器学习模型及其训练算法视为黑匣子。如果您完成了前几章中的一些练习,您可能会惊讶于在不了解底层内容的情况下可以完成多少工作:您优化了回归系统,改进了数字图像分类器,甚至从头开始构建垃圾邮件分类器,所有这一切都不知道它们实际上是如何工作的。事实上,在许多情况下,您并不需要真正了解实现细节。但是,充分了解事物的工作原理可以帮助您快速了解适当的模型、要使用的正确训练算法以及适合您任务的一组良好的超参数。了解底层内容也将帮助您更有效地调试问题和执行错误分析。

sikh_0529的博客 1万+

机器学习:随机梯度下降法

1.梯度下降 1)什么是梯度下降? 因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降。 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方。但是因为选择方向的原因,我们找到的的最低点可能不是真正的最低点。如图所示,黑线标注的路线所指的方向并不是真正的地方。 既然是选择一个方向下山...

weixin_30622181的博客 5325

机器学习第4天:模型优化方法—梯度下降

在一个多元函数中,某点的梯度方向代表函数增加最快的方向,梯度下降的原理就是,找到损失函数下降最快的方向(与梯度方向相反),然后往这个方向走,最后达到损失函数的最小值,如下图,从高的红色点到达了低的蓝色点,梯度下降就是这样一个过程我们可以得到一个参数更新公式,把参数设为a, 梯度设为grad,那么。

Nowl的博客 524

机器学习 -- 梯度下降

梯度下降

m0_73338216的博客 1318

模型优化利器:梯度下降算法

本文介绍了梯度下降法的基本原理及其在机器学习中的应用。从基本思想、核心原理、实际应用和变体四个方面展开:1)基本思想是通过计算梯度方向逐步调整参数;2)核心原理包括预测函数、代价函数、梯度计算、学习率设置和迭代过程;3)实际应用中讨论了多维复杂场景;4)介绍了批量梯度下降、随机梯度下降和小批量梯度下降等变体,并分析了各自的优缺点。文章还指出梯度下降法的局限性,如对学习率敏感、易陷入局部最优等问题,并简要提及AdaGrad、RMSProp、Adam等改进算法。该方法简单有效,是众多机器学习算法的基础。

2502_93664759的博客 2063

Tensor4ML:项目核心功能/场景

Tensor4ML:项目核心功能/场景 Tensor4ML,即机器学习中的张量分解(Tensor Decomposition for Machine Learning),是一项专注于利用张量分解技术优化机器学习模型的开源项目。 项目介绍 Tensor4ML 是一项由 Xinyu Chen 开发的开源项目,该项目汇总了过往十年至百年间关于张量分解模型和算法的文献发展。项目通过提供全面的回顾和教程,覆...

gitblog_00929的博客 824
上一篇: 行业首次:优维EasyOps平台能力全面MCP化,打造AI时代人机协同
下一篇: EasyOps®5月热力焕新:三大核心模块重构效能边界
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值