持续创作,加速成长!这是我参与「日新计划 6 月更文挑战」的第7天,点击查看活动详情
- 作者:韩信子@ShowMeAI
- 教程地址:www.showmeai.te数据分析师资格证书ch/tutorials/3…
- 本文地址:www.showmeai.tech/article-det…
- 声明:版权所有,转载请联系平台与作者并效率英文翻译注明出处
- 收藏ShowMeAI查看更多精彩内容
前言
卷积神经网络的结构优化和通信深度加深,带来非常显著的图像识别效果提升,但同时也带来了效率是什么意思高计算复杂度和更长的计算时间,实际工程应用中对效率的考虑也很多,数据分析师高薪骗局研究界与工业界近年都在努力「保持效果的情况下压缩网络复杂度」,也诞生了很多轻量化网络。在本篇内容中,ShowMeAI对常见主流轻量级网络进行展开讲解。
本篇重点
- 神经网络参数与复杂度计算
- 轻量化网络
- SqueezeNet
- Xception
- ShuffleNet V1~V2通信达
- MobileNet V1~V3
1.基础知识
我们先来做一点基础知识储备,本篇讲到的轻量化CNN框架,我们需数据分析报告要了解参数量和计算量的估测与计算方式。
1.1 复杂度通信工程专业分析
- 理论计算量(FLOPs):浮点运算次数(FLoating数据分析方法-point Op级联效应eration)
- 参数数量(params):单位通常为 MM,用 float32 表示。
1.2 典型结构对比
-
标准卷积层 std conv(主要贡献计算量)
- params:通信khkwcincoutk_htimes k_wtimes c_{in}times c_{out}
- FLOPs:khkwcincoutHWk_htimes k_wt数据分析师资格证书im教程拼音es c_{in}times c_{out}times Htimes W
-
全连接层 fc(主要贡献参数量)
- params:cincoutc_{in}times c_{out}
- FLOPs:cincoutc_{in}times c_{out}
-
group conv
- params:(khkwcin/gcout/g)g=khkwcincout/g(k_htimes k_wtimes c_{in}/g times c_{out}/g)times g=k_htimes k_wtimes c_{in}times c_{out}/g
- FLOPs:khkwcincoutHW/gk_htimes k_wtimes c_{in}times c_{out}times Htimes W/g
-
depth-wise conv
- params:khkwcincout/cin=khkwcoutk_htimes k_wtimes c_{in}times c_{out}/c_{in}=k_htim数据分析师工作内容es k_wtimes c_{out}
- FLOPs:khkwcoutHWk_htimes k_wtimes c_{out}times Htimes W
2.SqueezeNet
轻量化网络中一个著名的网络是 SqueezeNet ,它发表于IC级联反应名词解释LR 2017,它拥有与 AlexNet 相同的精度,但只用了 AlexNet 1/50 的参数量。
SqueezeNet通信地址 的核心在于采用不同于常规的卷积方式来降低参数量,具体做法是使用 Fir教程之家提取码e Module,先用 111 times 1 卷积降低通道数目,然后用 111 times 1 卷积和 333 times 3 卷积提升通道数。
2.1 压缩策略
SqueezeNet 采用如下3个策略:
- ① 将 333 times 3 卷积替换为 111 times 1 卷积
- ② 减数据分析师高薪骗局少 333 times 3 卷积的通道数
- ③ 将降通信工程采样操作延后,这样可以给卷积提供更大的 activation map,从而保留更多的信息,提供更高的分类准确率。
其中,策略1和2可以显著减少模型参数量,策略3可以在模型参数量受限的情况下提高模型的性能。
2.2 Fire Module
Fire Modu数据分析师工作内容le是SqueezeNet网络的基础模块,设计如下图所示:
一个 Fire Module 由 Squeeze 和 Extract 两部分组成:
- Squeeze 部分包括了一系列连续的 111 times 1 卷通信地址积
- Extract数据分析培训 部分包括了一系通信人家园列连续的 111 times 1 卷积和一系列连续的 333 times 3 卷积,然后将 111 times 1 和 333 times 3 的卷积数据分析师工作内容结果进行concat。
记 Squeeze 部分的通道数为 Cs11C_{s{1times 1}},Extract部分 111 times 1 和 333 times 3 的通道数分别为 Ce11C_{e{1times 1}} 和 Ce33C_{e{3times 3}},作者建议 Cs11<Ce11+Ce33C_{s{1times 1}} lt C_{e{1times 1}} + C_{e{3times 3}} ,这样做相当于在 S通信行程卡que通信行程卡eze 和 Extraxt 之间插入了 bottlene教程之家教学视频t。
2.3 网络结构
在Fire Module的基础上搭建SqueezeNet神经网络。级联交换机它以卷积层开始,后面是 8 个 Fire Module,最后以卷积层结束,每个 Fire Module 中的通道数目逐渐增加。另外网教程拼音络在 conv1,fire4,fire8,conv10的后面使用了 max-pooling。
SqueezeNet 结通信行程卡构如下图所示,左侧是不加 shortcut 的版本,中间是加了 shortcut 的级联版本,右侧是在不同通道的特征图之间加入 shortcut 的版本。
SqueezeNet的性能类似于AlenNet,然而参数量只有后者的1/50,效率使用Dee数据分析方法p Compression可以进一步将模型大小压缩到仅仅有0.5M。
2.4 SqueezeNet缺点
SqueezeNet 缺点如下:
- SqueezeNet 通过更深的网络置换更多的参数,虽然有更低的参数量,但是网络的测试阶段耗时会增加,考虑到轻量级模型倾向于应用在嵌入式场景,这一变化可能会带来新的问题。
- AlaxNet 的参数量(50M)大部分由全教程连接层效率高发票查验带来,加上一部分参数量进行对比,数字稍有夸张。通信地址
3.Xception
另一个需要提到的典型网络是 Xception,它的基本思想是,在 Inception V3 的基础上,引入沿着通道维度的解耦合,基本不增加网络数据分析观念复杂度的前提下提高了模型的效果,使用Depthwise Seperable Convolution实现。
Xception虽然不是出于轻量级的考虑而设计的模型,但是由于使用了pointwise convolution和depthwise convolution的结合,实际上也起到了降低参数量的效果,我们也放在轻量模型教程之家教学视频里做个介绍。
3.1 设计动机
卷积在 HWC(高 times 宽 times数据分析观念 通道数)这3个维度上教程英文翻译进行学习,既考虑空间相关性,又考虑通道相关性,可以考虑这两种相关性解耦分开。
Xception 的做法是使用 point-wise convolu级联是串联还是并联tion 考虑 cross-channe级联反应l correlat级联效应ion,使用 depthwise convolution 考虑 spatia教程之家教学视频l correlat教程的意思ion。
3.2 从Inception到Extreme version of In通信人家园ception
下图是一个 Inception V3 的基础模块,分别用 111 t级联输入imes 1 卷积和 333 times 3 卷积考虑通道相关性和空间相关性,基本结级联删除构是用 111 times 1 卷积降维,用 333 times 3 卷积提级联取特征:效率
如果将上述结数据分析软件构简化,则可以得到如下的结构,可见每一个分支都包含了一个 111 times 1 卷积和一个 333 times 3 卷积:
从上图中可见,对于每一个分支,该模块使用 111 times 1 卷积对输入特征图进行处理,然后使用 333 times 3 卷积提取特征。
如果考虑空间相关性和通道相关性的解耦合,即用同一个 11通信达1 times 1 卷积进行通道处理,将处理结果沿着通道维度拆解教程魔方为若通信技术干部分,对于每一部分使用不同的 333 time级联删除s 3 卷积数据分析师证书提取特征,则得到如下图所示的模块:
考虑一种更为极端的情况,在使用 111 times 1 卷积之后,沿着通道维度进行最为极端的拆解,对于拆解后的每一个部分使用 333 times 3 卷积提取特征,这一步可以使用 depthwise convolution 实现,最后将这些提取效率集到的特征图进行 concat,这教程之家就是 Xception 的基础模块,如下图所示:
通过上图可以看到,该模块将输入数据在「通道维度」上解耦,我们称之为 extreme version of inception module。这点与 depth教程之家提取码wise seperable convolution 很相似。
3.3 Extreme version of Inception与通信地址是写什么地址Depthwise S效率集eperable Convolution
这一操作与 Depthwise Seperable Convolution 十分相似,后者包含 Depthwise Convolution 和 Pointwise Convolution 两部分。
上图所示的基础模块与 Depthwise Seperable Convolution 有如下两点不同:
- ① Depthwise Seperable Convolution效率英文翻译先使用depthwise convolu教程的意思tion,再使用通信达 111 times 1 卷积进行融合;上图所示的基础模块先使用 111 times 1 卷积,再使用depthwise convolution。
- ② Depthwise Seperable Convolution 的 depthwise convolution 和 111 times 1 卷积之间没有激活函数;教程之家教学视频上图所示的基础模块的这两个操作之间有教程之家激活函数。
在 Xc通信行程卡下载appeption 中,作者直接使用了 Depthwise Seperable Convo级联反应lution 作为基础模块。
3.4 Xception网络结构通信地址是写什么地址
最后将这一基础模块叠加,并结合残差连接,就得到了Xcept效率集ion网络结构:
4.ShuffleNet
ShuffleNet 是由旷世科技提出的轻量化CNN网络,论文名称《ShuffleNet: An Extremely Efficient Convolut级联删除ional Neural Network for Mobile Devices》,目标是改造网络架构使其能应用在移动设备上。
4通信.1 设计动机
ShuffleNet的动机在于大量的 111 times 1 卷积会耗费很多计算资源,而 Group Conv 难以实现不同分组之间的信息交流;通信达ShuffleNet 的解决方式是:使用 Group Conv 降低参数量;使用Ch数据分析师证书annel Shuffle实现不同组之间的数据分析信息交流,进而对ResNet进行改进,可以看作ResNet的压缩版本。
4.2 Group Conv
我们再来看看Group Conv这个结构,它的基本思想是对输入层的不同特征图进行分组,再使用不同的卷积核对不同组的特征图进行卷积,数据分析师工作内容通过分组降低卷积的计算量。
而Depthwise Convolution可以视作效率英文翻译Group Conv的一种特殊情形。
假设输入通道为 CiC_i,输出通效率意识方面存在的问题道为 CoC_o,分组数目为 gg,Group Conv的操作如下:
- 将输入特征图沿着通道分为 gg 组,每一组的通道数目为 Ci/gC_i/g。
- 使级联删除用数据分析观念 gg 个不同的卷积核,每一个卷积核的滤波器数量为 Co/gC_o/g。
- 使用这 gg 个不同的卷积核,对 gg 组特征图分别进行卷积,得到 gg 组输出特征图,每一组的通道教程画画数为 Co/gC_o/g。
- 将这 gg组的输出特征图结合,得到最终的 CoC_o 通教程英文翻译道的输出特征图。
4.3 Channel Shuffle
Group Conv 的一个缺点在于不同组之间数据分析难以实现通信。一个可能的解决方式是使用 111 ti教程的意思mes 1 卷积进行通信,但是这样会引入很大的计算量。
文中提出的思路数据分析师资格证书是对 Group Conv 之后的特征图沿着通道维度进行重组,这样信息就可以在不同组之间流转,即 Channel Shuffle,如下图(c)所示数据分析师证书。
其实现过程如下:
- ① 输入特征图通道数目为 gngti数据分析师工作内容mes n
- ② 将特征图的通道维度re教程拼音shape为 (g,n)(g,n )
- ③ 转置为 (n,g)(n,g )
- ④ 平坦化成 gng times n 个通道
4.4 ShuffleNet基础模块
结合 Group Conv 和 Channel Shuffle,对Res数据分析Net的基础模块bottleneck(下图(a))进行改进,就得到了 ShuffleNet 的基础模块(下图(b)和(级联菜单c))
4.5 Shuffl教程画画eNet缺点
- Channel Shuffle 操作较为耗时,导致 S级联菜单什么意思huffleNet 的实际运行速度没有那么理想。
- Channel Shuffle 的规则是人为制定的,更接近于人工设计特征。
5.ShuffleNet V2
在 ShuffleNet 之后又有改进的版本 ShuffleNet V2,改进了上述提到的 ShuffleNet 缺点,减少其耗时。
5.1 设计动机
ShuffleNet的轻量级网效率英文翻译络设计,FLOPs 减少了很多,但实际的时间消耗并不短。原因是网络训练或者推理的通信人家园过程中,FLOPs 仅仅是其耗时级联菜单的一部分,其他操作(如内存读写、外部数据 IO 等)也会占用时间。
ShuffleNet V2 的作者分析了几种网络结构在 GPU/ARM 这教程魔方两种平台上的计算性能指标,并提数据分析师证书出了4条移动端卷积网络效率意识方面存在的问题设计的准则,根据这些准则改进 ShuffleNet 得到了 ShuffleNet V2。
我们先来看看这4条移动端网络设计教程之家提取码准则:
5.2 高效CNN设计的几个准则
使用的指标是内存访问时间(Memory Access Co通信行程卡下载appst, MAC)。用理论和实验说明了以下几条准则。
1) 输入输出通道数目相同时,卷积层所需的MAC最小。
理论级联删除推导:假设 111 times 1 卷积的输入通道数目为 c1c_1,输出通道数级联效应目为 c2c_2,特征图大小为 hwhtimes w,则这样一个 111 times 1 卷积的 FLOPs 为:
所需的存储空间如下,其中 hwc1hwc_1 表示输入特征图所需空间, hwc2hwc_2 表示输出特征图所需空间, c1c2c_1c_2 表示卷积核所需教程视频怎么制作方法空间:级联删除
根据均值不等式可得:
等式成立的条件是 c1=c2c_1 = c_2,即在给定 FLOP级联菜单s,输入特征通道数和输出特征通道数相等时,MAC 达到取值的下界。 实验证明数据分析师资格证书:c1c_1和c2c_2越接近、速度越快,如下表。
2) 过多的group操作会增大MAC
理论推导:带通信达 group 的 111 t数据分析观念imes 1 卷积的FLOPs如下,其中 gg 表效率符号示分组数目:
MAC 如下:
因此:
可见,在一定 FLOP教程魔方s 的情况下,分组数目 gg 越大,MA通信地址是写什么地址C 也越大。
实验证明:在FLOPs基本不变的操作下,group越大,速度越慢,如下图所示。
3) 模型的碎片化程度越低,模型速度越快
实验证明:fragment 表示碎片化程度的量化,serious 表示串行,即几个卷积层的叠加,parallel 表示并行,即类似于 Inception 的设计。可见在 FLOPs 不变的情况下,分支数量越多,网络的实际耗时越大。
4) element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多。
element-wise 操作虽然基本不增加 FLOPs,但是在 Shu级联反应名词解释ffleNet V1 和 MobileNet V2 中,其耗时是十分可观的,如下图:
实验证明:基于 ResNet 的 bottleneck 进行了实验,short-cut 是一种 element-wise 操作。实验证明short-cut 操作会带来耗时的效率的拼音增加。
5.3 ShuffleNe效率的英文t V2基础模块
基于前面提教程画画到的4条准则,对 ShuffleNet 的基础模块(下图(a)(b))进行修改,得到 ShuffleNet V2 的基础模块(下图中(c)(d)):
图中 (c) 和 (a) 相比,有如下不同之处:
- ① 模块的开始处增加了一个 Channel Split 操作,将输入特征图沿着通道分为 c′c’ 和 c−c′c-c’ 两部分,文中 c′=c/2c’=c/2 ,对应于「准则1」。
- ② 取消了 111 times 1 卷积中的 Group 操作,对应于「准则2」。
- ③ Channel Shuffle 移到了 Concat 后面,对应效率公式「准则3」。(因为 111 times 1 卷积没有 Group 操作,没有必要在后面接 Channel Shuffle)
- ④ element-wise add 替换成 conc效率的英文at,对应「准则4」。
(b)、(d) 之间的区别也类似,另外(效率公式d) 的两个分支都进行了降采样,且最通信达初没有 Channel Split 操作,因此 Concat 之后的通道数目翻倍。
5.4 ShuffleNet V2整体结构
上述 ShuffleNet V2 基础模块级联数据分析师高薪骗局,配合卷积、池化等衔接,就得到了如下图的 Shu通信地址ffleNet V2 结构:
6.MobileNet
另外一个非常有名的轻量化移动端网教程的意思络是 MobileNet,它是专用于移动和嵌入式视觉应用的卷积神经网络,是基于一个流线型的架构,使用深度可分离的卷积来构建轻量级的深层神经网络。 MobileNet 凭借其优秀的性能,数据分析师工作内容广泛应用于各种场景中,包括物体检测、细粒度分类、人脸属性和大规模地理定位。
M教程魔方obileNet有 V1 到 V3 不同的版本,也逐步做了一些优化和效果提升,下面我们来分别看看它的细节。
6.1 M教程英文翻译obileNet核心思想
MobileNet V1 的核心是将卷积拆分成 Depthwise效率英文翻译 Conv 和 Pointwise Conv 两部分,我们来对比一下普通网络和MobileNet的基级联删除础模块
- 普通网络(以VGG为例) :333 times 3 Conv B级联删除N ReLU
- Mobilenet基础模块:333 times 3 Depthw级联交换机ise Conv BN教程画画 ReLU 和 111times1 Pointwise Conv BN ReLU
6.2 MobileNet缺点
- ① ReLU激活函通信数用在低维特征图上,会破坏特教程之家教学视频征。
- ② ReLU输出为0时导致特征退化。用残差连接可以缓解这一问题。
7.Mo教程魔方bileNet V2
MobileNet V2数据分析软件 针对 MobileNet 的上述2个问题,引入了 Inverted Res教程id数据分析方法ual 和 Linear Bottleneck数据分析观念对其进行改造,网教程络为全卷积,使用 RELU6(最高输出为6)激活函数。下面我们展开介绍一下核心结构:
7.1 Inve效率高发票查验rted Residual
我们对比一下普通残差模块和Inverted Residual的差别
1) 普通残差模块
先使用 111 times 1 卷积降低通道数量,然后使用 333 times 3 卷积提级联是串联还是并联取特征,之后使用 111 times 1 卷积提升通道数量,最后加上残差连接。整个过程是「压缩-卷积-扩张」。
2) Inverted Residu数据分析师高薪骗局al
先使用 111 times 1 卷积提升通道数量,然后使用 333 times 3 卷积提取特征,之后使用 111 times 1 卷积降低通道数量,最后加上残差连接。整个过程是「扩张-卷积-压缩」。
对比两个结构块如下图所示:
7.2 Linear B效率是什么意思ottleneck
相比于 MobileNet 的基础教程英文翻译模块,Mo数据分析培训bileNet V2 在 Depthwi级联菜单se Convolution 的前面加了一个 111 times 1 卷积,使用 ReLU6 代通信替 ReLU,且去掉了第二个 111 times 1 卷积的激活函数(即使用线性的激活函数),防止 ReLU 对特征的破坏。
7.3 MobileNet V2基础模块
使用上述的方法级联反应对 Mo教程bileNet 的基础模块进行改进,得到如下所示的 MobileNet V2 基础模块:
8.MobileNet V3
在 MobileNet V2 的基础上,又提出了Mob效率的英文ileNet V3,它的优化之处包括:引入了 SE、尾部结构改进、通道数目调整、h-swish 激活函数应用,NAS 网络结构搜索等。我们来逐教程的意思个看一下:
8.1 SE结构
MobileNet V3 在 bottleneck 中引入了 S级联E 结构,放在 Depthwise Convolution 之后,并且将 Expansion Layer 的通道数目变为原来的 1/41/4 ,在提升精度的同时基本不增加时间消耗。
8.2 尾部结构改进
MobileNet V3对尾部结构做级联反应名词解释了2处修改,从下图中「上方结构」修改为「下方结构」:
- 将 111 times 1 卷积移动到 avg pooling 后面,降低计算量。
- 去掉了尾部结构中「扩张-卷积-压缩」中的 333 times 3 卷积以及其后面的 111 time级联反应s 1 卷积,进一步减少计算量,精度没有损失。
8.3 通道数目调整
相比于 MobileNet V2,MobileNet V3 对头部卷积通道数目进行了进一步的降低。
8.4 h-swish激活函数
MobileNet V3 采用了 h−swishmathbf{h-s数据分析方法wish} 激活函数,对应的 swishmathbf{swish} 和 h−swishmathbf{h-swish} 激活函数计级联删除算公式如下:
8.5 NAS网络结构搜索
MobileNet V3 先用 NAS 搜索各个模块,得到大致的网络结构,相当于整体结构搜索;然后用NASAdapt得到每个卷积层的通道数目,相当于局部搜索。
9.参考资料
- 卷积神经网络的复杂度分析
- 纵览轻量化卷积神经网络:SqueezeNet、MobileNet、Sh教程英语uffleNet、Xception
- 轻教程魔方量级CNN网络之MobileNet V2
- ShuffleNet V2:轻量级CNN网络中的桂冠
- Roofline Model与深度学习模型的性能分析
10.要点总结
- 神经网络参数与复杂度计算
- 轻量化网络
- S通信工程专业queezeNet
- Xception
- ShuffleNet V1~V2
- MobileNet V1~V3
ShowMeAI 斯坦福 CS231n 全套解读
- 深度学习与计算机视觉教程(1) | CV引言与基础 @CS231n
- 深度学习与计算机视觉教程(2) | 图像分类与机器学习基础 @CS231n
- 深度学习与计算机视觉教程(3) | 损失函数与最优化 @CS23教程的意思1n
- 深度学习与计算机视觉教程(4) | 神经网络与反向传播 @CS231n
- 深度学习与计算机视觉教程(5) | 卷积神经网络 @CS231n
- 深度学习与计算机视觉教程(6) | 神经网络训练技巧 (上) @CS231n
- 深度学习与计算机视觉教程(7) | 神经网络训练技巧 (下) @CS231n
- 深度学习与计算机视觉教程(8) | 常见深度学习框架介绍 @CS2通信行程卡31n
- 深度学习与级联反应计算机级联删除视觉教程(9) | 典型CNN架构 (Alexnet, VGG, Google通信工程专业net, Restnet等) @CS231n
- 深度学习与计算机视觉教程(10) | 轻量化教程魔方CNN架构 (SqueezeNet, ShuffleNet, MobileNet等) @CS231n
- 深度学习与计算机视数据分析培训觉教程(11) | 循环神经网络及视觉应用 @CS231n
- 深度学习与计算机视觉教程(12) | 目标检测 (两阶段, R-CNN系效率英文翻译列) @CS231n
- 深度学习与计算机视觉教程(13) | 目标检测 (SSD, YOLO系列) @CS231n
- 深度学习与计算机视觉教程(14) | 图像分割 (FCN, SegNet,通信达 U-Net, PSPNet, DeepLab, RefineNet) @CS231n
- 深度学习与计算机视觉教程(15) | 视觉模型可通信视化与可解释性 @CS231n
- 深度学习与计算机视觉教程(16) | 生成模型 (PixelRNN, PixelCNN, VAE, GAN) @CS231n
- 深度数据分析学习与计算机视觉教程(17) | 深度强化级联删除学习 (马尔可夫决策过程, Q-Learning, DQN) @C教程之家教学视频S231n
- 深度学习与计算机视觉教程(18) | 深度强化学习 (梯度策略, Actor-Critic, DDPG, A3C) @CS231n
ShowMeAI 系列教程推荐
- 大厂技术实现:推荐与效率公式广告计算解决方案
- 大厂技术实现:计算机视觉解决方案
- 大厂技术实现:自然语言处理行业解级联决方案
- 图解Python编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解AI数学基础:从入门到精通系列教程
- 图解大数据技术:从入通信地址门到精通系列教程
- 图解机器学习算法:从级联删除入门到精通教程视频怎么制作方法系列教程
- 机器学习实战:手把手教你玩转机器学习系列
- 深度学习教程:吴恩达专项课程 全套笔记解读
- 自然语言处理教程:斯坦福CS224n课程 课程带学与全套笔记解读
- 深度学习效率是什么意思与计算机视觉教程:斯坦福数据分析培训CS231n 全套笔记解读