车辆重识别(CVPR2016图像识别的深度残差学习ResNet)论文阅读2024/9/21

2\] Deep Residual Learning for Image Recognition ( CVPR 2016) 作者:Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun 单位:微软研究院 摘要: 更深层的神经网络更难训练。我们提出了一个残差学习框架,以减轻对比先前使用的深度更深的网络的训练。我们显式地将层重构为参考层输入的学习残差函数,而不是学习未参考的函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以从大幅增加的深度中获得准确性。在ImageNet数据集上,我们评估了深度高达152层的残差网络- -比VGG网络\[ 40 \]深8倍,但仍具有较低的复杂度。这些残差网络的集合在ImageNet测试集上达到3.57 %的误差。这个结果赢得了ILSVRC 2015分类任务的第一名。我们也提供了对100层和1000层CIFAR - 10的分析。 表示的深度对于许多视觉识别任务来说是至关重要的。由于我们非常深入的表示,我们在COCO目标检测数据集上获得了28 %的相对改进。深度残差网络是我们提交ILSVRC \& COCO 2015竞赛1的基础,我们在ImageNet检测、ImageNet定位、COCO检测和COCO分割任务上也获得了第1名。 主要贡献: (1)提出了残差块,通过跳跃连接解决深度网络训练中的退化问题。使得网络可以有效地加深至152层以上,而不出现性能下降。 (2)在ImageNet和COCO数据集上展示了残差网络在图像识别任务中的优越性能。 创新点: 引入了残差块的概念,使得网络能够学习输入与输出之间的残差,而不是直接学习期望映射,这大大简化了优化过程。提出了有效的网络训练策略,包括权重初始化和批归一化,进一步提高了模型的收敛速度和性能。 简介: 在本文中,我们通过引入深度残差学习框架来解决退化问题。为了拟合一个期望的底层映射,我们显式地让这些层拟合一个残差映射。在形式上,我们将期望的底层映射表示为H ( x ),并让堆叠的非线性层拟合F ( x )的另一个映射:F ( x )= H ( x ) - x。原始映射被重铸成F ( x ) + x。我们假设优化残差映射比优化原始的、未引用的映射更容易。在极端情况下,如果一个恒等映射是最优的,那么将残差推到零比用一堆非线性层拟合一个恒等映射更容易。 框图:![请添加图片描述](https://i-blog.csdnimg.cn/direct/8a8968aefe0642b6899edf79a967c5e5.png) 关于ResNet 疑问: 为什么更深层次的网络更难训练? ①梯度消失和爆炸:在反向传播过程中,梯度可能会逐层减小(消失)或增大(爆炸),导致更新不稳定,从而影响模型的学习。 ②过拟合:深层网络具有更多参数,更容易在训练数据上过拟合,特别是在数据量不足的情况下。 ③优化困难:随着网络深度增加,优化目标变得更加复杂,导致梯度更新变得更加困难。 ④特征学习:深层网络需要逐层学习复杂的特征,浅层网络可能无法捕捉到所有重要信息,导致性能下降。 残差网络会使得深度更深的网络容易训练,为什么? ①残差学习:ResNet通过引入残差块,让网络学习输入与输出之间的残差而不是直接学习完整的映射。这种方式简化了学习过程,使得优化变得更容易。 ②跳跃连接:跳跃连接允许信息在网络中更直接地流动,减少了梯度消失的问题,从而使得即使在深层网络中,梯度也能有效传播。 ③恒等映射:如果某一层的最优映射是恒等映射,网络可以通过跳跃连接轻松地实现,而不需要重新学习复杂的功能,从而加快了收敛速度。 ④特征复用:跳跃连接使得低层提取的特征可以被高层使用,从而提高了特征的利用效率,有助于更有效地学习复杂模式。 残差网络更容易优化,并且可以从大幅增加的深度中获得准确性,为什么? 同上 残差网络的深度增加,但是复杂度并不会大幅度增加 同上 特征的"层级"是什么意思 低层特征: 这些特征通常表示图像的基本元素,比如边缘、角点和简单的纹理。在网络的前几层中提取。 中层特征: 这些特征是低层特征的组合,能够捕捉到更复杂的形状或局部模式,例如物体的一部分(如车轮、花瓣)。 高层特征: 在网络的高层,特征表示更加抽象,通常能够识别完整的物体或更复杂的概念,如"汽车"或"人"。 随着特征层级的提高,特征的表现也会越来越复杂、抽象,但是所能表示的意义更丰富。 更深层的网络训练误差和测试误差会更高,为什么? 还是梯度消失、过拟合、优化困难等原因 归一化初始化和中间归一化层是什么?如何解决梯度消失或爆炸的问题的 归一化初始化和中间归一化层(如批归一化)是两种不同的技术,用于提高神经网络的训练效率,并解决梯度消失或爆炸的问题。 1. 归一化初始化 归一化初始化指的是在网络参数初始化时,使用特定的标准化方法来设置权重。这种初始化方法可以防止激活值在传递过程中变得过大或过小,从而减轻梯度消失或爆炸的风险。 常见方法: Xavier初始化:适用于使用sigmoid或tanh激活函数的网络,使得每一层的输出方差与输入方差保持一致。 He初始化:特别适合ReLU激活函数,考虑了ReLU的非对称性,能够更好地保持激活分布。 2. 中间归一化层(Batch Normalization) 批归一化是在每个小批次上对层的输出进行标准化,使其均值为0,方差为1。 这有助于以下几个方面: ①稳定分布:通过减少输入分布的变化,确保每层在训练过程中接收到更稳定的输入,从而提高训练速度和稳定性。 ②加速收敛:使得学习率可以设置得更高,从而加快模型收敛。 ③缓解梯度消失/爆炸:保持激活值的范围,有助于避免梯度在反向传播过程中的消失或爆炸。 总结 通过归一化初始化和中间归一化层,神经网络可以更有效地训练,减少梯度消失或爆炸的风险,从而实现更深层网络的有效学习。 能够收敛的深层次的网络为什么比浅层网络误差率高?在排除过拟合的原因,还有哪些原因导致这样的情况? 同上(残差网络更容易优化) 为什么把上一层的输出与残差块后的输出相加,这样模型的性能就会更好? 缓解梯度消失... 举个例子解释一下残差网络的流程 shortcut快捷连接是什么意思 残差网络可以把一层作为一个残差块吗 可以,但是性能一般 投影是什么意思 ResNet网络结构图: ![请添加图片描述](https://i-blog.csdnimg.cn/direct/f0c668393e814765a7d66ecfcf2a68c7.png)

相关推荐
NAGNIP6 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab7 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab7 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP11 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年11 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼11 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS11 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区12 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈13 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang13 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx