梯度下降法

前言:在均方差损失函数推导中,我使用到了梯度下降法来优化模型,即迭代优化线性模型\hat{y}=\theta _{0}+\theta_{1}x中的\theta _{0}\theta_{1}。现在进一步了解梯度下降法的含义以及具体用法。

一、梯度下降法(入门级理解)

定义:梯度下降是一种用于最小化损失函数的优化算法。在机器学习和深度学习中,梯度下降被广泛应用于更新模型参数,以使模型能够更好地拟合训练数据。

基本思想:通过不断迭代,沿着损失函数的负梯度方向更新模型参数,直到达到损失函数的最小值。具体来说,对于每个迭代步骤,算法会计算损失函数对每个参数的偏导数(梯度),然后沿着负梯度的方向更新参数。

理解:

        对于我们所建立的损失函数J(w,b),我们需要不断改变其中的w、b来使得J(w,b)取得最小值。通常而言,我们会首先设w、b均为0,通过不断改变w、b的取值求得对应J(w,b)的值,并找到其中的最小值。

        吴恩达老师给出的例子中绘制了J(w,b)对应的函数图像,我们通过高中导数求函数最小值的知识很容易得出J(w,b)取得最小值的点。梯度下降法就是为了得到J(w,b)取得最小值时对应的点。

        然而,真实情况下,我们的数据通常不会只有两个维度。下图展现的才是我们通常需要分析的图:

 

        将上面的图看作山峰,梯度下降法所做的是,你要自旋360^{\circ}环顾四周并询问自己,如果我想尽快下山并去往其中一个山谷,我应该选哪个方向迈出一步。很明显应该是梯度最大的方向(不会被摔死,不要瞎想)。所以可以理解梯度下降法的核心就是每一步都选择下降梯度最大的方向。

         需要注意的是选择不同的出发点会到达不同的局部最小值。

二、梯度下降算法

对于模型y=wx+b

  • 首先对w,b赋予初值【可以使用随机数、或者其他方式初始化】
  • 然后求损失函数J(w,b)并对w、b分别求偏导数(梯度)

                J(w,b)=\frac{1}{2n}\sum_{i=1}^{n}(y_{i}-(wx+b))

        ​​​​​​​        w=w-\alpha \frac{\partial }{\partial w}J(w,b)

        ​​​​​​​        b=w-\alpha \frac{\partial }{\partial b}J(w,b)

  • 更新w,b的值:沿着梯度的反方向更新参数 w 和 b,即向着损失函数减小的方向移动。这个更新过程可以使用不同的学习率α来控制每次更新的步长。
  • 重复迭代:重复执行求偏导数和更新w、b值的工作,直到达到预定的迭代次数或者损失函数收敛到一个满意的值。

三、(附)学习率α 

上面提到在求解新的w和b时需要使用到学习率α,以下是学习率α的详细介绍。

定义:学习率是梯度下降算法中的一个重要参数,用于控制每次参数更新的步长。在梯度下降算法中,我们沿着损失函数的负梯度方向更新参数,学习率就是用来调节这个更新步长的参数

注意点:如果学习率设置得太小,那么参数更新的步长就会很小,收敛速度会很慢,需要更多的迭代次数才能收敛到最优值;而如果学习率设置得太大,可能会导致参数更新过大,甚至导致算法发散。(学习率α一般通过实验和经验进行选择)

常见自适应学习率优化算法:

  1. AdaGrad(Adaptive Gradient Algorithm):AdaGrad 是一种自适应学习率算法,它根据参数的梯度历史信息来调整学习率。具体来说,它对每个参数的学习率进行缩放,使得在训练过程中梯度较大的参数的学习率变小,而梯度较小的参数的学习率变大。

  2. RMSprop(Root Mean Square Propagation):RMSprop 也是一种自适应学习率算法,它通过引入一个衰减系数,来对梯度的平方进行加权平均。这样可以使得梯度较大的参数的学习率减小,而梯度较小的参数的学习率增大。

  3. Adam(Adaptive Moment Estimation):Adam 是一种结合了动量(momentum)和自适应学习率的优化算法。它利用梯度的一阶矩估计和二阶矩估计来调整参数的学习率,同时具有一定的动量效果,可以加速收敛过程。

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

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

