【第10篇】DenseNet,2024年最新hr分享面试经验

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

=============================================================

最近的工作表明,如果卷积网络在靠近输入的层和靠近输出的层之间包含更短的连接,则它们可以更深入、更准确、更有效地进行训练。在本文中,我们接受了这一观察并介绍了密集卷积网络 (DenseNet),它以前馈方式将每一层连接到其他每一层。而具有 L 层的传统卷积网络有 L 个连接——每层与其后续层之间有一个连接——而我们的网络有 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1)​ 个直接连接。对于每一层,所有先前层的特征图用作输入,其自身的特征图用作所有后续层的输入。 DenseNets 有几个引人注目的优点:它们减轻了梯度消失问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量。我们在四个竞争激烈的对象识别基准任务(CIFAR-10、CIFAR-100、SVHN 和 ImageNet)上评估了我们提出的架构。 DenseNets 在大多数情况下获得了比最先进的显着改进,同时需要更少的计算来实现高性能。代码和预训练模型可在 https://github.com/liuzhuang13/DenseNet 获得。

image-20210915132656969

1 引言

===============================================================

卷积神经网络 (CNN) 已成为视觉对象识别的主要机器学习方法。 尽管它们最初是在 20 多年前推出的 [18],但直到最近,计算机硬件和网络结构的改进才使真正深度 CNN 的训练成为可能。 最初的 LeNet5 [19] 由 5 层组成,VGG 有 19 个 [29],仅在去年 Highway Networks [34] 和 Residual Networks (ResNets) [11] 已经超过了 100 层的障碍 。

随着 CNN 变得越来越深,一个新的研究问题出现了:当有关输入或梯度的信息经过许多层时,它可能会在到达网络的末尾(或开头)时消失并“洗掉”。 许多最近的出版物解决了这个或相关的问题。 ResNets [11] 和 Highway Networks [34] 通过身份连接将信号从一层绕过到下一层。 随机深度 [13] 通过在训练期间随机丢弃层来缩短 ResNets,以允许更好的信息和梯度流。 FractalNets [17] 反复组合多个具有不同卷积块数量的并行层序列,以获得较大的标称深度,同时在网络中保持许多短路径。 尽管这些不同的方法在网络拓扑和训练过程上有所不同,但它们都有一个关键特征:它们创建了从早期层到后期层的短路径。

在本文中,我们提出了一种架构,将这种见解提炼为一种简单的连接模式:为了确保网络中各层之间的信息流最大化,我们将所有层(具有匹配的特征图大小)直接相互连接。为了保持前馈特性,每一层从所有前面的层获得额外的输入,并将它自己的特征图传递给所有后续层。图 1 示意性地说明了这种布局。至关重要的是,与 ResNets 相比,我们从不在将特征传递到层之前通过求和来组合特征;相反,我们通过连接特征来组合特征。因此, ℓ t h \ell^{th} ℓth 层有 ℓ \ell ℓ输入,由所有前面卷积块的特征图组成。它自己的特征图被传递到所有 L − ℓ L−\ell L−ℓ 后续层。这在 L 层网络中引入了 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1)​ 个连接,而不仅仅是传统架构中的 L。由于其密集的连接模式,我们将我们的方法称为密集卷积网络(DenseNet)。

这种密集连接模式的一个可能违反直觉的影响是它需要比传统卷积网络更少的参数,因为不需要重新学习冗余特征图。传统的前馈架构可以被视为具有状态的算法,该状态在层与层之间传递。每一层从其前一层读取状态并将其写入后续层。它会改变状态,但也会传递需要保留的信息。 ResNets [11] 通过附加的身份转换使这种信息保存变得明确。 ResNets [13] 的最新变化表明,许多层贡献很小,实际上可以在训练期间随机丢弃。这使得 ResNets 的状态类似于(展开的)循环神经网络 [21],但 ResNets 的参数数量要大得多,因为每一层都有自己的权重。我们提出的 DenseNet 架构明确区分添加到网络的信息和保留的信息。 DenseNet 层非常窄(例如,每层 12 个过滤器),仅将一小组特征映射添加到网络的“集体知识”中并保持其余特征映射不变——最终分类器基于所有特征做出决策- 网络中的地图 。

除了更好的参数效率外,DenseNets 的一大优势是改进了整个网络的信息流和梯度,这使得它们易于训练。 每一层都可以直接访问来自损失函数和原始输入信号的梯度,从而导致隐式的深度监督 [20]。 这有助于训练更深的网络架构。 此外,我们还观察到密集连接具有正则化效果,这减少了对具有较小训练集大小的任务的过度拟合 。

