1 通俗易懂解释Resnet50

article/2025/9/18 3:58:48

通俗易懂Resnet50网络结构分析

  • 1 Why(该网络要解决什么样的问题)
    • 1.1 什么叫梯度消失和梯度爆炸
  • 2 How(如何解决该问题)
    • 2.1 直观解释
    • 2.2 残差是什么
    • 2.3 网络结构
  • 3 what 结果怎么样

1 Why(该网络要解决什么样的问题)

  1. 理论上网络越来越深,获取的信息越多,而且特征也会越丰富? -----------> 一个从业者的正常思维
    但是实验表明,随着网络的加深,优化效果反而更差??思考为什么会出现这个现象呢?以下实验结果表明确实出现了该现象,论文中称为网络退化现象,注意这和网络过拟合是两种情况。
    在这里插入图片描述
    论文给出解释:这是由于网络的加深会造成梯度爆炸和梯度消失的问题。😵梯度消失和梯度爆炸?有没有详解?ok 下面链接告诉你。接下来解释如何解决这个问题呢?继续往下看

1.1 什么叫梯度消失和梯度爆炸

在这里插入图片描述

2 How(如何解决该问题)

论文提供了Residual Network(ResNet)网络结构,来使得网络的学习能力能够随着网络深度的增加而增加。
跳层结构
懵逼了…为什么加一个 跳层链接就可以避免退化影响呢???
我们来看一个图片:
在这里插入图片描述
好了,我觉得解释的很清楚了!结束…
不对,我们做科研还是要严谨的态度,进行数学理论的介绍

2.1 直观解释

深度残差网络,如果深层网络的后面那些层都是恒等映射,那么模型就退化为一个浅层网络。那现在要解决的就是学习恒等映射函数了。但是直接让一些层去拟合一个潜在的恒等映射函数H(x) = x, 比较困难,这可能就是深层网络难以训练的原因。但是,如果网络设计为H(x) = F(x) + x, 如下图,我们就可以转换为学习一个残差函数F(x) = H(x) -x 。只要F(x) = 0, 就构成一个恒等映射H(x) = x,而且拟合残差肯定更加容易。
理论上,对于随着网络加深,准确率下降的问题,resnet提供了两种选择方式,也就是identity mapping和residual mapping。如果网络已经达到最优,继续加深网络,residual mapping 将被 push为0,只剩下identity mapping,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。

通俗的解释就是:
F是求前网络映射,H是从输入到求和后的网络映射。比如把5映射到5.1,那么引入残差前是F’(5) = 5.1, 引入残差后是H(5) = 5.1, H(5)=F(5) + 5, F(5) = 0.1。这里的F’和F 都表示网络参数映射,映入残差后的映射对输出的变化更加敏感。 比如s输出从5.1变到5.2,映射F’的输出增加了1/51=2%,而对于残差结构输出从5.1到5.2,映射F’的输出增加了0.1到0.2,增加了100%。明显后者输出变化对权值的调整作用更大,所以效果更好。残差的思想都是去掉相同的主体部分,从而突出微小的变化。
另外这句话解释的也挺好:
在这里插入图片描述
在这里插入图片描述

2.2 残差是什么

其中ResNet提出了两种mapping:一种是identity mapping,指的就是图1中”弯弯的曲线”,另一种residual mapping,指的就是除了”弯弯的曲线“那部分,所以最后的输出是 y=F(x)+x

identity mapping顾名思义,就是指本身,也就是公式中的x,而residual mapping指的是“差”,也就是y−x,所以残差指的就是F(x)部分。

2.3 网络结构

在这里插入图片描述
resnet50 一共有四组 block,每组分别是 3,4,6,3 个block,每个block里面有三个卷积层。另外网络最开始有一个卷积层,所以 3+4+6+3 * 3 + 1 = 49,加上取样层。
在这里插入图片描述

3 what 结果怎么样

在这里插入图片描述

参考:
https://zhuanlan.zhihu.com/p/353235794
https://zhuanlan.zhihu.com/p/67860570
https://www.zhihu.com/question/53224378/answer/159102095
https://blog.csdn.net/Joker_xun/article/details/103024249


http://chatgpt.dhexx.cn/article/YsMV4g4U.shtml

相关文章

ResNet50网络结构

代码: import keras keras.utils.plot_model(keras.applications.ResNet50(include_topTrue,input_shape(224,224,3),weightsNone), to_fileimage_model.png, show_shapesTrue) ResNet50的标准输入为224x224,avg_pool(-3层)及之…

resnet18与resnet50

ResNet18的18层代表的是带有权重的 18层,包括卷积层和全连接层,不包括池化层和BN层。 Resnet论文给出的结构图 参考ResNet详细解读 结构解析: 首先是第一层卷积使用7∗77∗7大小的模板,步长为2,padding为3。之后进行…

长文解析Resnet50的算法原理

大家好啊,我是董董灿。 恭喜你发现宝藏了。收藏起来吧。 前言 从打算写图像识别系列文章开始已经快2个月了,目前写了有9篇文章,几乎涵盖了Renset50这一CNN网络95%的算法。 今天整理了下,修复一些笔误和表述错误,整…

【pytorch】ResNet18、ResNet20、ResNet34、ResNet50网络结构与实现

