车辆重识别(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。我们假设优化残差映射比优化原始的、未引用的映射更容易。在极端情况下,如果一个恒等映射是最优的,那么将残差推到零比用一堆非线性层拟合一个恒等映射更容易。

框图:

关于ResNet

疑问:

为什么更深层次的网络更难训练?

复制代码
①梯度消失和爆炸:在反向传播过程中,梯度可能会逐层减小(消失)或增大(爆炸),导致更新不稳定,从而影响模型的学习。
②过拟合:深层网络具有更多参数,更容易在训练数据上过拟合,特别是在数据量不足的情况下。
③优化困难:随着网络深度增加,优化目标变得更加复杂,导致梯度更新变得更加困难。
④特征学习:深层网络需要逐层学习复杂的特征,浅层网络可能无法捕捉到所有重要信息,导致性能下降。

残差网络会使得深度更深的网络容易训练,为什么?

复制代码
①残差学习:ResNet通过引入残差块,让网络学习输入与输出之间的残差而不是直接学习完整的映射。这种方式简化了学习过程,使得优化变得更容易。
②跳跃连接:跳跃连接允许信息在网络中更直接地流动,减少了梯度消失的问题,从而使得即使在深层网络中,梯度也能有效传播。
③恒等映射:如果某一层的最优映射是恒等映射,网络可以通过跳跃连接轻松地实现,而不需要重新学习复杂的功能,从而加快了收敛速度。
④特征复用:跳跃连接使得低层提取的特征可以被高层使用,从而提高了特征的利用效率,有助于更有效地学习复杂模式。

残差网络更容易优化,并且可以从大幅增加的深度中获得准确性,为什么?

同上

残差网络的深度增加,但是复杂度并不会大幅度增加

同上

特征的"层级"是什么意思

复制代码
低层特征:
这些特征通常表示图像的基本元素,比如边缘、角点和简单的纹理。在网络的前几层中提取。
中层特征:
这些特征是低层特征的组合,能够捕捉到更复杂的形状或局部模式,例如物体的一部分(如车轮、花瓣)。
高层特征:
在网络的高层,特征表示更加抽象,通常能够识别完整的物体或更复杂的概念,如"汽车"或"人"。
随着特征层级的提高,特征的表现也会越来越复杂、抽象,但是所能表示的意义更丰富。

更深层的网络训练误差和测试误差会更高,为什么?

还是梯度消失、过拟合、优化困难等原因

归一化初始化和中间归一化层是什么?如何解决梯度消失或爆炸的问题的

归一化初始化和中间归一化层(如批归一化)是两种不同的技术,用于提高神经网络的训练效率,并解决梯度消失或爆炸的问题。

复制代码
1. 归一化初始化
归一化初始化指的是在网络参数初始化时,使用特定的标准化方法来设置权重。这种初始化方法可以防止激活值在传递过程中变得过大或过小,从而减轻梯度消失或爆炸的风险。

常见方法:
Xavier初始化:适用于使用sigmoid或tanh激活函数的网络,使得每一层的输出方差与输入方差保持一致。
He初始化:特别适合ReLU激活函数,考虑了ReLU的非对称性,能够更好地保持激活分布。

2. 中间归一化层(Batch Normalization)
批归一化是在每个小批次上对层的输出进行标准化,使其均值为0,方差为1。

这有助于以下几个方面:
①稳定分布:通过减少输入分布的变化,确保每层在训练过程中接收到更稳定的输入,从而提高训练速度和稳定性。
②加速收敛:使得学习率可以设置得更高,从而加快模型收敛。
③缓解梯度消失/爆炸:保持激活值的范围,有助于避免梯度在反向传播过程中的消失或爆炸。

总结
通过归一化初始化和中间归一化层,神经网络可以更有效地训练,减少梯度消失或爆炸的风险,从而实现更深层网络的有效学习。

能够收敛的深层次的网络为什么比浅层网络误差率高?在排除过拟合的原因,还有哪些原因导致这样的情况?

同上(残差网络更容易优化)

为什么把上一层的输出与残差块后的输出相加,这样模型的性能就会更好?

缓解梯度消失...

举个例子解释一下残差网络的流程

shortcut快捷连接是什么意思

残差网络可以把一层作为一个残差块吗

可以,但是性能一般

投影是什么意思

ResNet网络结构图:

相关推荐
CodePlayer竟然被占用了1 小时前
Codex 用电脑的三种姿势:选错模式,你就白烧 Token
人工智能
袋鼠云数栈UED团队1 小时前
一套 Spec-First 的 AI 编程工作流
前端·人工智能
Awu12271 小时前
⚡从零开发 Agent CLI(二):CLI 框架搭建与子命令路由
人工智能·aigc
码上天下1 小时前
React Query 缓存 AI 对话历史的几个权衡
人工智能
米小虾2 小时前
2026半年盘点:AI界发生的6件大事,正在彻底改变产业格局
人工智能
道友可好4 小时前
让 AI 自己验收,等于让学生自己批卷
前端·人工智能·后端
美团技术团队4 小时前
美团海报生成 AIGC 技术创新与实践
人工智能
冬哥聊AI5 小时前
放弃 Spring AI?这 3 个开源框架,才是让 SpringBoot 玩转 AI Agent 的正解
人工智能
小爷毛毛_卓寿杰5 小时前
当 max_tokens=1 遇上 reasoning 模型:从 Xagent 一次“测试连接“按钮的失败说起
人工智能