【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的?

【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的?

【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的?


文章目录

  • 【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的?
  • 1. 什么是梯度?
  • 2.梯度下降法(Gradient Descent)
  • 3. 链式法则(Chain Rule)
  • 4. 梯度下降法的变种
    • 批量梯度下降(Batch Gradient Descent)
    • 随机梯度下降(Stochastic Gradient Descent, SGD)
    • 小批量梯度下降(Mini-batch Gradient Descent)
  • 总结


1. 什么是梯度?

在深度学习中,梯度是损失函数相对于模型参数的偏导数。梯度表示损失函数在参数空间中的变化率,指示出在参数值上的变化对损失函数值的影响。模型通过计算梯度来更新参数,从而最小化损失函数

  • 梯度的含义: 梯度是损失函数的局部导数,表明某个参数如何影响损失函数。若梯度为正,说明损失函数随着该参数的增大而增大,若为负,则表明损失函数随着该参数的增大而减小。
  • 数学公式:对于某个参数 θ θ θ,梯度 ∇ J ( θ ) ∇J(θ) J(θ) 是损失函数 J ( θ ) J(θ) J(θ) θ θ θ的偏导数:
    在这里插入图片描述

2.梯度下降法(Gradient Descent)

梯度下降法是一种通过迭代优化算法来寻找损失函数最小值的方法。模型通过计算损失函数相对于模型参数的梯度,沿着梯度的反方向更新参数,逐步逼近损失函数的最小值。

梯度下降法公式

梯度下降的核心公式是:
在这里插入图片描述

  • θ θ θ:模型参数(如权重和偏置)。
  • η η η:学习率(learning rate),控制更新步长的大小。
  • ∇ J ( θ ) ∇J(θ) J(θ):损失函数 J ( θ ) J(θ) J(θ) 对参数 θ θ θ 的梯度。

学习率控制每次更新的步长。如果学习率太大,可能导致错过最优解;如果学习率太小,训练过程将非常缓慢。

梯度下降的流程

  • (1)初始化模型参数。
  • (2)计算损失函数对参数的梯度。
  • (3)根据梯度的反方向更新参数。
  • (4)重复迭代,直到找到损失函数的局部或全局最小值。

代码示例:简单的梯度下降法

import torch# 定义参数并启用梯度计算
x = torch.tensor([2.0], requires_grad=True)  # 模型参数
y_true = torch.tensor([4.0])  # 目标值# 定义简单的损失函数 (MSE)
loss = (x - y_true) ** 2# 计算梯度
loss.backward()  # 反向传播计算梯度
print(f'梯度: {x.grad.item()}')# 使用梯度下降法更新参数
learning_rate = 0.1
x.data = x.data - learning_rate * x.grad.data  # 更新参数
print(f'更新后的参数: {x.item()}')

3. 链式法则(Chain Rule)

链式法则是微积分中的一种技术,它用于计算复合函数的导数。深度学习中的反向传播算法就是基于链式法则来计算梯度的。

如果一个函数由多个嵌套函数组成,比如:
在这里插入图片描述
根据链式法则,函数 f f f x x x 的导数为:
在这里插入图片描述
在神经网络中,链式法则用于从输出层到输入层逐层计算梯度,每一层的梯度依赖于其后层的梯度。

链式法则在神经网络中的应用

在神经网络中,假设有三层网络,损失函数为 L L L,每一层的激活函数为 a ( l ) a (l) a(l),权重为 W ( l ) W (l) W(l),则通过链式法则,我们可以逐层计算损失函数对每一层权重的梯度:

  • 从输出层开始:
    在这里插入图片描述
  • 逐层回传:
    在这里插入图片描述
    这种逐层计算梯度的过程就是反向传播(Backpropagation),它有效地使用了链式法则计算每个参数的梯度。

代码示例:链式法则在 PyTorch 中的实现

