热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于算法:轻量级网络综述-主干网络篇

轻量级网络的外围是在尽量放弃精度的前提下,从体积和速度两方面对网络进行轻量化革新,本文对轻量级网络进行简述,次要波及以下网络:SqueezeNet系列ShuffleNet系列MnasNetMobileNet系列CondenseNetESPNet系列ChannelNetsPeleeNetIGC系列FBNet系列EfficientNetGhostNetWeightNetMicroNetMobileNe

  轻量级网络的外围是在尽量放弃精度的前提下,从体积和速度两方面对网络进行轻量化革新,本文对轻量级网络进行简述,次要波及以下网络:

  • SqueezeNet系列
  • ShuffleNet系列
  • MnasNet
  • MobileNet系列
  • CondenseNet
  • ESPNet系列
  • ChannelNets
  • PeleeNet
  • IGC系列
  • FBNet系列
  • EfficientNet
  • GhostNet
  • WeightNet
  • MicroNet
  • MobileNext
SqueezeNet系列

  SqueezeNet系列是比拟晚期且经典的轻量级网络,SqueezeNet应用Fire模块进行参数压缩,而SqueezeNext则在此基础上退出拆散卷积进行改良。尽管SqueezeNet系列不如MobieNet应用宽泛,但其架构思维和试验论断还是能够值得借鉴的。

