Bootstrap

ResNet DenseNet

在开始之前可以先去熟悉一下源码

对原理的理解更加哦

从零搭建ResNet-CSDN博客 

ResNet

随着模型的深度变得不断的加深,深层的网络更加会形成梯度消失的问题

我们对原本模型的准确度更加难以去操控

这样就会使得模型的准确率下降

 

ResNet(Residual Network)是一种深度学习架构,由何恺明等人在2015年提出,旨在解决深层神经网络训练中的退化问题。ResNet 的核心思想是引入残差学习(Residual Learning),通过跳跃连接(Skip Connections)来使网络的训练更加高效。以下是 ResNet 的详细介绍:

1. 背景与动机

  • 深度网络的挑战:随着神经网络层数的增加,训练深层网络时会遇到梯度消失和退化问题,即网络的性能反而随着层数增加而下降。
  • 残差学习:为了解决这一问题,ResNet 提出了“残差块”(Residual Block)的概念,允许网络学习输入与输出之间的残差(即差异),而不是直接学习输出。

2. 残差块(Residual Block)

  • 结构:每个残差块包含两个或多个卷积层和一个跳跃连接。跳跃连接将输入直接加到卷积层的输出上,形成 F(x)+xF(x)+x,其中 F(x)F(x) 是经过卷积层处理后的输出,xx 是输入。
  • 公式

    Output=F(x)+xOutput=F(x)+x

  • 优势:通过这种方式,网络可以更容易地学习恒等映射,如果添加更多的层不再有益,网络可以选择只学习恒等映射,从而避免退化问题。

3. 架构

  • 深度版本:ResNet 提供了多种不同深度的版本,如 ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152 等,数字表示网络中的层数。
  • 模块化设计:ResNet 的设计使得可以方便地堆叠多个残差块,通过简单的修改构建更深的网络。

4. 性能与影响

  • 比赛表现:ResNet 在多个图像分类挑战(如 ImageNet)中表现优异,获得了第一名的成绩,深度可达152层而不出现显著的退化。
  • 广泛应用:由于其出色的性能,ResNet 被广泛应用于计算机视觉的各个领域,如目标检测、图像分割和视频分析等。

5. 训练策略

  • Batch Normalization:ResNet 通常在卷积层后面使用 Batch Normalization,以加速训练并提高稳定性。
  • 随机失活(Dropout):虽然在 ResNet 的原始设计中没有使用 Dropout,但在某些变体中可能会结合使用,以减少过拟合。

6. 变种与扩展

  • ResNeXt:通过引入“分支”的概念,使网络在保留深度的同时提高了计算效率。
  • DenseNet:与 ResNet 类似,但采用更密集的连接方式,允许每一层接收来自所有前面层的输入。

总结

ResNet 是一种通过残差学习有效解决深层网络退化问题的架构。其创新的跳跃连接使得网络能够更轻松地训练,成为深度学习研究和应用中一项具有里程碑意义的进展。ResNet 的成功推动了更深网络设计的发展,并对后续的网络架构产生了深远影响。

ResNet的模型相对于链式结构会变的更加的复杂

ResNet的层数也会变的更加的多,可以人为的进行控制

DenseNet(Densely Connected Convolutional Networks)是一种深度学习网络架构,由 Gao Huang 等人在 2017 年提出。DenseNet 主要通过引入密集连接(Dense Connectivity)来改善传统卷积神经网络(CNN)的性能。这种连接方式使得网络更容易训练,同时提高了特征的重用率。以下是对 DenseNet 的详细介绍:

1. 背景与动机

  • 传统 CNN 的问题:在深层网络中,梯度消失和特征稀疏的问题使得网络的训练变得困难。随着网络的深度增加,很多信息在传递过程中会逐渐丢失。
  • 特征重用:DenseNet 提出的目标是让每一层都能访问到前面所有层的特征,以充分利用信息,减轻梯度消失的问题。

2. 架构设计

  • 密集连接:DenseNet 的每一层都与前面所有层直接连接。具体而言,假设有 LL 层,每一层的输入是所有前面层的输出特征的拼接。

  • 数学表达

    xl=Hl([x0,x1,…,xl−1])xl​=Hl​([x0​,x1​,…,xl−1​])

    其中 HlHl​ 表示第 ll 层的变换,[x0,x1,…,xl−1][x0​,x1​,…,xl−1​] 表示所有前面层的特征拼接。

  • 特征拼接:与残差连接不同,DenseNet 使用特征的拼接而不是加法。这样,网络可以获取更多的上下文信息。