import torch# 假设一个简单的神经网络层:y = Wx + b
W = torch.tensor([2.0], requires_grad=True)  # 权重
b = torch.tensor([1.0], requires_grad=True)  # 偏置
x = torch.tensor([3.0])  # 输入# 前向传播
y = W * x + b# 定义损失函数 (比如平方误差)
loss = (y - 10) ** 2# 反向传播计算梯度
loss.backward()# 输出梯度
print(f'W 的梯度: {W.grad.item()}')
print(f'b 的梯度: {b.grad.item()}')

在这个例子中,通过链式法则,PyTorch 自动计算了损失函数相对于 W W W b b b 的梯度。

4. 梯度下降法的变种

在实际应用中,梯度下降法有多种变体,适用于不同类型的任务:

批量梯度下降(Batch Gradient Descent)

  • 使用全部数据来计算损失函数的梯度,然后更新参数。
  • 缺点是当数据量大时,计算开销非常大。

随机梯度下降(Stochastic Gradient Descent, SGD)

  • 每次只使用一个样本计算梯度并更新参数。
  • 优点是计算速度快,但收敛路径不稳定。

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

  • 每次使用一小部分样本(mini-batch)来计算梯度并更新参数,兼具批量和随机梯度下降的优点。

总结

  • 梯度是损失函数对模型参数的偏导数,用于指导模型参数的更新方向。
  • 梯度下降法是一种通过沿梯度反方向更新参数来最小化损失函数的优化方法。
  • 链式法则是神经网络中反向传播算法的基础,用于逐层计算梯度。
    通过梯度下降和链式法则,神经网络能够有效地学习复杂的非线性关系,从而优化模型的表现。

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

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

相关文章

2024-04-23 人工智能增强天基通信和传感

砺道智库2024-04-23 11:18 北京 据国家防务网4月19日报道,随着商业卫星、军事星座及其所有数据在太空中流动的数量不断增加,政府和行业运营商表示,他们正在寻求人工智能来帮助他们处理日益复杂的任务。 人工智能软件使用户能够在轨道上改变航…

饲料颗粒机全套设备有哪些机器组成

饲料颗粒机全套设备通常包括原料粉碎、混合机、制粒机、冷却器、筛分机、包装机以及配套的电气控制等多个部分组成:1、粉碎机:将各种饲料原料进行清理、去杂、破碎等预处理,确保原料的纯净度和适宜粒度,为后续加工做准备。2、混合…

【永磁同步电机(PMSM)】 5. PMSM 的仿真模型

【永磁同步电机(PMSM)】 5. PMSM 的仿真模型 1. 基于 Simulink 的仿真模型1.1 PMSM 的数学模型1.2 Simulink 仿真模型1.3 模块封装(mask)1.4 三相PMSM矢量控制仿真模型 2. Simscape 的 PMSM 模块2.1 PMSM 模块的配置2.2 PMSM 模块…

系统架构设计师:软件架构的演化和维护

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师:软件架构的演化和维护前言软件架构演化的重要性面向对象的软件架构演…

数据结构与算法学习day22-回溯算法-分割回文串、复原IP地址、子集

一、分割回文串 1.题目 131. 分割回文串 - 力扣(LeetCode) 2.思路 分割回文串可以抽象为一棵树形结构。 递归用来纵向遍历,for循环用来横向遍历,切割线(就是图中的红线)切割到字符串的结尾位置&#xf…

数据库DDL语句

目录 1. 引言 2. DDL基础知识 3. 常用DDL语句 3.1 CREATE语句 示例:创建表 3.2 ALTER语句 示例:添加列 示例:修改字段类型 3.3 DROP语句 示例:删除表 3.4 TRUNCATE语句 示例:清空表 4. DDL与DML的区别 区…

WIFI路由器的套杆天线简谈

❝本次推文简单介绍下WIFI路由器的套杆天线。 路由器天线 路由器在这个万物互联的时代,想必大家对其都不陌生。随着科技的发展,常用的路由器上的天线也越来越多,那么问题来了:天线越多,信号越好吗?路由器…

文件系统设计 - 开发文件系统 Store (上篇)