我们在四个竞争激烈的基准数据集(CIFAR-10、CIFAR-100、SVHN 和 ImageNet)上评估 DenseNets。 我们的模型往往需要比具有可比精度的现有算法少得多的参数。 此外,我们在大多数基准任务上的表现明显优于当前最先进的结果。

2 相关工作

=================================================================

自最初发现以来,对网络架构的探索一直是神经网络研究的一部分。 最近神经网络的流行回潮也使这一研究领域复苏。 现代网络中层数的增加放大了架构之间的差异,并激发了对不同连接模式的探索和对旧研究思想的重新审视 。

在 1980 年代的神经网络文献中已经研究了类似于我们提出的密集网络布局的级联结构 [3]。 他们的开创性工作侧重于以逐层方式训练的全连接多层感知器。 最近,提出了用批量梯度下降训练的全连接级联网络 [40]。 尽管对小数据集有效,但这种方法仅适用于具有几百个参数的网络。 在 [9, 23, 31, 41] 中,已经发现通过跳过连接在 CNN 中利用多级特征对各种视觉任务是有效的。 与我们的工作并行,[1] 为具有类似于我们的跨层连接的网络推导出了一个纯理论框架。

Highway Networks [34] 是最早提供一种方法来有效训练 100 层以上的端到端网络的架构之一。使用旁路路径和门控单元,可以毫不费力地优化具有数百层的网络。绕过路径被认为是简化这些非常深网络的训练的关键因素。 ResNets [11] 进一步支持这一点,其中使用纯身份映射作为绕过路径。 ResNets 取得了令人瞩目的成就, 在许多具有挑战性的图像识别、定位和检测任务(例如 ImageNet 和 COCO 对象检测)上的性能破纪录 [11]。最近,随机深度被提出作为一种成功训练 1202 层 ResNet [13] 的方法。随机深度通过在训练期间随机丢弃层来改进深度残差网络的训练。这表明并非所有层都需要,并强调深度(残差)网络中存在大量冗余。我们的论文部分受到了这一观察的启发。具有预激活功能的 ResNet 还有助于训练具有 > 1000 层的最先进网络 [12]。

使网络更深的正交方法(例如,在跳过连接的帮助下)是增加网络宽度。 GoogLeNet [36, 37] 使用“Inception 模块”,该模块连接由不同大小的过滤器生成的特征图。 在 [38] 中,提出了一种具有广泛广义残差块的 ResNets 变体。 事实上,只要深度足够,简单地增加每层 ResNet 中的过滤器数量就可以提高其性能 [42]。 FractalNets 还使用广泛的网络结构在多个数据集上取得了有竞争力的结果 [17]。

DenseNets 不是从极深或极宽的架构中汲取表征能力,而是通过特征重用来利用网络的潜力,产生易于训练且参数效率高的浓缩模型。连接不同层学习的特征图会增加后续层输入的变化并提高效率。这构成了 DenseNets 和 ResNets 之间的主要区别。与也连接来自不同层的特征的 Inception 网络 [36, 37] 相比,DenseNets 更简单、更高效。

还有其他显着的网络架构创新已经产生了有竞争力的结果。网络中的网络 (NIN) [22] 结构将微型多层感知器包含在卷积层的过滤器中,以提取更复杂的特征。在深度监督网络(DSN)[20]中,内部层由辅助分类器直接监督,这可以加强早期层接收到的梯度。梯形网络 [27, 25] 将横向连接引入自动编码器,在半监督学习任务上产生令人印象深刻的准确性。在 [39] 中,提出了深度融合网络 (DFN),通过组合不同基础网络的中间层来改善信息流。具有最小化重建损失的路径的网络增强也被证明可以改进图像分类模型 [43]

3 DenseNets

======================================================================

image-20210915132836307

考虑通过卷积网络的单个图像 x 0 x_{0} x0​。 该网络由 L 层组成,每一层都实现了一个非线性变换 H ℓ ( ⋅ ) H_{\ell} (·) Hℓ​(⋅),其中 ℓ \ell ℓ索引了层。 H ℓ ( ⋅ ) H_{\ell} (·) Hℓ​(⋅) 可以是诸如批量归一化 (BN) [14]、整流线性单元 (ReLU) [6]、池化 [19] 或卷积 (Conv) 等操作的复合函数。 我们将 ℓ t h \ell^{th} ℓth的输出表示为 x ℓ x_{\ell} xℓ​。