相关文章

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”

近日,全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》(全球云数据库管理系统魔力象限)。全自研分布式数据库 OceanBase 入选“荣誉提及”,2022 年推出的云数据库 OB Clo…

成都直播电商市场发展空间广阔,成都直播产业园预计未来三年市场规模持续上升

近年,直播产业已经成为了国民经济复苏的重要平台之一。随着“直播带货”这种消费模式的兴起,目前,成都直播市场上展现出了强大的潜力和活力,并且加快了实体商业向数字化转型的步伐,预计,成都直播产业园未来…

【elfboard linux开发板】7.i2C工具应用与aht20温湿度寄存器读取

1. I2C工具查看aht20的温湿度寄存器值 1.1 原理图 传感器通过IIC方式进行通信,连接的为IIC1总线,且设备地址为0x38,实际上通过后续iic工具查询,这个设备是挂载在iic-0上 1.2 I2C工具 通过i2c工具可以实现查询i2c总线、以及上面…

Jenkins部署项目

一.安装jenkins 1.1进入jenkins官网下载jenkins war包,上传到服务器/usr/local目录。 1.2执行启动jenkins命令,(注意jenkins版本需要的jdk版本) /usr/local/java11/bin/java -Djava.awt.headlesstrue -jar /usr/local/jenkins.wa…

『华为云耀云服务器实战』|云服务器如何快速搭建个人博客(图文详解)

文章目录 引言一、云耀云服务器L实例介绍1.1 准备一个华为云耀云服务器1.2 重置实例密码1.3 利用xshell 远程连接 二、安装环境软件2.1 安装git准备远程拉取2.2 安装Docker 和 Docker compose 三、博客开源项目介绍3.1 操作界面展览 四、拉取项目搭建个人博客4.1 拉取项目进行配…

优势演员-评论家算法 A2C

优势演员-评论家算法 A2C 优势演员-评论家算法 A2C主要思想目标函数 优势演员-评论家算法 A2C 前置知识:演员-评论家算法:多智能体强化学习核心框架 主要思想 AC 网络结构: 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是…

嵌入式-C语言-const关键字-指针常量和常量指针

C语言-指针常量和常量指针 一:结论 1.常量指针 :b的值不能变,但是b的地址能变 const int* b &x; 2.指针常量:p的地址不能变,但是p的值能变 int* const p &y; 3.巧记口诀 星在(const&#xf…

深度强化学习DQN训练避障

目录 一.前言 二.代码 2.1完整代码 2.2运行环境 2.3动作空间 2.4奖励函数 2.5状态输入 2.6实验结果 一.前言 深度Q网络(DQN)是深度强化学习领域的一项革命性技术,它成功地将深度学习的强大感知能力与强化学习的决策能力相结合。在过…

浏览器请求的并行与串行以及并发数的管控

1 浏览器在发起网络请求数据的时候,允许同时请求5-7个接口。即使我们同时请求20个接口, 浏览器也只会优先请求5-7个,当5-7个有请求成功或失败的接口之后,在进行下一个填充请 求,一直到所有的接口请求完…

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】 1、概述2、实验环境3、 自我总结4、 实验过程1、验证上位机QT程序1、下载样例代码2、修改qt程序3、运行测试验证 2、验证下位机ESP32程序1、下载样例代码2、更改ESP3…

【测试基础】构造测试数据之 MySQL 篇

构造测试数据之 MySQL 篇 作为一名测试工程师,我们经常会构造测试数据进行一些功能验证。为了暴露更多的问题,在测试数据的构造上,我们应该尽可能的构造不同类型字段的数据,且一张表的字段最好不低于 10 10 10 个。 对于 MySQL …