提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
摘要
本周主要阅读了CVPR 2017的经典论文,密集连接的卷积网络。因为前段时间对残差学习网络的学习,了解到其对网络整体更新的优化作用,学习到了卷积神经网络创新取决于其结构创新,于是在这次学习了也是结构创新的网络结构密集连接型的网络结构,在论文中了解到了其结构提出思路、整体网络结构及结构细节优化,在阅读完后对其结构优点作出了总结。
Abstract
I mainly read the classic paper of CVPR 2017 in this week , densely connected convolutional networks. Due to the recent learning of residual learning networks and their optimization effect on overall network updates, I learned that the innovation of convolutional neural networks depends on their structural innovation. Therefore, this time I learned about the densely connected network structure, which is also a structural innovation. In the paper, I learned about its structural proposal ideas, overall network structure, and structural details optimization. After reading, I summarized its structural advantages…
提示:以下是本篇文章正文内容,下面案例可供参考
文献阅读:密集连接的卷积网络
Title:Densely Connected Convolutional Networks
Author:Gao Huang 、Zhuang Liu 、Laurens van der Maaten 、 Kilian Q. Weinberger
From:CVPR 2017
1、研究背景和目的
卷积神经网络(CNN)已成为视觉对象识别的主要机器学习方法。尽管它们最初是在20多年前引入的,但计算机硬件和网络结构的改进才使 真正的深度卷积神经网络的训练成为可能。最初的LeNet5 由5层组成,VGG具有19 层,HighWay Network 和 Residual Networks 则是突破了 100层的屏障。随着网络的深度不断增加,为探索视觉上的未知提供了可能。随着CNN越来越深入,出现了新的研究问题:当有关输入或梯度的信息经过许多层时,它可能会在到达网络末尾时消失并“冲洗掉”。为了解决这个输入或梯度的信息在神经网络中消失的问题,提出了一个新的架构,密集连接的卷积网络。
2、研究思路
2.1、结构设想思路
在1980年代的神经网络相关文献中,就已经研究了一种密集网络布局的级联结构,这种密集网络布局的级联结构是专注于以逐层方式训练的完全连接的多层感知器。近年来,使用批量梯度下降训练的全连接级联网络被提出,尽管此方法对小型数据集有效,但仅可扩展到具有数百个参数的网络。在之后的结构中,发现通过跳跃连接在CNN中使用多级特征对于各种视觉任务都是有效的。与我们的工作平行,为设想的跨层连接的网络推导了一个纯粹的理论框架。
2.2、结构提出
近年来,基于对密集全连接级联网络的研究总结,提出了密集连接的卷积网络。整个网络结构的设计是为了确保最大程度的信息在网络中各层之间流动,如下图所示,该结构将所有层彼此直接连接。为了保留前馈特性,每个层都从所有先前的图层获取附加输入,并将其自身的特征图传递给所有后续层。在每个层次中,会有一个非线性转换函数,该函数可以为卷积、池化及Relu激活等操作。
2.3、相关概念—增长率
由2.2的网络架构图可以知道,每个层都可以访问其块中的所有先前的特征图,因此后续网络可以访问网络的“集体知识”,可以将特征图视为网络的全局状态。每个图层都将自己的 k 个特征图添加到此状态。增长率控制着每一层为全局状态贡献多少新信息。写入后的全局状态可以在网络中的任何位置进行访问,并且与传统的网络体系结构不同,无需将其逐层复制。
2.4、结构改进—密集块
在现实中可能会存在这样的情况,假如在特征提取过程中,当特征图的大小改变时,上述的非线性转换函数中使用的级联操作不可行。然而,卷积网络的重要组成部分是降低特征图大小的下采样层。为了便于在该体系结构中进行下采样,将整个网络划分为多个密集连接的密集块。如下图所示,将块之间的层称为过渡层,过渡层用来进行卷积和池化,用于对特征图的大小进行修改。在后续实验中使用的过渡层包括批处理规范化层和1×1卷积层,然后是一个 2×2的平均池化层。
2.5、结构优化—瓶颈层
在现实中可能存在这样的情况,假如整个架构保持这样的密集连接,到更深处的输入时候,整个网络的信息输出信道会变得非常地宽,这可能会给更加深层的层次结构带来不小的困难(比如就因为信息过多,处理的时候无法全部照顾到,便会出现数据间的竞争导致数据缺失的情况)。如下图所示,为了解决这个情况在可以在每次3×3卷积之前引入1×1卷积作为瓶颈层,降低整个特征信息图的维度,这样能提高计算效率,于是将具有瓶颈层的网络称为DenseNet-B。
2.6、结构优化—压缩
为了进一步提高模型的紧凑性,我们可以减少过渡层的特征图数量。如果密集块包含m个特征图,则让下面的过渡层生成 ⌊ θ \theta θm ⌋ 个输出特征图,其中 0 < θ \theta θ <= 1 称为压缩因子。当 θ \theta θ=1时,经过过渡层处理的特征图数量保持不变。于是将 θ \theta θ < 1 的DenseNet称为DenseNet-C。
2.7、训练
整个网络的训练优化均使用随机梯度下降方法(SGD)进行训练。在CIFAR数据集和SVHN数据集上,使用批量大小64 ,分别训练300和40个 epochs 。初始学习率设置为0.1,然后除以训练时期总数的50%和75%的10。在ImageNet上,训练了90个 epoch 的模型,批量大小为256。最初将学习率设置为0.1,然后在epoch 30和60的时候降低10倍。
需要注意的是,DenseNet的简单实现可能会导致内存效率低下。要减少GPU上的内存消耗,使用 10-4的权重衰减和0.9的奈斯特洛夫动量而没有衰减。采用引入的权重初始化。对于没有数据增强的三个数据集,即C10,C100和SVHN,在每个卷积层(第一个卷积层除外)之后添加一个dropout 层,并将dropout 概率设置为0.2。对于每个任务和模型设置,仅对测试错误进行一次评估。
2.8、测试结果
准确性:如下图所示,在与ResNet相比之下,DenseNet与ResNet在准确性上的表现差不多,在准确性差不多的情况下,DenseNet在参数的数量以及整体计算量上都比ResNet小。
3、结构优点
3.1、隐式深度监督
密集卷积网络的各个层通过较短的连接而受到损耗函数的额外监视,可以理解为DenseNets来执行一种“深度监督”。如下图所示,错误数据信号可以更加地快速回到顶端,这样能更快地对整个结构进行梯度下降优化。DenseNets以隐式方式执行类似的深度监控:网络顶部的单个分类器通过最多两个或三个过渡层对所有层提供直接监控。但是,DenseNets的损失函数和梯度实际上不那么复杂,因为在所有层之间共享相同的损失函数。
3.2、模型紧凑度高
在提取特征数据的过程中,神经网络在这个过程中往往回产生许多的参数以及会拥有较复杂的计算量。与ResNet相比,密集卷积网络在提取特征数据的过程中,因为模型结构的紧凑性,在每个卷积区域中,产生的参数数量会产生更少,计算量也相对减少。如下图所示,ResNet中产生的参数是CxC个,C为层宽或产生的通道,而DenseNet则是LxKxK,l为产生的通道,k为增长率。因为增长率的数值不会特别高,因此产生的参数量也会比较低。
3.3、特征复用
根据DenseNets架构的整体设计可以知道,在更深的底层依然能够使用从顶层传来的低复杂的特征。在以往的神经网络结构中每个层次都会使用复杂的非线性函数对特征数据进行加工,变为高复杂的特征数据,这样让后续的分类器负担着更加重的计算量。相比之下,因为密集卷积网络的特殊结构产生的特征复用,便能完美地解决这个问题,到最后的分类器层,分类器依然能够使用原始传来的低复杂特征数据以及对应层次的非线性函数对数据进行分类,再次大大减少了计算的复杂性。
4、结论
提出的一种新的卷积网络架构,密集卷积网络(DenseNet),它引入了具有相同要素图大小的任何两个图层之间的直接连接,形成特征复用,使整个网络结构更加地紧凑。DenseNets自然可以扩展到数百层,而没有任何优化困难,在实验中,随着参数数量的增加,DenseNets往往会不断提高精度,而不会出现性能下降或过度拟合的迹象。在多个环境下,它在多个高度竞争的数据集上均取得了最先进的结果。此外,DenseNets需要更少的参数和更少的计算来实现最新性能。可以通过更详细地调整超参数和学习率时间表来进一步提高DenseNets的准确性。
总结
因为对计算机视觉的喜爱,最近一直在学习相应的网络结构与技术,比如之前了解残差学习网络和超分辨率重构,在这周也是学习了新的特征提取网络密集连接的卷积网络。在阅读完该论文后,发现在后续的升级可能主要集中在网络结构的升级中,现在得开始对网络结构更新的学习!