卷积神经网络 - 梯度和反向传播算法

在卷积网络中,参数为卷积核中权重以及偏置。和全连接前馈网络类似,卷积网络也可以通过误差反向传播算法来进行参数学习。本文我们从数学角度,来学习卷积神经网络梯度的推导和其反向传播算法的原理。

一、梯度:损失函数 L 关于第 𝑙 层的卷积核𝑾 和 偏置B的偏导数

在全连接前馈神经网络中,梯度主要通过每一层的误差项 𝛿 进行反向传播, 并进一步计算每层参数的梯度。

在卷积神经网络中,主要有两种不同功能的神经层:卷积层和汇聚层。而参数为卷积核以及偏置,因此只需要计算卷积层中参数的梯度。

不失一般性,对第 𝑙 层为卷积层,第 𝑙 − 1 层的输入特征映射为 𝒳^(𝑙−1) ∈ R^(𝑀×𝑁×𝐷),通过卷积计算得到第𝑙层的特征映射净输入𝒵^(𝑙) ∈R^(𝑀′×𝑁′×𝑃)。第𝑙层的第𝑝(1 ≤ 𝑝 ≤ 𝑃)个特征映射净输入:

其中 𝑾 ^(𝑙,𝑝,𝑑) 和 𝑏^(𝑙,𝑝) 为卷积核以及偏置。第 𝑙 层中共有 𝑃 × 𝐷 个卷积核和 𝑃 个偏 置,可以分别使用链式法则来计算其梯度。

根据卷积的导数计算公式,可以参考:

卷积神经网络 - 卷积的变种、数学性质-CSDN博客

损失函数 L 关于第 𝑙 层的卷积核 𝑾 ^(𝑙,𝑝,𝑑) 的偏导数为:

其中,

为损失函数关于第 𝑙 层的第 𝑝 个特征映射净输入 𝒁(𝑙,𝑝) 的偏导数。

同理可得,损失函数关于第 𝑙 层的第 𝑝 个偏置 𝑏^(𝑙,𝑝) 的偏导数为:

在卷积网络中,每层参数的梯度依赖其所在层的误差项 𝛿^(𝑙,𝑝)。

二、卷积神经网络的反向传播算法

卷积层和汇聚层中误差项的计算有所不同,因此我们分别计算其误差项。

1、汇聚层

当第 𝑙 + 1 层为汇聚层时,因为汇聚层是下采样操作,𝑙 + 1 层的每个神经元的误差项 𝛿 对应于第 𝑙 层的相应特征映射的一个区域。𝑙 层的第 𝑝 个特征映射中的每个神经元都有一条边和 𝑙 + 1 层的第 𝑝 个特征映射中的一个神经元相连。

根据链式法则,第 𝑙 层的一个特征映射的误差项 𝛿^(𝑙,𝑝),只需要将 𝑙 + 1 层对应特征映射的误差项 𝛿^(𝑙+1,𝑝) 进行上采样操作(和第 𝑙 层的大小一样),再和 𝑙 层特征映射 的激活值偏导数逐元素相乘,就得到了 𝛿^(𝑙,𝑝)。

这段话比较抽象,大家可以慢慢理解,着重理解前后层之间误差项的关系:

第 𝑙 层的第 𝑝 个特征映射的误差项 𝛿^(𝑙,𝑝) 的具体推导过程如下:

其中 为第 𝑙 层使用的激活函数导数,up 为上采样函数(up sampling),与汇聚层中使用的下采样操作刚好相反。

如果下采样是最大汇聚,误差项 𝛿^(𝑙+1,𝑝) 中每个值会直接传递到前一层对应区域中的最大值所对应的神经元,该区域中其他神经元的误差项都设为 0。

如果下采样是平均汇聚,误差项 𝛿^(𝑙+1,𝑝) 中每个值会被平均分配到前一层对应区域中的所有神经元上。

2、卷积层

当𝑙 + 1层为卷积层时,假设特征映射净输入𝒵^(𝑙+1) ∈ R^(𝑀′×𝑁′×𝑃),其中第𝑝(1 ≤ 𝑝 ≤ 𝑃)个特征映射净输入:

其中𝑾^(𝑙+1,𝑝,𝑑) 和𝑏^(𝑙+1,𝑝) 为第𝑙+1层的卷积核以及偏置。第𝑙+1层中共有𝑃×𝐷 个卷积核和 𝑃 个偏置。

第 𝑙 层的第 𝑑 个特征映射的误差项 𝛿^(𝑙,𝑑) 的具体推导过程如下:

可以看到,第l层的误差项,还是可以通过第l+1层的误差项推导而来,就是所谓的反向传播算法。和前馈全连接神经网络的反向传播算法有所不同,但是思路是类似的,理解这一点很关键。

三、附:卷积神经网络中的上采样和下采样

在卷积神经网络(CNN)中,上采样和下采样是两个关键操作,用于调整特征图的空间尺寸,从而达到提取有用特征和恢复空间分辨率的目的。下面详细解释这两个概念,并举例说明:

1. 下采样(Downsampling)

定义与目的
下采样主要用于减少特征图的空间尺寸。常见方法有最大池化平均池化

  • 最大池化:在一个预定义区域内(如2×2),取最大值。
  • 平均池化:在该区域内取平均值。

作用

  • 降维和降低计算量:减小后续层输入的尺寸,从而减少参数量和计算量。
  • 增强局部不变性:对小幅平移、旋转和尺度变化不敏感,提高特征的鲁棒性。

例子
假设我们有一张特征图尺寸为 28×28×64(64个通道),使用 2×2 最大池化,步幅为 2。池化操作会把每个2×2区域中的最大值选出,从而将尺寸缩小到 14×14×64。这一步骤使得网络更关注局部最显著的特征,同时降低计算资源消耗。

2. 上采样(Upsampling)

定义与目的
上采样用于增大特征图的空间尺寸,常见方法包括最近邻插值双线性插值以及转置卷积(反卷积)

  • 最近邻插值:简单地复制最近的像素值。
  • 双线性插值:根据周围像素的线性关系计算新像素值。
  • 转置卷积:通过可学习的卷积核将低分辨率特征图“反向”映射到高分辨率空间,同时恢复部分细节信息。

作用

  • 恢复空间细节:例如在语义分割或图像生成任务中,需要将经过下采样后的特征图恢复到与输入图像相同的分辨率,以便对每个像素做出预测或生成高分辨率图像。

例子
在语义分割任务中,一个常见的网络(如U-Net)首先对输入图像(例如 224×224)经过多层卷积和池化操作进行下采样,最终得到较小的特征图(比如 28×28)。接着,通过上采样(例如转置卷积)将这些特征图逐步恢复到原始尺寸224×224,以便为每个像素分配一个类别标签。上采样过程中,网络不仅简单放大图像,还通过学习对细节进行重建,从而生成更精细的分割结果。

3. 综合说明

  • 下采样
    将输入特征图通过池化操作等方式缩小尺寸,提取局部最重要的特征,同时降低计算量。
    例子:从 28×28×64 的特征图通过2×2最大池化变为 14×14×64。

  • 上采样
    将下采样后的特征图通过插值或转置卷积等方法放大,还原出细节和空间信息。
    例子:在语义分割中,将 28×28×F 的特征图逐步上采样到 224×224,最终得到与原图大小一致的分割图。

这两个操作在网络中通常处于对称结构中(例如编码器-解码器结构):编码器部分通过下采样提取抽象特征,解码器部分通过上采样恢复空间分辨率,最终实现像素级的预测或图像生成。

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

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

相关文章

鸿蒙NEXT项目实战-百得知识库03

代码仓地址,大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点: 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…

【测试篇】关于allpairs实现正交测试用例保姆级讲解,以及常见的错误问题

前言 🌟🌟本期讲解关于测试工具相关知识介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不多说…

OpenCV图像拼接(4)图像拼接模块的一个匹配器类cv::detail::BestOf2NearestRangeMatcher

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::BestOf2NearestRangeMatcher 是 OpenCV 库中用于图像拼接模块的一个匹配器类,专门用于寻找两幅图像之间的最佳特征点匹配…

C++: AVL树(实现旋转操作)

前言 map/set容器有个共同点是:其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),因此map、set…

OpenCV中距离公式

一、各类距离公式总结 常见距离公式 欧氏距离: 曼哈顿距离(L1)‌: 切比雪夫距离(Chessboard)‌: 1、点与点距离(欧氏距离) ‌二维空间‌ 设两点坐标为 P1(x1,y1)、P2(x2,y2),其距离…

六十天前端强化训练之第二十四天之Vue 模板语法与 v-for 指令大师级详解

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗,谢谢大佬! 目录 一、模板语法与指令知识精讲 1.1 模板语法三大核心 1.2 常见指令全家福 1.3 v-for 深度解析 二、商品列表示例完整实现 2.1 完整可运行代码 2.2 代码解析 2.3 运行效果…

