首页 > 其他分享 >ResNet —— 李沐老师论文跟读

ResNet —— 李沐老师论文跟读

时间:2024-07-14 22:51:41浏览次数:15  
标签:跟读 映射 卷积 残差 网络 ResNet 神经网络 李沐

论文地址:https://arxiv.org/pdf/1512.03385v1.pdf

引言

作为一篇发表于2015年的文章,至今我们仍在深度卷积神经网络中用到ResNet,作为一个神经网络初学者,我觉得很有必要去阅读一下这篇文章。
在ResNet发表之前,深层神经网络的训练非常困难,而且会遇到当网络层级超过一定界限之后,神经网络的精度出现下降的情况。而通过残差学习(residual learning)的方式,使得训练网络的层数可以变得更深并且获得更好的精度。ResNet在ImageNet数据集上训练到了152层并且具有更低的复杂度,并且成功赢下了ILSVRC 2015。同时,在COCO数据集上,仅仅通过将cnn的主干网络替换成了残差网络就能将性能提高28%,并且赢下了ILSVRC & COCO 2015,这充分证明了ResNet的潜力。

ResNet实现背景与原理

  • 背景:

    随着神经网络的加深,会出现梯度消失或者梯度爆炸的问题,一般情况下,为了解决这个问题,一是要调整权重的初始化,二是加入一些正则化层(normalization)用来校验每个层的输 出,使之回到标志正态分布。但是即使使用这种方法仍会出现精度下降的问题。

    Kaiming He等人发现,使用SGD,增加几个恒等映射层(identity mapping)却不能得到输入等于输出的结果,反而精度有所下降,这是不应该出现的结果。故而残差网络的出现就是为 了解决identity mapping 这个问题。

  • ResNet的具体原理:

    1. ResNet结构设计:
    对于已知目标函数H(x) = x,通过定义一个残差: f(x) = H(x) - x,只让新加的网络层去学习残差f(x),然后让新加的网络层的输出结果为f(x) + x。通过将残差与输入分离,进行学习的方法,使得残差网络更容易学习与输入无关的、更一般的特征。
    这里举一个例子说明残差网络的作用:F 是求和前的网络映射,H 是求和后的网络映射,设将5映射至5.1,加入残差前H(x) = 5.1,加入残差后f(x) = H(x) - x = 0.1,对于两种不 同方法,加入残差后映射f增加了100%,而加入残差前映射f仅增加2%。显然残差的加入使得权重的调整更容易。

    参考知乎贴子:https://www.zhihu.com/question/53224378/answer/159102095

    2. 对于输入输出不同维度的处理
    (1)增加一些额外的零,使得输入输出的维度相同,此方法不需要引入额外参数。
    (2)通过 1 x 1 的卷积完成通道数的增加,为了不改变高和宽,选择步幅为2的方式执行。

    3. 不同层数的ResNet网络架构:

    由上图中我们可以看到ResNet采取了两种结构:

    (1)第一种为普通的残差块,仅做两次3x3的卷积

    (2)第二种为bottleneck结构,对于输入通道数较高的情况,我们的计算复杂度会急速增加,可以增加一个1x1的卷积投影使其回到低维,再进行3x3的卷积操作,最后再投影回原维度从而降低计算复杂度。

本人为深度学习神经网络小白一枚,有任何错误欢迎指出。

标签:跟读,映射,卷积,残差,网络,ResNet,神经网络,李沐
From: https://www.cnblogs.com/fqlb/p/18300971

相关文章

  • 《昇思25天学习打卡营第12天|计算机视觉-ResNet50迁移学习》
    ResNet50迁移学习在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章将使用迁移学习的方法对Imag......
  • 《昇思25天学习打卡营第11天|计算机视觉-ResNet50迁移学习》
    学习内容:ResNet50迁移学习1.背景介绍1.1什么是迁移学习?在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的......
  • 昇思25天学习打卡营第11天|ResNet50图像分类
    文章目录昇思MindSpore应用实践基于MindSpore的ResNet50图像分类1、ResNet50简介2、数据集预处理及可视化3、构建网络构建BuildingBlock构建BottleneckBlock构建ResNet50网络4、模型训练5、图像分类模型推理Reference昇思MindSpore应用实践本系列文章主......
  • Python基于PyQt5和卷积神经网络分类模型(ResNet50分类算法)实现生活垃圾分类系统GUI界
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景在当今社会,随着人们对环境保护意识的增强以及科技的快速发展,智能化的垃圾分类系统成为了一个热门的研究方向。结合深度学习技术,尤其是先进的图像识......
  • 李沐动手学深度学习V2-chap_preliminaries
    李沐动手学深度学习V2文章内容说明本文主要是自己学习过程中的随手笔记,需要自取课程参考B站:https://space.bilibili.com/1567748478?spm_id_from=333.788.0.0课件等信息原视频简介中有CSV文件修改读取成张量tensor数据预处理首先(创建一个人工数据集,并存储在CSV(逗号分隔值......
  • ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
    ONNXRuntime简介ONNXRuntime是一个跨平台的推理和训练机器学习加速器。ONNX运行时推理可以实现更快的客户体验和更低的成本,支持来自深度学习框架(如PyTorch和TensorFlow/Keras)以及经典机器学习库(如scikit-learn、LightGBM、XGBoost等)的模型。ONNX运行时与不同的硬件、......
  • 【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+Tenso
    一、介绍昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂','甲虫','蝴蝶','蝉','蜻蜓','蚱蜢','蛾','蝎子','蜗牛','蜘蛛')进行训练,得到一个识别精度较......
  • 李沐:用随机梯度下降来优化人生!
    大侠幸会,在下全网同名「算法金」0基础转AI上岸,多个算法赛Top「日更万日,让更多人享受智能乐趣」今天我们来聊聊达叔6大核心算法之——优化算法。吴恩达:机器学习的六个核心算法!梯度下降优化算法是机器学习和深度学习中最常用的优化算法之一。它通过不断调整模型......
  • yolov5-7.0更改resnet主干网络
    参考链接ClearML教程:https://blog.csdn.net/qq_40243750/article/details/126445671b站教学视频:https://www.bilibili.com/video/BV1Mx4y1A7jy/spm_id_from=333.788&vd_source=b52b79abfe565901e6969da2a1191407开始github地址:https://github.com/z1069614715/objec......
  • 实验15-使用RESNET完成图像分类
    model.py#-*-coding:utf-8-*-"""author:ZhouChendatetime:2019/6/259:10desc:实现模型"""fromkeras.modelsimportModelfromkeras.layersimportConv2D,MaxPooling2D,BatchNormalization,Flatten,Input,ZeroPadding2D......