Resnet结构的有效性解释

news2024/12/25 2:17:35

Resnet结构的有效性解释

先看一看Resnet网络的块结构:
在这里插入图片描述

根据上图,设有函数
z ( l ) = x ( l − 1 ) + F ( x ) ( l − 1 ) (1) \mathbf{z}^{(l)}=\mathbf{x}^{(l-1)}+\mathcal{F}(\mathbf{x})^{(l-1)}\tag{1} z(l)=x(l1)+F(x)(l1)(1)
考虑由式 ( 1 ) (1) (1)组成的前馈神经网络,假设残差块不使用激活函数,那么整个式子仍然是线性变换,可得:
x ( l ) = z ( l ) (2) \mathbf{x}^{(l)}=\mathbf{z}^{(l)}\tag{2} x(l)=z(l)(2)
考虑任意两个层数 l 2 > l 1 l_2>l_1 l2>l1,联合 ( 1 ) (1) (1)式和 ( 2 ) (2) (2)式,将 x \mathbf{x} x进行递归展开
x ( l 2 ) = x ( l 2 − 1 ) + F ( ( x ( l 2 − 1 ) ) = ( x ( l 2 − 2 ) + F ( ( x ( l 2 − 2 ) ) ) + F ( ( x ( l 2 − 1 ) ) = x l 1 + ∑ l = l 1 l 2 − 1 F ( x ( l ) ) \begin{align*} \mathbf{x}^{(l_2)}&=\mathbf{x}^{(l_2-1)}+\mathcal{F}\left((\mathbf{x}^{(l_2-1)}\right)\\ &=\left(\mathbf{x}^{(l_2-2)}+\mathcal{F}\left((\mathbf{x}^{(l_2-2)}\right)\right)+\mathcal{F}\left((\mathbf{x}^{(l_2-1)}\right)\\ &=\mathbf{x}^{l_1}+\sum_{l=l_1}^{l_2-1}{\mathcal{F}(\mathbf{x}^{(l)})}\tag{3} \end{align*} x(l2)=x(l21)+F((x(l21))=(x(l22)+F((x(l22)))+F((x(l21))=xl1+l=l1l21F(x(l))(3)
根据式 ( 3 ) (3) (3),前向传播时,输入信号可以从任意低层直接传播到高层。这种天然的恒等映射在一定程度上解决了网络退化问题。

利用链式求导法则,网络前向传播的损失 L L L对某低层输出的梯度可以展开为:
∂ L ∂ x ( l 1 ) = ∂ L ∂ x ( l 2 ) ∂ x ( l 2 ) ∂ x ( l 1 ) = ∂ L ∂ x ( l 2 ) ( 1 + ∂ ∂ x ( l 1 ) ∑ l = l 1 l 2 − 1 F ( x ( l ) ) ) = ∂ L ∂ x ( l 2 ) + ∂ L ∂ x ( l 2 ) ∂ ∂ x ( l 1 ) ∑ l = l 1 l 2 − 1 F ( x ( l ) ) \begin{align*} \frac{\partial L}{\partial \mathbf{x}^{(l_1)}}&=\frac{\partial L}{\partial \mathbf{x}^{(l_2)}}\frac{\partial \mathbf{x}^{(l_2)}}{\partial \mathbf{x}^{(l_1)}}\\ &=\frac{\partial L}{\partial \mathbf{x}^{(l_2)}}\left(1+\frac{\partial}{\partial \mathbf{x}^{(l_1)}}\sum_{l=l_1}^{l_2-1}{\mathcal{F}(\mathbf{x}^{(l)})}\right)\\ &=\frac{\partial L}{\partial \mathbf{x}^{(l_2)}}+\frac{\partial L}{\partial \mathbf{x}^{(l_2)}}\frac{\partial}{\partial \mathbf{x}^{(l_1)}}\sum_{l=l_1}^{l_2-1}{\mathcal{F}(\mathbf{x}^{(l)})}\tag{4} \end{align*} x(l1)L=x(l2)Lx(l1)x(l2)=x(l2)L(1+x(l1)l=l1l21F(x(l)))=x(l2)L+x(l2)Lx(l1)l=l1l21F(x(l))(4)

根据式 ( 4 ) (4) (4),损失对某低层输出的梯度,被分解成了两项,第一项表明在反向传播时,信号可以直接传播到低层,从而缓解了梯度消失问题,即使中间层权重矩阵很小,梯度也不容易消失。

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

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

相关文章

广和通AI解决方案“智”赋室外机器人迈向新天地!

大模型趋势下,行业机器人将具备更完善的交互与自主能力,逐步迈向AI 2.0时代,成为人工智能技术全面爆发的重要基础。随着行业智能化,更多机器人应用将从“室内”走向“室外”,承担更多高风险、高智能工作。复杂的室外环…

小麦淀粉行业研究:预计2029年将达到13亿美元

此前,小麦淀粉整体市场价格稳定运行,8月下旬,受疫情、原料供应、运输和市场需求等多重因素影响,小麦淀粉价格上涨。9月份以来,小麦淀粉价格一直延续8月份价格稳定运行,无明显波动,走货较8月份有…

【leetcode】招商银行学习计划经典笔试题(java版本含注释)

目录 前言第一天21. 合并两个有序链表(简单)3. 无重复字符的最长子串(中等) 第二天1. 两数之和(简单)199. 二叉树的右视图(中等)124. 二叉树中的最大路径和(困难&#xf…

Debian 10.13.0 安装图解

引导和开始安装 这里直接回车确认即可,选择图形化安装方式。 选择语言 这里要区分一下,当前选中的语言作为安装过程中安装器所使用的语言,这里我们选择中文简体。不过细心的同学可能发现,当你选择安装器语言之后,后续安…

Java-NIO篇章(2)——Buffer缓冲区详解

Buffer类简介 Buffer类是一个抽象类,对应于Java的主要数据类型,在NIO中有8种缓冲区类,分别如下: ByteBuffer、 CharBuffer、 DoubleBuffer、 FloatBuffer、 IntBuffer、 LongBuffer、 ShortBuffer、MappedByteBuffer。 本文以它的…

Yolov8_使用自定义数据集训练模型1

前面几篇文章介绍了如何搭建Yolov8环境、使用默认的模型训练和推理图片及视频的效果、并使用GPU版本的torch加速推理、导出.engine格式的模型进一步利用GPU加速,本篇介绍如何自定义数据集,这样就可以训练出识别特定物体的模型。 《Yolov8_使用自定义数据…

Mysql:重点且常用的 SQL 标签整理

目录 1 <resultMap> 标签 2 <sql> 标签 3 <where> 标签 4 <if> 标签 5 <trim> 标签 6 <foreach> 标签 7 <set> 标签 1 <resultMap> 标签 比如以下代码&#xff1a; <resultMap type"SysCollege" id&qu…

Scrcpy:掌握你的Android设备

Scrcpy&#xff1a;掌握你的Android设备 本文将介绍Scrcpy工具&#xff0c;它是一种强大的安卓设备控制工具&#xff0c;可以实现屏幕镜像、操作控制等功能。我们将探讨Scrcpy的基本原理和工作方式&#xff0c;并介绍如何使用Scrcpy连接和控制安卓设备。此外&#xff0c;我们还…

旅游项目day04

1. JWT有效期 封装用户登录对象&#xff0c; 在指定时间过期 2. 有些接口需要登录&#xff1f;有些不需要登录&#xff1f; 后端如何知道a需要登录&#xff0c;b不需要登录&#xff1f; 注解。 3. 目的地 一个区域下面包含多个目的地 数据库表&#xff1a; 1. 区域表 2.…

VS2022联合Qt5开发学习9(QT5.12.3鼠标按下、释放、移动事件以及Qt上取标注点)

在研究医学图像可视化的时候&#xff0c;鼠标响应这里一直都有问题。研究了几天VTK的取点&#xff0c;还是会和Qt冲突。所以现在试试Qt的方式取点&#xff0c;看看能不能实现我的功能。 查了很多资料&#xff0c;这篇博文里的实例有部分参考了祥知道-CSDN博客这位博主的博客[Q…

【Ant Design of Vue】Modal.confirm无法关闭的bug

一、问题 在使用 Ant Design Vue 的 Modal.confirm 确认框时&#xff0c;出现了点击取消和确定后 Modal.confirm 确认框无法关闭的问题 二、代码 代码完全是 copy 的官网的代码&#xff0c;但是 copy 到本地后就会出现上述问题 <template><a-button click"sho…

基于gd32f103移植freemodbus master 主栈

1.移植freemodbus master需要先移植RT-Thread操作系统 GD32F103C8T6移植 RTT Nano 教程-CSDN博客 2.移植freemodbus master协议栈 在移植了RTT以后,我们需要移植就只有串口相关的函数 移植freemodbus master协议栈具体步骤 下载移植freemodbus master协议栈 源码添加协议栈…

ora-12154无法解析指定的连接标识符

用户反映查询的时候报错ora-12154 这个系统只做历史数据查询使用&#xff0c;使用并不平凡&#xff0c;该数据库曾做过一次服务器间的迁移。 用户描述&#xff0c;所有oracle客户端查询该视图都报tns错误&#xff0c;一般ora-12154会发生在连接数据库时&#xff0c;因为tns配…

Python数据分析案例36——基于神经网络的AQI多步预测(空气质量预测)

案例背景 不知道大家发现了没&#xff0c;现在的神经网络做时间序列的预测都是单步预测&#xff0c;即(需要使用X的t-n期到X的t-1期的数据去预测X的t期的数据)&#xff0c;这种预测只能预测一个点&#xff0c;我需要预测X的t1期的数据就没办法了&#xff0c;有的同学说可以把预…

Vue 3 hooks的基本使用及疑问

前言 vue3也用过一段时间了&#xff0c;hooks听说过&#xff0c;但是一直没有用过。公司的前端项目里也没有相应的应用&#xff0c;因此打算系统的学习一下。 hooks与普通函数的区别 以实现一个加法功能为例。 普通函数未抽离 <template><div class"box&quo…

【Vue】Vue 路由的配置及使用

目录捏 前言一、路由是什么&#xff1f;1.前端路由2.后端路由 二、路由配置1.安装路由2.配置路由 三、路由使用1.route 与 router2. 声明式导航3. 指定组件的呈现位置 四、嵌套路由&#xff08;多级路由&#xff09;五、路由重定向1.什么是路由重定向&#xff1f;2.设置 redire…

接口自动化测试框架设计

文章目录 接口测试的定义接口测试的意义接口测试的测试用例设计接口测试的测试用例设计方法postman主要功能请求体分类JSON数据类型postman内置参数postman变量全局变量环境变量 postman断言JSON提取器正则表达式提取器Cookie提取器postman加密接口签名 接口自动化测试基础getp…

JVM实战(28)——模拟Metaspace内存溢出

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

15.云原生之k8s容灾与恢复实战

云原生专栏大纲 文章目录 Velero与etcd介绍Velero与etcd备份应用场景Velero与etcd在k8s备份上的区别 Velero备份恢复流程备份工作流程Velero备份时&#xff0c;若k8s集群发送变化&#xff0c;会发发生情况&#xff1f;Velero 备份pv&#xff0c;pv中数据变化&#xff0c;会发发…

C++ //练习 1.25 借助网站上的Sales_item.h头文件,编译并运行本节给出的书店程序。

C Primer&#xff08;第5版&#xff09; 练习 1.25 练习 1.25 借助网站上的Sales_item.h头文件&#xff0c;编译并运行本节给出的书店程序。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /********************************…