文章目录 ResNet主体BasicBlockResNet18ResNet34ResNet20 Bottleneck BlockResNet50 ResNet到底解决了什么问题 选取经典的早期Pytorch官方实现代码进行分析 https://github.com/pytorch/vision/blob/9a481d0bec2700763a799ff148fe2e083b575441/torchvision/models/resnet.py 各…

神经网络学习小记录20——ResNet50模型的复现详解

神经网络学习小记录20——ResNet50模型的复现详解 学习前言什么是残差网络什么是ResNet50模型ResNet50网络部分实现代码图片预测 学习前言 最近看yolo3里面讲到了残差网络,对这个网络结构很感兴趣,于是了解到这个网络结构最初的使用是在ResNet网络里。 …

彻底搞懂ResNet50

pytorch实现resnet50代码如下: (1)一个block实现,如1x1,64,3x3,64,1x1,256。这段代码中,1x1的卷积核只是为了改变输出通道数,3x3的卷积可能改变卷…

【ResNet】Pytorch从零构建ResNet50

Pytorch从零构建ResNet 第一章 从零构建ResNet18 第二章 从零构建ResNet50 文章目录 Pytorch从零构建ResNet前言一、Res50和Res18的区别?1. 残差块的区别2. ResNet50具体结构 二、ResNet分步骤实现三、完整例子测试总结 前言 ResNet 目前是应用很广的网络基础框架&…

ResNet介绍

ResNet介绍 1 简要概括 ResNet(Residual Neural Network)由微软研究院的Kaiming He等四名华人提出,通过使用ResNet Unit成功训练出了152层的神经网络,并在ILSVRC2015比赛中取得冠军,在top5上的错误率为3.57%&#xff0…

resnet 20 和resnet 56

resnet是什么 在论文中,存在resnet20和resnet56,之前没注意,现在仔细了解后才发觉和标准的ResNet有差异,可参考resnet-50 vs resnet-56(或者18 vs 20)的明显区别在哪,性能差的好多?…

ResNet详解

1.什么是ResNet? ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。 2.网络中的亮点 1.超深的网络结构&a…

关于ResNet50的解读

说起ResNet必然要提起He大佬,这真是神一样的存在,这不,不久前又有新的突破RegNet,真是厉害啊。 ResNet开篇之作在此,后面又出了各种变形啥的,ResNeXt,inception-ResNet等等吧,He大佬…

【深度学习】resnet-50网络结构

最近许多目标检测网络的backbone都有用到resnet-50的部分结构,于是找到原论文,看了一下网络结构,在这里做一个备份,需要的时候再来看看。 整体结构 layer0 首先是layer0,这部分在各个网络都一样,如图&…

一张图看懂Resnet50与Resnet101算法

直接上流程图,算法很清晰。 仅包括卷积层和全连接层,不包括池化层,正好50层。 相比于ResNet_50,ResNet_101就是在上图第3个大虚线框多了17个bottleneck,17*350101,说白了就是将下图复制17个加入上图的第3个…

什么是Resnet50模型?

1 深度残差网络 随着CNN的不断发展,为了获取深层次的特征,卷积的层数也越来越多。一开始的 LeNet 网络只有 5 层,接着 AlexNet 为 8 层,后来 VggNet 网络包含了 19 层,GoogleNet 已经有了 22 层。但仅仅通过增加网络层…

resnet-50介绍(一)

这篇文章讲解的是使用Tensorflow实现残差网络resnet-50. 侧重点不在于理论部分,而是在于代码实现部分。在github上面已经有其他的开源实现,如果希望直接使用代码运行自己的数据,不建议使用本人的代码。但是如果希望学习resnet的代码实现思路&…

ResNet50 网络结构搭建(PyTorch)

ResNet50是一个经典的特征提取网络结构,虽然Pytorch已有官方实现,但为了加深对网络结构的理解,还是自己动手敲敲代码搭建一下。需要特别说明的是,笔者是以熟悉网络各层输出维度变化为目的的,只对建立后的网络赋予伪输入…

ResNet-50网络理解

本文主要针对ResNet-50对深度残差网络进行一个理解和分析 ResNet已经被广泛运用于各种特征提取应用中,当深度学习网络层数越深时,理论上表达能力会更强,但是CNN网络达到一定的深度后,再加深,分类性能不会提高&#xff…

庖丁解牛-Resnet50 深度剖析,细致讲解,深入理解

背景介绍 ResNet-50侧边输出形状 假设输入为352,则 output2 256x88x88 output3 512x44x44 output4 1024x22x22 output5 2048x11x11 VGG-16侧边输出形状 假设输入为352,则 output1 64x320x320 output2 128x160x160 output3 256x88x88 output4 512x44x44 output5 512x22…

Resnet-50网络结构详解

解决的问题: 梯度消失,深层网络难训练。 因为梯度反向传播到前面的层,重复相乘可能使梯度无穷小。结果就是,随着网络的层数更深,其性能趋于饱和,甚至迅速下降。 关于为什么残差结构(即多了一…

卷积神经网络学习—Resnet50(论文精读+pytorch代码复现)

前言一、Resnet论文精读引入残差残差块ResNet50模型基本构成BN层Resnet50总体结构 二、Resnet50代码复现完整代码 前言 如果说在CNN领域一定要学习一个卷积神经网络,那一定非Resnet莫属了。 接下来我将按照:Resnet论文解读、Pytorch实现ResNet50模型两部…