本节开始,我们将从最核心基础的文件系统进行设计实现,构建文件系统Store 一个基础的响应式Store类设计文件系统类接口小结 一个基础的响应式Store类 从Vue3 开始,Vue响应式借助Proxy重构后,整个响应式系统的应用变得非常的灵活&a…

vue2:树形控件el-tree中加载两种不同结构的数据

需求 需要在树形控件中逐级显示公司、部门以及不同部门下的项目信息。其中,公司及部门信息的结构是一致的,但是项目是另一种结构(类)。所以,树结构中需要用到两种不同结构的数据。 El-tree 主要属性 下面是一个el-…

《ChatGPT:强大的人工智能聊天机器人》

《ChatGPT:强大的人工智能聊天机器人》 一、引言 在当今科技飞速发展的时代,人工智能已经成为了各个领域的热门话题。而 ChatGPT,作为一款强大的人工智能聊天机器人,自推出以来就引起了广泛的关注和热议。它不仅能够进行自然流畅的…

浅谈Spring Cloud:认识微服务

SpringCloud就是分布式微服务架构的一站式解决方案,是微服务架构落地的多种技术的集合。 目录 微服务远程调用 Eureka注册中心 搭建Eureka Server 注册组件 服务拉取 当各种各样的服务越来越多,拆分的也越来越细,此时就会出现一个服务集…

基于mockito做单元测试

1.简介 配合断言使用(杜绝System.out)可重复执行不依赖环境不会对数据产生影响Spring的上下文环境不是必备的一般都配合mock类框架对数据库进行隔离 mock类使用场景: 要进行测试的方法存在外部依赖(DB,Redis,第三方接口),为了专注于对该方法的逻辑进行测试&#…

计算机毕业设计 社区医疗服务系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

国产游戏技术能否引领全球【终稿】

国产游戏技术能否引领全球 摘要:近年来,国产游戏行业蓬勃发展,技术水平不断提升,多款作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,中国游戏开发者在各个领域都取得了显著进步。…

MySQL高阶1919-兴趣相同的朋友

题目 请写一段SQL查询获取到兴趣相同的朋友。用户 x 和 用户 y 是兴趣相同的朋友,需满足下述条件: 用户 x 和 y 是朋友,并且用户 x and y 在同一天内听过相同的歌曲,且数量大于等于三首. 结果表 无需排序 。注意:返…

常见排序(C语言版)

1.排序的概念及其应用 1.1排序的概念 排序:​ 在计算机科学与数学中,一个排序算法(英语:Sorting algorithm)是一种能将一串资料依照特定排序方式排列的算法。 稳定性:假定在待排序的记录序列中&#xff…

聚观早报 | 小米三折叠手机专利曝光;李斌谈合肥投资蔚来

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 9月20日消息 小米三折叠手机专利曝光 李斌谈合肥投资蔚来 索尼PS5 Pro包装亮相 新一代Spectacles AR眼镜发布 通…

三十种编程语言庆祝【国庆节】!!!

30种编程语言来打印“国庆节快乐”: 分别为: PythonJavaScriptJavaCCC#PHPRubySwiftGoRustKotlinScalaPerlRLuaDartTypeScriptBash (Shell)F#JuliaElixirHaskellGroovyVisual Basic .NETMATLABPowerShellSQLVBA (Visual Basic for Applications)COBOL …

《AI系统:原理与架构》于华为HC大会2024正式发布

2024年9月21日,《AI系统:原理与架构》新书发布会在上海世博馆华为HC大会顺利举办。本书由华为昇腾技术专家、B站AI科普博主ZOMI酱和哈工大软件学院副院长苏统华教授联合编写,是领域内AI系统方面填补空白的重磅之作。 发布会上,《A…

Spring:项目中的统一异常处理和自定义异常

介绍异常的处理方式。在项目中,都会进行自定义异常,并且都是需要配合统一结果返回进行使用。 1.背景引入 (1)背景介绍 为什么要处理异常?如果不处理项目中的异常信息,前端访问我们后端就是显示访问失败的…