XSS跨站脚本攻击漏洞(Cross Site Scripting)

前提概要 本文章主要用于分享XSS跨站脚本攻击漏洞基础学习,以下是对XSS跨站脚本攻击漏洞的一些个人解析,请大家结合参考其他文章中的相关信息进行归纳和补充。 XSS跨站脚本攻击漏洞描述 跨站脚本攻击(XSS)漏洞是一种常见且危害较…

用ArcGIS做一张符合环评要求的植被类型图

植被类型图是环境影响评价(环评)中的重要图件,需满足数据准确性、制图规范性和信息完整性等要求。本教程将基于ArcMap平台,从数据准备到成果输出,详细讲解如何制作符合环评技术规范的植被类型图。 ArcGIS遥感解译土地…

详解string类+迭代器

迭代器 概念:在 C 中,迭代器是访问容器(如数组、列表、向量、字符串等)元素的一种方式。迭代器提供了一种统一的接口,使得你可以使用相同的代码来遍历不同类型的容器。迭代器本质上是一个指针或者指针的封装&#xff0…

Sqoop安装部署

Apache Sqoop 简介 Sqoop(SQL-to-Hadoop)是 Apache 开源项目,主要用于: 将关系型数据库中的数据导入 Hadoop 分布式文件系统(HDFS)或相关组件(如 Hive、HBase)。 将 Hadoop 处理后…

软件工程之软件验证计划Software Verification Plan

个人主页:云纳星辰怀自在 座右铭:“所谓坚持,就是觉得还有希望!” 本文为基于ISO26262软件验证计划模板,仅供参考。 软件验证计划,包括: 1. 软件需求验证计划 2. 软件架构设计验证计划 3. 软件单…

Windows系统本地部署OpenManus对接Ollama调用本地AI大模型

文章目录 前言1. 环境准备1.1 安装Python1.2. 安装conda 2. 本地部署OpenManus2.1 创建一个新conda环境2.2 克隆存储库2.3 安装依赖环境 3. 安装Ollama4. 安装QwQ 32B模型5. 修改OpenManus配置文件6. 运行OpenManus7.通过网页使用OpenManus8. 安装内网穿透8.1 配置随机公网地址…

计算机网络总结

一、IP地址及子网掩码、MAC 二、DNS、ARP 三、DHCP、UDP、TCP 四、NAT、NAPT、端口、网关 五、路由器与交换机 六、OSI模型 一、IP地址及子网掩码、MAC 1.1 IP地址的作用 用来全局网络通信(门牌号)用来区分相同网络之间的主机 1.2 子网掩码的作用 …

MySQL0基础学习记录-下载与安装

下载 下载地址: (Windows)https://dev.mysql.com/downloads/file/?id536787 安装 直接点next,出现: 点execute 然后一直next到这页: next 然后需要给root设置一个密码: 在next。。很多页…

React基础语法速览

一、项目创建 npm create vite 这里选择react即可,如图: 二、基本文件说明 react函数式编程时,用的是JSX语法进行开发的,这里注意,return时只能有一个根标签; 三、React核心语法 1.插值功能 插值可以使用…

IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js

P(rocess)M(anager)2 是一个 node.js 下的进程管理器,内置负载均衡,支持应用自动重启,常用于生产环境运行 node.js 应用,非常好用👍 🌼概述 2025-03-15日,PM2发布最新版本v6.0.5,这…

teaming技术

一.介绍 在CentOS 6与RHEL 6系统中,双网卡绑定采用的是bonding技术。到了CentOS 7,不仅能继续沿用bonding,还新增了teaming技术。在此推荐使用teaming,因其在查看与监控方面更为便捷 。 二.原理 这里介绍两种最常见的双网卡绑定…

SpringSecurity配置(自定义认证过滤器)

文末有本篇文章的项目源码文件可供下载学习 在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将…

【机器学习-模型评估】

“评估”已建立的模型 在进行回归和分类时,为了进行预测,定义了预测函数fθ(x) 然后根据训练数据求出了预测函数的参数θ(即对目标函数进行微分,然后求出参数更新表达式的操作) 之前求出参数更新表达式之后就结束了。但是,其实我…

区块链开发技术公司:引领数字经济的创新力量

在数字化浪潮席卷全球的今天,区块链技术作为新兴技术的代表,正以其独特的去中心化、不可篡改和透明性等特点,深刻改变着各行各业的发展格局。区块链开发技术公司,作为这一领域的先锋和推动者,正不断研发创新&#xff0…