1、MobileNets
Efficient Convolutional Neural Networks for Mobile Vision Applications
基于移动视觉应用的高效卷积神经网络
v1
创新&作用:
- 深度可分离卷积:代替常规卷积,减少参数量和运算量
- 宽度超参数:改变输入输出通道数
- 分辨率超参数:改变输入特征的尺寸
v2:
- 线性瓶颈结构:减少参数量,运算量
- 逆残差结构:加深网络层数,避免梯度消失问题,减少参数量
- 平均池化与逐点卷积:去掉全连接层,减少参数量
v3:
- h-swish激活函数:保持精度情况下加快速度
- 引入SENet结构:建模通道间的关系,提升模型特征表达能力
- 5*5卷积:用5*5卷积替代3*3卷积,准确率更高
画图:
- ppt
- PlotNeuralNet(latext)
- ConvNetDraw
- Origin Lab 数据分析工具多 热点图 折线图等
模型评估:
交叉熵损失=softmax+log+NLL
.max()
返回Tensor中所有元素的最大值及索引
.view_as()转换为相同格式
.eq()统计相等个数
2、ShuffleNet
An Extremely Efficient Convolutional Neural Network for Mobile Devices
适用于移动设备的极其高效的卷积神经网络
CVPR2018 Megvii Inc (Face++)
摘要核心
- 引入了一种名为shuffleNet的计算效率高的CNN架构,该架构专为具有非常有限的计算能力的移动设备而设计。
- 新架构利用两个新的操作,逐点组卷积和通道洗牌,在保持准确性的同时大大降低了计算成本。
- 在ImageNet分类和MS COCO对象检测的实验证明了ShuffleNet优于其他结构的性能,例如:在40MFLOP的计算预算下,在ImageNet分类任务上比最近的MobileNet更低的Top1错误(绝对7.8%)。在基于ARM的移动设备上,ShuffleNet实现了比AlexNet大约13倍的实际加速,同时保持了相当的精度。
论文结构
Abstract
针对移动计算,在有限算力下,构建shuffleNet,实现精度保持和运算加速。
1、introdution
通过分组点卷积和通道重排,探索一种专为移动端设计的高效基础架构。
2、Related Work
- Efficient Model Designs轻量卷积网络发展
- Group Convolution分组卷积操作
- Channel Shuffle Operation首次将通道重排引入轻量级网络设计
- Model Acceleration当前模型加速方法
3、Approach
3.1 Channel Shuffle for Group Convolutions
3.2 ShuffleNet Unit
3.3 Network Architecture
分组点卷积与通道重排原理,以此构造shuffleNet基本结构但愿并搭建整体网络结构
4、Expriments
4.1 Ablation Study
4.1.1Pointwise Group Convolutions
4.1.2 Channel Shuffle vs. No Shuffle
4.2 Comparison with Pther Structure Units
4.3 Comparison with MobileNets and Other Frameworks
4.4 Generalization Ability
4.5 Actual Speedup Evaluation
消融实验验证两个创新的有效性,验证shuffleNet在分类,检测任务上的性能表现。
分组卷积(group convolution)+通道洗牌(channel shuffle)
分组卷积减少计算量:如果输入feature map 的尺寸为M*M,卷积核尺寸为N*N,假设输入4个通道,输出8个通道,如果不分组,计算量为M*M*4*8,如果分为两组,每组取2个输入通道,4个输出通道,那么计算量为(M*M*N*N*2*4)*2=M*M*N*N*4*4,相比而言,计算量减少了一半。
如果分组更多,那么计算量减少更多。论文中推荐分为8组。
3、EffNet
spatial separate convolutions
随着卷积神经网络在终端产品中的应用不断增加,模型需要在嵌入式移动硬件上高效运行。因此,轻量级的模型已经成为热门的研究课题,包括二进制网络到定制的卷积层的各种方法。
本文提出了一种新颖的卷积模块,它可以显著降低计算负担,同时超越当前最先进的科技水平。我们的模型,名为EffNet,针对一开始已经很轻量级的模型进行了进一步优化,旨在解决现有模型(如MobileNet和ShuffleNet)中的问题。
- spatial separate convolutions:将卷积核拆分为两个更小的卷积核,分别和两个小的卷积核做卷积。最常用的情况是将3*3的卷积核拆分为3*1和1*3的卷积核。
- Separable Pooling池化分解:
第一次卷积在一个方向上面池化
第二次卷积在另一个方向上面池化
EffNet计算量分析:
- 普通卷积:以3*3卷积核为例,输出一个通道,普通卷积开销为3*3*D*D*M,其中D为输入特征图像的长/宽,M为输入图像的通道数。
- EffNet卷积:
1、同样使用卷积分解,首先使用1*3的卷积核卷积,计算量为3*3*D*D*M。
2、然后使用3*1的卷积核,计算量为3*D*D*M。
3、总的计算量为(3+3)*D*D*M,计算量为原来的6/9。
EffNet的另一个优化是没有使用输入层的普通卷积层。
4、区别:
EffNet借鉴MobileNet的卷积分解(dw),没有借鉴ShuffleNet的分组卷积(gc)和通道洗牌(shuffle)。