常见残差架构及相关技术解析
立即解锁
发布时间: 2025-08-31 00:05:15 阅读量: 10 订阅数: 16 AIGC 

# 常见残差架构及相关技术解析
## 1. 常见残差架构概述
残差连接如今已成为深度学习流程中的标准组成部分。下面介绍一些融入了残差连接的知名架构。
### 1.1 ResNet
残差块最初用于图像分类的卷积网络,由此产生的网络被称为残差网络,简称 ResNet。在 ResNet 中,每个残差块包含批量归一化操作、ReLU 激活函数和卷积层。该序列会重复一次,然后再将结果加回到输入中。这种操作顺序在图像分类任务中表现良好。
对于非常深的网络,参数数量可能会变得过大。瓶颈残差块通过三个卷积操作更有效地利用参数。第一个卷积使用 1×1 内核来减少通道数,第二个是常规的 3×3 内核,第三个 1×1 内核将通道数增加回原始数量。这样可以使用更少的参数整合 3×3 像素区域的信息。
ResNet - 200 模型包含 200 层,用于 ImageNet 数据库的图像分类。其架构类似于 AlexNet 和 VGG,但使用瓶颈残差块而非普通卷积层。和 AlexNet 与 VGG 一样,在网络中会周期性地降低空间分辨率并同时增加通道数。相邻的 ResNet 块之间通过步长为 2 的卷积降低分辨率,通过追加零或应用额外的 1×1 卷积来增加通道数。网络开始是一个 7×7 卷积层,接着是下采样操作。最后,全连接层将块映射到长度为 1000 的向量,再通过 softmax 层生成类别概率。
ResNet - 200 模型在正确类别位于前 5 名的错误率为 4.8%,正确识别类别为 20.1%,优于 AlexNet(16.4%,38.1%)和 VGG(6.8%,23.7%),是最早超越人类表现(前 5 名猜测错误率为 5.1%)的网络之一。不过,该模型于 2016 年提出,目前已非最先进水平。
### 1.2 DenseNet
残差块接收前一层的输出,经过一些网络层处理后再加回到原始输入。另一种方法是将处理后的信号与原始信号拼接,这会增加表示大小,但后续可通过可选的线性变换(如卷积网络中的 1×1 卷积)将其映射回原始大小。
DenseNet 架构使用拼接方式,使得一层的输入由所有前一层的输出拼接而成。这些输入经过处理生成新的表示,再与之前的表示拼接后传递到下一层。这种拼接方式意味着早期层对输出有直接贡献,使损失表面表现更合理。
但在实际中,由于通道数(以及处理它们所需的参数数量)会迅速增加,这种方式只能维持几层。可以在应用下一个 3×3 卷积之前应用 1×1 卷积来减少通道数。在卷积网络中,输入会周期性地下采样,此时拼接操作会因表示的空间大小不同而中断,可应用另一个瓶颈 1×1 卷积来控制表示大小。
DenseNet 在图像分类任务中与 ResNet 模型表现相当,在参数数量相近的情况下甚至可能表现更好,可能是因为它能更灵活地重用早期层的处理结果。
### 1.3 U - Nets 和沙漏网络
语义分割网络具有编码器 - 解码器或沙漏结构。编码器反复下采样图像,直到感受野变大并整合图像信息,然后解码器将其重新上采样回原始图像大小,最终输出每个像素属于可能对象类别的概率。
U - Net 是一种编码器 - 解码器架构,将早期表示与后期表示拼接。原始实现使用“有效”卷积,每次应用 3×3 卷积层时空间大小会减少,因此上采样后的版本比编码器中的对应部分小,需要裁剪后再拼接。后续实现使用零填充,无需裁剪。U - Net 是完全卷积的,训练后可处理任意大小的图像。
U - Net 最初用于医学图像分割,在计算机图形和视觉领域也有很多其他用途。沙漏网络类似,但在跳跃连接中应用更多卷积层,并将结果加回到解码器而非拼接。一系列这样的模型形成堆叠沙漏网络,用于姿态估计,系统会为每个关节预测一个“热图”,估计位置为每个热图的最大值。
## 2. 残差连接网络表现出色的原因
残差网络允许训练更深的网络,例如可以将 ResNet 架构扩展到 1000 层并有效训练。最初人们认为图像分类性能的提升归因于网络深度的增加,但有两个证据反驳了这一观点。
首先,较浅、较宽的残差网络有时在参数数量相近的情况下优于较深、较窄的网络。其次,有证据表明训练期间的梯度在展开网络的长路径中无法有效传播,深度网络可能更像浅层网络的组合。
目前的观点是,残差连接本身有其价值,同时允许训练更深的网络。残差网络在最小值附近的损失表面往往比去除跳跃连接的相同网络更平滑、更可预测,这可能使学习到的解决方案更容易泛化。
## 3. 总结
无限增加网络深度会导致图像分类的训练和测试性能下降,可能是因为网络早期参数的损失梯度相对于更新步长变化迅速且不可预测。残差连接将处理后的表示加回到自身输入,使每层直接和间接对输出有贡献,无需通过多层传播梯度,损失表面更平滑。
残差网络不会遭受梯度消失问题,但在正向传播过程中会导致激活方差呈指数增加,以及相应的梯度爆炸问题。通常通过添加批量归一化来解决,它可以补偿批次的经验均值和方差,然后使用学习参数进行偏移和缩放。如果这些参数初始化得当,可以训练非常深的网络。有证据表明残差连接和批量归一化都使损失表面更平滑,允许使用更大的学习率,并且批量统计的可变性增加了正则化来源。
残差块已融入卷积网络,允许训练更深的网络并提高图像分类性能。残差网络的变体包括 DenseNet 架构(将所有前一层的输出拼接以输入当前层)和 U - Net(将残差连接融入编码器 - 解码器模型)。
### 3.1 残差连接相关架构对比
| 架构名称 | 特点 | 应用场景 |
| ---- | ---- | ---- |
| ResNet | 使用残差块,可处理深度网络参数过多问题,有标准和瓶颈残差块 | 图像分类 |
| DenseNet | 拼接所有前一层输出作为当前层输入,可灵活重用早期层处理结果 | 图像分类 |
| U - Net | 编码器 - 解码器架构,使用残差连接,可处理任意大小图像 | 医学图像分割、姿态估计等 |
### 3.2 残差网络工作流程 mermaid 图
```mermaid
graph LR
A[输入图像] --> B[卷积层]
B --> C[批量归一化]
C --> D[ReLU 激活]
D --> E[卷积层]
E --> F[批量归一化]
F --> G[ReLU 激活]
G --> H[与输入相加]
H --> I[后续处理]
```
## 4. 残差网络的其他相关内容
### 4.1 相关架构
- **高速公路网络**:残差连接是高速公路网络的特殊情况,高速公路网络也将计算分为两个分支并相加组合,但使用门控函数根据数据本身对两个分支的输入进行加权,而残差网络则直接将数据传递到两个分支。
- **ResNeXt 架构**:在多个并行卷积分支周围放置残差连接。
### 4.2 残差网络作为集成模型
Veit 等人将残差网络描述为较短网络的集成,并提出“展开网络”的解释。他们通过删除训练网络中的层(即部分路径),发现对性能影响不大,而在纯顺序网络(如 VGG)中删除一层则是灾难性的。他们还观察到不同长度路径上的梯度大小,发现较长路径上的梯度会消失。在由 54 个块组成的残差网络中,训练期间几乎所有的梯度更新都来自长度为 5 到 17 个块的路径,尽管这些路径仅占总路径的 0.45%。这表明添加更多块实际上是增加了更多并行的较短路径,而不是创建真正更深的网络。
### 4.3 残差网络的正则化方法
- **L2 正则化**:在普通网络和无批量归一化的残差网络中,L2 正则化对权重的影响不同。在普通网络中,它鼓励层的输出是由偏置决定的常数函数;在残差网络中,它鼓励残差块计算恒等函数加上由偏置决定的常数。
- **随机丢弃方法**:ResDrop、随机深度(stochastic depth)和 RandomDrop 都通过在训练过程中随机丢弃残差块来正则化残差网络。在 RandomDrop 中,丢弃块的倾向由伯努利变量决定,其参数在训练过程中线性减小。测试时,残差块以预期概率恢复。这些方
0
0
复制全文
相关推荐