ResNets。 传统的卷积前馈网络将 ℓ t h \ell^{th} ℓth的输出作为输入连接到 ( ℓ + 1 ) t h (\ell+1)^{th} (ℓ+1)th层 [16],从而产生以下层转换: x ℓ = H ℓ ( x ℓ − 1 ) \mathbf{x}_{\ell}=H_{\ell}\left(\mathbf{x}_{\ell-1}\right) xℓ​=Hℓ​(xℓ−1​)。 ResNets [11] 添加了一个跳过连接,它绕过了具有恒等函数的非线性变换:

x ℓ = H ℓ ( x ℓ − 1 ) + x ℓ − 1 (1) \mathbf{x}_{\ell}=H_{\ell}\left(\mathbf{x}_{\ell-1}\right)+\mathbf{x}_{\ell-1} \tag{1} xℓ​=Hℓ​(xℓ−1​)+xℓ−1​(1)

ResNets 的一个优点是梯度可以直接通过恒等函数从后面的层流到前面的层。 然而,恒等函数和 H ℓ H_{\ell} Hℓ​的输出是通过求和组合的,这可能会阻碍网络中的信息流动。

密集连接。 为了进一步改善层之间的信息流,我们提出了一种不同的连接模式:我们引入了从任何层到所有后续层的直接连接。 图 1 示意性地说明了生成的 DenseNet 的布局。 因此, ℓ t h \ell^{th} ℓth层接收所有前面层的特征图, x 0 , … , x ℓ − 1 \mathbf{x}_{0}, \ldots, \mathbf{x}_{\ell-1} x0​,…,xℓ−1​,作为输入:

x ℓ = H ℓ ( [ x 0 , x 1 , … , x ℓ − 1 ] ) (2) \mathbf{x}_{\ell}=H_{\ell}\left(\left[\mathbf{x}_{0}, \mathbf{x}_{1}, \ldots, \mathbf{x}_{\ell-1}\right]\right) \tag{2} xℓ​=Hℓ​([x0​,x1​,…,xℓ−1​])(2)

其中 [ x 0 , x 1 , … , x ℓ − 1 ] \left[\mathbf{x}_{0}, \mathbf{x}_{1}, \ldots, \mathbf{x}_{\ell-1}\right] [x0​,x1​,…,xℓ−1​] 指的是层$ 0,…,\ell-1$ 中产生的特征图的串联。 由于其密集的连接性,我们将这种网络架构称为密集卷积网络 (DenseNet)。为了便于实现,我们将等式(2) 中 H ℓ ( ⋅ ) H_{\ell} (·) Hℓ​(⋅)的多个输入连接成单个张量。

复合功能。 受 [12] 的启发,我们将 H ℓ ( ⋅ ) H_{\ell} (·) Hℓ​(⋅) 定义为三个连续操作的复合函数:批量归一化 (BN) [14],然后是整流线性单元 (ReLU) [6] 和 3 × 3 卷积( Conv)。

池化层。 当特征图的大小发生变化时,等式(2)中使用的连接操作是不可行的。 然而,卷积网络的一个重要部分是改变特征图大小的下采样层。 为了在我们的架构中进行下采样,我们将网络划分为多个密集连接的密集块; 参见图 2。我们将块之间的层称为过渡层,它们进行卷积和池化。 我们实验中使用的过渡层由一个批量归一化层和一个 1×1 卷积层和一个 2×2 平均池化层组成。

**增长率。**如果每个函数 H ℓ H_{\ell} Hℓ​产生 k 个特征图,那么 ℓ t h \ell ^{th} ℓth 层有$ k_{0}+ k × (\ell − 1) $个输入特征图,其中 k0 是输入层中的通道数。 DenseNet 和现有网络架构之间的一个重要区别是 DenseNet 可以有非常窄的层,例如,k = 12。我们将超参数 k 称为网络的增长率。我们在第 4 节中表明,相对较小的增长率足以在我们测试的数据集上获得最先进的结果。对此的一种解释是,每一层都可以访问其块中的所有先前特征图,因此可以访问网络的“集体知识”。人们可以将特征图视为网络的全局状态。每层都将自己的 k 个特征图添加到这个状态。增长率调节每层对全局状态贡献多少新信息。全局状态一旦写入,就可以从网络内的任何地方访问,并且与传统网络架构不同,不需要在层与层之间复制它 。

image-20210916124745033