SqueezeNet

  SqueezeNet是晚期开始关注轻量化网络的钻研之一,应用Fire模块进行参数压缩。

  SqueezeNet的外围模块为Fire模块,构造如图1所示,输出层先通过squeeze卷积层($1\times 1$卷积)进行维度压缩,而后通过expand卷积层($1\times 1$卷积和$3\times 3$卷积混合)进行维度扩大。Fire模块蕴含3个参数,别离为squeeze层的$1\times 1$卷积核数$s_{1&#215;1}$、expand层的$1\times 1$卷积核数$e_{1&#215;1}$和expand层的$3\times 3$卷积核数$e_{3&#215;3}$,个别$s_{1&#215;1}<(e_{1&#215;1}+e_{3&#215;3})$

SqueezeNext

  SqueezeNext是SqueezeNet实战升级版,间接和MobileNet比照性能。SqueezeNext全副应用规范卷积,剖析理论推理速度,优化的伎俩集中在网络整体构造的优化。

  SqueezeNext的设计沿用残差构造,没有应用过后风行的深度拆散卷积,而是间接应用了拆散卷积,设计次要基于以下策略:

  • Low Rank Filters
      低秩合成的核心思想就是将大矩阵分解成多个小矩阵,这里应用CP合成(Canonical Polyadic Decomposition),将$K\times K$卷积分解成$K\times 1$和$1\times K$的拆散卷积,参数量能从$K^2$降为$2K$。
  • Bottleneck Module
      参数量与输入输出维度无关,尽管能够应用深度拆散卷积来缩小计算量,然而深度拆散卷积在终端零碎的计算并不高效。因而采纳SqueezeNet的squeeze层进行输出维度的压缩,每个block的结尾应用间断两个squeeze层,每层升高1/2维度。
  • Fully Connected Layers
      在AlexNet中,全连贯层的参数占总模型的96%,SqueezeNext应用bottleneck层来升高全连贯层的输出维度,从而升高网络参数量。
ShuffleNet系列

  ShuffleNet系列是轻量级网络中很重要的一个系列,ShuffleNetV1提出了channel shuffle操作,使得网络能够纵情地应用分组卷积来减速,而ShuffleNetV2则推倒V1的大部分设计,从理论登程,提出channel split操作,在减速网络的同时进行了特色重用,达到了很好的成果。

ShuffleNet V1

  ShuffleNet的外围在于应用channel shuffle操作补救分组间的信息交换,使得网络能够纵情应用pointwise分组卷积,不仅能够缩小次要的网络计算量,也能够减少卷积的维度。

  在目前的一些支流网络中,通常应用pointwise卷积进行维度的升高,从而升高网络的复杂度,但因为输出维度较高,pointwise卷积的开销也是非常微小的。对于小网络而言,低廉的pointwise卷积会带来显著的性能降落,比方在ResNext unit中,pointwise卷积占据了93.4%的计算量。为此,论文引入了分组卷积,首先探讨了两种ShuffleNet的实现:

  • 图1a是最间接的办法,将所有的操作进行了相对的维度隔离,但这会导致特定的输入仅关联了很小一部分的输出,阻隔了组间的信息流,升高了表达能力。
  • 图1b对输入的维度进行重新分配,首先将每个组的输入分成多个子组,而后将每个子组输出到不同的组中,可能很好地保留组间的信息流。

  图1b的思维能够简略地用channel shuffle操作进行实现,如图1c所示,假如蕴含$g$组的卷积层输入为$g\times n$维,首先将输入reshape()为$(g, n)$,而后进行transpose(),最初再flatten()回$g\times n$维。

ShuffleNet V2

  ShuffleNetV1的pointwise分组卷积以及bottleneck后果均会进步MAC,导致不可漠视的计算损耗。为了达到高性能以及高准确率,要害是在不通过浓密卷积以及过多分组的状况下,取得输入输出一样的大维度卷积。ShuffleNet V2从实际登程,以理论的推理速度为领导,总结出了5条轻量级网络的设计要领,并依据要领提出了ShuffleNetV2,很好地兼顾了准确率和速度,其中channel split操作非常亮眼,将输出特色分成两局部,达到了相似DenseNet的特色重用成果。

  ShuffeNetV1的unit构造如图3ab所示,在V1的根底上退出channel split操作,如图3c所示。在每个unit的结尾,将特色图分为$c-c^{&#8216;}$以及$c^{&#8216;}$两局部,一个分支间接往后传递,另一个分支蕴含3个输入输出维度一样的卷积。V2不再应用分组卷积,因为unit的结尾曾经相当于进行了分组卷积。在实现卷积操作后,将特色concate,复原到unit的输出大小,而后进行channel shuffle操作。这里没有了element-wise adddition操作,也节俭了一些计算量,在实现的时候将concat/channel shuffle/channel split合在一起做了,可能进一步晋升性能。
  空间下采样时对unit进行了大量的批改,如图3d所示,去掉了channel split操作,因而输入大小升高一倍,而维度则会增加一倍。

MnasNet

  论文提出了挪动端的神经网络架构搜寻办法,该办法次要有两个思路,首先应用多指标优化办法将模型在理论设施上的耗时融入搜寻中,而后应用合成的档次搜寻空间让网络放弃层多样性的同时,搜寻空间仍然很简洁,MnasNet可能在准确率和耗时中有更好的trade off

MobileNet系列

  MobileNet系列是很重要的轻量级网络家族,出自谷歌,MobileNetV1应用深度可拆散卷积构建轻量级网络,MobileNetV2提出翻新的inverted residual with linear bottleneck单元,尽管层数变多了,然而整体网络准确率和速度都有晋升,MobileNetV3则联合AutoML技术与人工微调进行更轻量级的网络构建。

MobileNetV1

  MobileNetV1基于深度可拆散卷积构建了十分轻量且提早小的模型,并且能够通过两个超参数进一步管制模型的大小,该模型可能利用到终端设备中,具备很重要的实际意义。

  MobileNet通过深度可拆散卷积优进行计算量优化,将规范卷积转化为深度卷积和$1\times 1$pointwise卷积,每层前面都会接BN和ReLU。

MobileNetV2

  MobileNetV2首先表明高维特色理论能够用紧凑的低维特色表白,而后提出了新的层单元inverted residual with linear bottleneck,该构造与残差网络单元相似,都蕴含shorcut,区别在于该构造是输入输出维度少,两头通过线性卷积先扩大升维,而后通过深度卷积进行特征提取,最初再映射降维,能够很好地放弃网络性能且网络更加轻量。

MobileNetV3

  MobileNetV3先基于AutoML构建网络,而后进行人工微调优化,搜寻办法应用了platform-aware NAS以及NetAdapt,别离用于全局搜寻以及部分搜寻,而人工微调则调整了网络前后几层的构造、bottleneck退出SE模块以及提出计算高效的h-swish非线性激活。

CondenseNet

  DenseNet基于特色复用,可能达到很好的性能,然而论文认为其内在连贯存在很多冗余,晚期的特色不须要复用到较后的层。为此,论文基于可学习分组卷积提出CondenseNet,可能在训练阶段主动稠密网络结构,抉择最优的输入输出连贯模式,并在最初将其转换成惯例的分组卷积分组卷积构造。

  分组卷积的学习蕴含多个阶段,前半段训练过程蕴含多个condensing阶段,联合疏导稠密化的正则化办法来重复训练网络,而后将不重要的filter剪枝。后半部分为optimization阶段,这个阶段对剪枝固定后的网络进行学习。

ESPNet系列

  ESPNet系列的外围在于空洞卷积金字塔,每层具备不同的dilation rate,在参数量不减少的状况下,可能交融多尺度特色,绝对于深度可拆散卷积,深度可拆散空洞卷积金字塔性价比更高。另外,HFF的多尺度特色交融办法也很值得借鉴 。

ESPNet

  ESPNet是用于语义宰割的轻量级网络,外围在于ESP模块。如图a所示,该模块蕴含point-wise卷积和空洞卷积金字塔,别离用于升高计算复杂度以及重采样无效感触域不同的特色。ESP模块比其它卷积合成办法(mobilenet/shufflenet)更高效,ESPNet能在GPU/笔记本/终端设备上达到112FPS/21FPS/9FPS。
  另外,论文发现,只管空洞卷积金字塔带来更大的感触域,但间接concate输入却会带来奇怪网格纹路。为了解决这个问题,论文提出图b的HFF操作,在concate之前先将输入进行层级相加。绝对于增加额定的卷积来进行后处理,HFF可能无效地解决网格纹路而不带来过多的计算量。另外,为了保障网络的梯度传递,在ESP模块增加了一条从输出到输入的shortcut连贯。

ESPNetV2

  ESPNetv2在ESPNet的根底上联合深度拆散卷积的设计办法,进行了进一步的模型轻量化。首先将point-wise卷积替换为分组point-wise卷积,而后将计算量较大的空洞卷积替换为深度可拆散空洞卷积,最初仍然应用HFF来打消网格纹路,输入特色减少一次特征提取,失去图b的构造。思考到独自计算K个point-wise卷积等同于单个分组数为K的point-wise分组卷积,而分组卷积的在实现上更高效,于是改良为图c的最终构造。

ChannelNets

  论文提出channel-wise卷积的概念,将输入输出维度的连贯进行稠密化而非全连贯,区别于分组卷积的严格分组,以相似卷积滑动的模式将输出channel与输入channel进行关联,可能更好地保留channel间的信息交换。基于channel-wise卷积的思维,论文进一步提出了channel-wise深度可拆散卷积,并基于该构造替换网络最初的全连贯层+全局池化的操作,搭建了ChannelNets。

PeleeNet

  基于DenseNet的浓密连贯思维,论文通过一系列的构造优化,提出了用于挪动设施上的网络结构PeleeNet,并且交融SSD提出指标检测网络Pelee。从试验来看,PeleeNet和Pelee在速度和精度上都是不错的抉择。

IGC系列

  IGC系列网络的外围在分组卷积的极致使用,将惯例卷积分解成多个分组卷积,可能缩小大量参数,另外互补性准则和排序操作可能在起码的参数量状况下保障分组间的信息流通。但整体而言,尽管应用IGC模块后参数量和计算量升高了,但网络结构变得更为繁琐,可能导致在实在应用时速度变慢。

IGCV1

  Interleaved group convolution(IGC)模块蕴含主分组卷积和次分组卷积,别离对主分区和次分区进行特征提取,主分区通过输出特色分组取得,比方将输出特色分为$L$个分区,每个分区蕴含$M$维特色,而对应的次分区则分为$M$个分区,每个分区蕴含$L$维特色。主分组卷积负责对输出特色图进行分组特征提取,而次组卷积负责对主分组卷积的输入进行交融,为$1\times 1$卷积。IGC模块模式上与深度可拆散卷积相似,但分组的概念贯通整个模块,也是节俭参数的要害,另外模块内补充了两个排序模块来保障channel间的信息交换。

IGCV2

  IGCV1通过两个分组卷积来对原卷积进行合成,缩小参数且放弃残缺的信息提取。但作者发现,因为主分组卷积和次分组卷积在分组数上是互补的,导致次卷积的分组数个别较小,每个分组的维度较大,次卷积核较为浓密。为此,IGCV2提出Interleaved Structured Sparse Convolution,应用多个间断的稠密分组卷积来替换原来的次分组卷积,每个分组卷积的分组数都足够多,保障卷积核的稠密性。

IGCV3

  基于IGCV和bootleneck的思维,IGCV3联合低秩卷积核和稠密卷积核来形成浓密卷积核,如图1所示,IGCV3应用低秩稠密卷积核(bottleneck模块)来扩大和输出分组特色的维度以及升高输入的维度,两头应用深度卷积提取特色,另外引入松弛互补性准则,相似于IGCV2的严格互补性准则,用来应答分组卷积输入输出维度不一样的状况。

FBNet系列

  FBNet系列是齐全基于NAS搜寻的轻量级网络系列,剖析以后搜寻办法的毛病,逐渐减少创新性改良,FBNet联合了DNAS和资源束缚,FBNetV2退出了channel和输出分辨率的搜寻,FBNetV3则是应用准确率预测来进行疾速的网络结构搜寻。

FBNet

  论文提出FBNet,应用可微神经网络搜寻(DNAS)来发现硬件相干的轻量级卷积网络,流程如图1所示。DNAS办法将整体的搜寻空间示意为超网,将寻找最优网络结构问题转换为寻找最优的候选block散布,通过梯度降落来训练block的散布,而且能够为网络每层抉择不同的block。为了更好地预计网络的时延,事后测量并记录了每个候选block的理论时延,在估算时间接依据网络结构和对应的时延累计即可。

FBNetV2

  DNAS通过训练蕴含所有候选网络的超网来采样最优的子网,尽管搜寻速度快,但须要消耗大量的内存,所以搜寻空间个别比其它办法要小,且内存耗费和计算量耗费随搜寻维度线性减少。为了解决这个问题,论文提出DMaskingNAS,将channel数和输出分辨率别离以mask和采样的形式退出到超网中,在带来大量内存和计算量的状况下,大幅减少$10^{14}$倍搜寻空间。

FBNetV3

  论文认为目前的NAS办法大都只满足网络结构的搜寻,而没有在意网络性能验证时的训练参数的设置是否适合,这可能导致模型性能降落。为此,论文提出JointNAS,在资源束缚的状况下,同时搜寻最精确的训练参数以及网络结构。FBNetV3齐全脱离了FBNetV2和FBNet的设计,应用的准确率预测器以及基因算法都曾经在NAS畛域有很多利用,次要亮点在于将训练参数退出到了搜寻过程中,这对性能的晋升非常重要。

EfficientNet

  论文对模型缩放进行深入研究,提出混合缩放办法,该办法能够更优地抉择宽度、深度和分辨率的维度缩放比例,从而使得模型可能达到更高的精度。另外,论文通过NAS神经架构搜寻提出EfficientNet,配合混合缩放办法,可能应用很大量的参数达到较高的准确率。

GhostNet

  训练好的网络个别都有丰盛甚至冗余的特色图信息来保障对输出的了解,类似的特色图相似于对方的ghost。但冗余的特色是网络的要害个性,论文认为与其防止冗余特色,不如以一种cost-efficient的形式承受,于是提出能用更少参数提取更多特色的Ghost模块,首先应用输入很少的原始卷积操作(非卷积层操作)进行输入,再对输入应用一系列简略的线性操作来生成更多的特色。这样,不必扭转其输入的特色图数量,Ghost模块的整体的参数量和计算量就曾经升高了。

WeightNet

  论文提出了一种简略且高效的动静生成网络WeightNet,该构造在权值空间上集成了SENet和CondConv的特点,在激活向量前面增加一层分组全连贯,间接产生卷积核的权值,在计算上非常高效,并且可通过超参数的设置来进行准确率和速度上的trade-off。

MicroNet

  论文提出应答极低计算量场景的轻量级网络MicroNet,蕴含两个外围思路Micro-Factorized convolution和Dynamic Shift-Max,Micro-Factorized convolution通过低秩近似将原卷积分解成多个小卷积,放弃输入输出的连接性并升高连接数,Dynamic Shift-Max通过动静的组间特色交融减少节点的连贯以及晋升非线性,补救网络深度缩小带来的性能升高。

MobileNext

  论文深入分析了inverted residual block的设计理念和毛病,提出更适宜轻量级网络的sandglass block,基于该构造搭建的MobileNext。sandglass block由两个depthwise卷积和两个pointwise卷积组成,局部卷积不需激活以及shorcut建设在高维度特色上。依据论文的试验后果,MobileNext在参数量、计算量和准确率上都有更优的体现。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 上一章讲了如何制作数据集,接下来我们使用mmcls来实现多标签分类。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • 【Python 爬虫】破解按照顺序点击验证码(非自动化浏览器)
    #请求到验证码base64编码json_img_datajson_raw.get(Vimage)#获取到验证码编码 #保存验证码图片到本地defbase64_to_img(bstr ... [详细]
author-avatar
到底是谁额额额
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有