3. 层次结构

  • Dense Block:DenseNet 的基本单元是 Dense Block,每个 Dense Block 包含多个卷积层。在每个卷积层中,输入来自该 Dense Block 中所有前面的层。
  • Transition Layer:在 Dense Block 之间,使用 Transition Layer 来减少特征图的数量和空间维度。Transition Layer 通常包括一个卷积层和一个池化层。

4. 优点

  • 更高的特征重用率:由于每一层都直接连接到前面所有层,DenseNet 在特征重用方面表现出色,从而提高了模型的表达能力。
  • 更少的参数:尽管 DenseNet 具有较高的深度,但它的参数数量往往比其他深层网络少。这是因为密集连接允许层共享特征,而不是独立学习特征。
  • 更好的梯度流:密集连接增强了梯度的流动,减轻了梯度消失的问题,使得更深的网络更容易训练。

5. 变种与扩展

  • DenseNet-121、DenseNet-169、DenseNet-201:这些是不同层数的 DenseNet 变种,数字表示网络中的层数。
  • DenseNet与其他网络的结合:DenseNet 可以与其他架构结合,如在目标检测或语义分割任务中与 FCN(Fully Convolutional Networks)结合。

6. 应用

  • 计算机视觉任务:DenseNet 广泛应用于图像分类、目标检测、图像分割等领域。
  • 医疗图像分析:在医学图像处理领域,DenseNet 由于其强大的特征提取能力,也取得了优异的效果。

总结

DenseNet 通过密集连接提高了特征重用率,改善了梯度流,从而使得深层网络训练更加高效且更容易。其独特的架构设计和出色的性能使得 DenseNet 在深度学习领域,特别是计算机视觉任务中,成为一种流行的选择。

 

CliqueNet 是一种用于图像分类的深度学习模型,旨在结合网络中的局部特征和全局上下文,以实现更好的性能。以下是对 CliqueNet 的详细介绍:

1. 背景

CliqueNet 于 2019 年提出,主要解决了传统卷积神经网络(CNN)在捕捉长距离依赖和全局特征时的不足。通过引入新的连接方式和模块,CliqueNet 能够在不增加计算复杂度的情况下,提升模型的表达能力。

2. 网络架构

CliqueNet 的架构基于以下几个关键组件:

  • 局部特征提取:使用卷积层提取局部特征。这一部分与传统的 CNN 类似,通常采用多个卷积块来逐步提取更高层次的特征。

  • 全局特征建模:通过全局池化或注意力机制,CliqueNet 能够对整个图像进行全局特征建模,以捕获长距离的依赖关系。这使得网络能够更好地理解图像的整体结构。

  • Clique Module:CliqueNet 引入了 Clique Module,这是一种新的特征融合机制。它将局部特征和全局特征进行结合,使得网络能够充分利用局部信息和全局上下文。

3. Clique Module

Clique Module 是 CliqueNet 的核心组件,其主要功能是增强特征之间的联系。其工作流程如下:

  • 特征融合:Clique Module 在局部特征和全局特征之间进行信息交互。通过这种方式,网络能够学习到更丰富的特征表示。

  • 信息传播:特征在网络中的传播通过设计特定的连接结构,使得每一层都能有效地利用前面层的特征。这种设计促进了特征重用。

4. 优点

  • 高效性:CliqueNet 在增加模型复杂度的同时,保持了计算效率,适合大规模数据集的训练。
  • 更好的特征表达:通过结合局部和全局特征,CliqueNet 能够更全面地理解输入图像,提升分类性能。
  • 灵活性:CliqueNet 可以与其他网络架构结合,作为特征提取模块或与其他算法组合使用。

5. 应用

CliqueNet 主要应用于以下领域:

  • 图像分类:在多个图像分类任务中,CliqueNet 表现优异,尤其是在大规模图像数据集上。
  • 目标检测和分割:通过将 CliqueNet 用作基础网络,可以提高目标检测和图像分割模型的性能。

6. 实验结果

在一些标准数据集上,如 CIFAR-10 和 ImageNet,CliqueNet 显示出了相对于传统 CNN 的显著性能提升,尤其在小样本学习和多样本学习场景下表现突出。

总结

CliqueNet 通过引入新的特征融合机制,结合了局部特征和全局上下文信息,从而在图像分类任务中实现了更好的性能。其灵活性和高效性使其在计算机视觉领域得到了广泛关注。

 

;