Bottleneck layers。 虽然每一层只产生 k 个输出特征图,但它通常有更多的输入。 在 [37, 11] 中已经注意到,可以在每个 3×3 卷积之前引入 1×1 卷积作为Bottleneck layers,以减少输入特征图的数量,从而提高计算效率。 我们发现这种设计对 DenseNet 特别有效,我们将我们的网络称为具有这样一个瓶颈层的网络,即 H ℓ H_{\ell} Hℓ​ 的 BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3) 版本, 作为 DenseNet-B。 在我们的实验中,我们让每个 1×1 卷积产生 4k 个特征图。

压缩。 为了进一步提高模型的紧凑性,我们可以减少过渡层的特征图数量。 如果一个密集块包含 m 个特征图,我们让下面的过渡层生成 bθmc 输出特征图,其中 0 <θ ≤1 被称为压缩因子。 当 θ = 1 时,跨过渡层的特征图数量保持不变。 我们将 θ<1 的 DenseNet 称为 DenseNet-C,我们在实验中设置 θ = 0.5 θ = 0.5 θ=0.5。 当同时使用 θ < 1 的瓶颈层和过渡层时,我们将我们的模型称为 DenseNet-BC。

**实施细节。**在除 ImageNet 之外的所有数据集上,我们实验中使用的 DenseNet 具有三个密集块,每个块都有相同的层数。在进入第一个密集块之前,对输入图像执行具有 16 个(或 DenseNet-BC 增长率的两倍)输出通道的卷积。对于内核大小为 3×3 的卷积层,输入的每一侧都填充了一个像素以保持特征图大小固定。我们使用 1×1 卷积,然后是 2×2 平均池化作为两个连续密集块之间的过渡层。在最后一个密集块的末尾,执行全局平均池化,然后附加一个 softmax 分类器。三个密集块中的特征图大小分别为 32×32、16×16 和 8×8。我们使用配置 fL = 40 的基本 DenseNet 结构进行实验; k = 12g,fL = 100; k = 12g 和 fL = 100; k = 24g。对于 DenseNetBC,配置 fL = 100 的网络; k=12g,fL=250; k = 24g 且 fL = 190; k = 40g 被评估。

在我们对 ImageNet 的实验中,我们在 224×224 输入图像上使用具有 4 个密集块的 DenseNet-BC 结构。 初始卷积层包含 2k 个大小为 7×7、步幅为 2 的卷积; 所有其他层中的特征图数量也来自设置 k。 我们在 ImageNet 上使用的确切网络配置如表 1 所示。

4 实验

===============================================================

我们凭经验证明了 DenseNet 在几个基准数据集上的有效性,并与最先进的架构进行了比较,特别是与 ResNet 及其变体。

4.1 数据集


CIFAR。 两个 CIFAR 数据集 [15] 由 32×32 像素的彩色自然图像组成。 CIFAR-10 (C10) 由来自 10 个类别的图像和来自 100 个类别的 CIFAR-100 (C100) 组成。 训练集和测试集分别包含 50,000 和 10,000 张图像,我们保留 5,000 张训练图像作为验证集。 我们采用广泛用于这两个数据集的标准数据增强方案(镜像/移位)[11、13、17、22、28、20、32、34]。 我们在数据集名称(例如,C10+)的末尾用“+”标记表示这个数据增强方案。 对于预处理,我们使用通道均值和标准差对数据进行归一化。 对于最终运行,我们使用所有 50,000 张训练图像并在训练结束时报告最终测试错误。

SVHN。 街景房屋号码 (SVHN) 数据集 [24] 包含 32×32 彩色数字图像。 训练集中有 73,257 张图像,测试集中有 26,032 张图像,还有 531,131 张用于额外训练的图像。 按照惯例 [7, 13, 20, 22, 30] 我们使用所有训练数据而不进行任何数据增强,并从训练集中分割出一个包含 6,000 张图像的验证集。 我们在训练期间选择验证错误最低的模型并报告测试错误。 我们遵循 [42] 并将像素值除以 255,使它们在 [0; 1] 范围

ImageNet。 ILSVRC 2012 分类数据集 [2] 包含 120 万张用于训练的图像和 50,000 张用于验证的图像,从 1 开始; 000班。 我们采用与 [8, 11, 12] 中相同的数据增强方案来训练图像,并在测试时应用大小为 224×224 的单次或 10 次裁剪。 遵循 [11, 12, 13],我们报告了验证集的分类错误。

4.2 训练


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-mBQTs6DR-1713437357246)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值