论文笔记: 《MicroNet: Towards Image Recognition with Extremely Low FLOPs》

这篇论文是2020年放在Arxiv上的《MicroNet: Towards Image Recognition with Extremely Low FLOPs》,第一作者是UCSD的Yunsheng Li,其它作者是Mentor是微软AI&R Ambience Intelligence Zicheng Liu team,这篇论文和Dynamic ReLU一脉相称。

这篇论文提出了在保持通道数的情况下,如何减少连接数和减少层数来减少网络计算量,同时保持精度。首先提出Micro-Factorized的卷积将Depth-wise和point-wise的卷积拆分成多个卷积;其次提出了Dynamic Shift-Max这种动态的activation。

方法

principle

  • 在避免减少卷积通道数的情况下减少node的连接数
  • 减少网络的层数,同时提升activation的非线性性能

Micro-Factorized Convolution

  • 将Point-wise的卷积分成多个卷积,W=PφQ
    • 原本是C->C的卷积通道数
    • P压缩通道数到C/R,采用G个group的卷积
    • φ是一个Shuffle层
    • Q是一个提升通道到C,采用G个group的卷积
    • 为了保证所有的output channel和input channel相连接,推算出G=sqrt(C/R)
  • 将Depth-wise的卷积搞成kx1和1xk的卷积

Dynamic Shift-Max

  • 将J个Group的activation做weighted sum,weight使用SE block得到的attention
  • 使用K套不同的SE block的Weight,求最大值
  • $y_i=\max_{k\le K}{ \sum_{j} a^k(x) x_j }$
    • $x_j$是第j个group里面的activation

网络

  • Micro-Block-A
    • Micro-Factorized depthwise + pointwise conv(grouped)
    • 在前面的层效果好,因为channel数不多,所以depthwise卷积开销不大
  • Micro-BLock-B
    • Micro-Factorized depthwise(提升channel数量) + Micro-Facgtorized pointwise conv
  • C
    • Micro-Factorized depthwise + pointwise conv

实验

  • M0
    • AABCCC
    • 6M MAdds
    • 53top-1 ImageNet
  • Pose Estimation和Segmentation的实验也证明比MobileNet好很多

总结

  • 这篇论文对于连接性和通道数的分析很有意义,通过拆分连接达到减少计算量的目的。但实际硬件的效率可能和访问关系较大,再减少连接数可能不是特别有优势了。对于非线性的问题,我认为证据不足,需要继续研究。

论文笔记 《Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution》

这篇文章是发表在ICCV2019的《Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution》,作者是Facebook AI的Yunpeng Chen,博士毕业于新加坡国立。

这篇文章从频域的角度分析了图像中高频和低频信息的作用,通过改造卷积,让卷积显式地分别处理高频和低频的特征,从而提升准确率,降低计算量。

方法

图像中高频和低频信息的作用

  • 高频:信息变化快,提取的是细节的信息
  • 低频:信息变化慢,提取的是整体的信息

Octave表示

  • 使用低分辨率图像表示低频特征
  • 使用高分辨率图像表示高频特征

Octave Conv

  • 卷积分别处理低频和高频特征
  • 信息交互
    • 低频特征Conv之后升维度
    • 高频特征降维度之后Conv
    • 和普通处理的信息加起来

实验

  • ImageNet
    • 随着一层里面高低频率信息的比例变化,比例适中acc最高,整体呈现小山包形状
    • 相比普通的resnet,最高提升了大约2个点
  • 频率分析
    • 直观从频域图上看
    • 低分辨率组不包括高频信息,反之亦然
    • 证实了低频组提取低频信息的假设

总结

显式地把一些Heuristic的东西用网络结构的方式表现出来,值得学习。

论文笔记 《Universally Slimmable Networks and Improved Training Techniques》

这篇文章是发表在ICCV2019的《Universally Slimmable Networks and Improved Training Techniques》,作者是UIUC的 Jiahui Yu。属于Thomas Huang(黄煦涛)组。 Jiahui Yu是中科大少年班本科毕业,2020年UIUC博士毕业现在在Google Brain做Research Scientist。

这篇文章在之前Slimmable Networks的基础上进行了改进,使得它能以任意的宽度运行。文章提出了三明治规则和就地知识蒸馏来提升训练速度的和测试的准确率。

方法

任意的width实现

  • sample from 0.25x - 1.0x

BN训练

  • 不要switchable BN
  • 训练使用正常的BN,但是在一个固定大小的网络测试之前使用1000张图片重新计算BN的mean和var

三明治规则

  • 发现性能被最小的网络和最大的网络bound住了
  • 优化最小的网络和最大的网络能够隐式的优化所有的width
  • 使用最小的和最大的网络加上sample中间大小的几个网络进行前向和反向传播

就地知识蒸馏

  • 使用当前的最大网络的输出作为其他网络的知识蒸馏目标

实验

  • ImageNet MobileNetv1v2
    • 相比于独立训练和switchable的训练,平均准确率提升了
    • 在max和min上面表现尤为突出
  • Ablation 三明治训练
    • 效果很好 max+random的训练没有作用,但是min+random的训练非常好
  • Sample的越多越好,但2个sample的width就够好了
  • width的lower bound有影响

总结

小改进,推翻了之前switchable的方法。三明治定理很有意思,可以继续研究。max和min的这个bound对interval的影响也可以进一步探究,尤其是可解释性的问题。

论文笔记 《Slimmable Neural Networks》

这篇文章是发表在ICLR2019的《Slimmable Neural Networks》,作者是UIUC的 Jiahui Yu。属于Thomas Huang(黄煦涛)组,Thomas Huang是华人计算机视觉宗师之一,已于2020年4月25日去世。

这篇文章提出了使用一种能以不同网络宽度来前向预测的网络训练方法,可以适用于不同的准确率-计算量的tradeoff场景。作者认为BN层的统计差异是不同width的差异,因此提出了一种可切换BN。

方法

Naive的训练方法

  • 直接训练一个shared weight的网络,存在inconsistency的问题
  • 使用incremental的方法训练,没有联合适应性,准确率低

Switchable BN

  • 每个BN层对于不同的width使用不同的参数

训练

  • 每个iteration,在不同的width前向反向,加和gradient做update

实验

  • MobileNet ShuffleNet ResNet-50 4个width ImageNet
    • 和Individual比起来,基本不掉点,MobileNet V1 还增点
  • Faster Detection, Mask detection
    • AP全都增长
  • Top-activated Images Visualization
    • 相同的channel在不同的width中扮演相同的角色
  • BN层的值
    • 浅层几乎一样,深层不一样
    • 不同的features可能有不同的语义特征(在高层)

总结

BN层的问题在这里详细讨论了,后悔之前做ENAS4D的时候没有看这篇论文。
不同的features在不同width网络中扮演的角色的讨论很有意思,可以更详细的分析。

论文笔记 《Dynamic Convolution: Attention over Convolution Kernels》

这篇是发表在ECCV2020的文章《Dynamic Convolution: Attention over Convolution Kernels》,作者是微软研究院的Yinpeng Chen、Zicheng Liu等人。

文章为了增加网络的表示复杂性,针对不同的输入样本动态使用不同的卷积核,虽然整个网络计算量不会发生变化,但是网络的复杂性得到提升。

方法

Dynamic Convolution

  • Attention:使用和SE block一样的Global Avg Pool+FC+Softmax的方法
  • Kernel Aggregation:卷积的weight是由多个weight加权得到

Insight

  • Attention的加和为1
  • 在早期训练的epochs里面,用的是接近均值的Attention
  • 这两点是和以前的方法最大的不同

实验

  • ImageNet
    • Each layer has K = 4 convolution kernels
    • DY-ResNet-18
      • 42.7M 1.85G 72.7(提升2.3) (origin 11.1M 1.81G 70.4)
    • DY-MobileNetV2 x1.0
      • 11M Param 312.9M MAC 75.2% top1 (origin 300M 72%)
    • DY-MobileNetV3-Small
      • 4.8M 68.5M 70.3(2.9) (origin 2.9M 66.0M 67.4)
  • COCO 2017 single-person keypoint detection
    • Backbone和head都dynamic AP提到62.8(3.6)
    • 仅Backbone dynamic AP 62.3
    • 仅Head dynamic AP 60.3(1.1)

总结

Kernel级别的Dynamic,不一定要减计算量,增加性能也是另一个方向。

论文笔记 HyperNetworks

这篇论文是发表在ICLR2017的论文《HyperNetworks》,论文的作者是Google Brain的Quoc V.Le组,第一作者是David Ha。

该文章提出了使用hypernetworks来动态生成一个网络的Weight的方法,减少了网络的参数量。

方法

Static Hypernetwork

  • CNN用
  • 使用$kernel= <W_{out}, a> +B_{out}$
    • $a=W_i z+B_i$
    • $z$是layer embedding $N_z$维的vector
    • $W_{out}, B_{out}, W_i, B_i$是共享的科学系参数
  • 多个kernel组合成一个大kernel
    • 减少参数量
    • 减少

Dynamic HyperNetworks

  • RNN用,每个timestep根据输入改变weight,hypernet也是个RNN
  • 使用$h_t=\sigma(<W_hz,z_h>h_{t-1}+b(z_b))$
    • $z_h=W_{ph} p_{t-1}+b_{ph}$
  • 优化方法,用线性变换替代矩阵乘
    • $W=dW$

实验

  • CIFAR-10 WRN
    • 参数量0.5M->0.1M,error rate 6.73%->8.02%
  • PTB 1LSTM
    • 参数量差不多,validate 1.30->1.28

总结

静态共享参数的本质类似于一种decomposition,动态的是本质是非线性变换的顺序pattern。可能从更high level的角度来看这个问题?

论文笔记 《Resolution Adaptive Networks for Efficient Inference》

这篇是发表在CVPR2020的论文《Resolution Adaptive Networks for Efficient Inference》,清华黄高老师组的最新Adaptive的成果,第一作者是Le Yang, Yizeng Han和Xi Chen。

这篇论文对MSDNet进行了改进,提出了RANet,先以低分辨率feature maps输入一个神经网络进行计算,再使用高分辨率feature maps输入一个神经网络进行计算。低分辨率图像就足够分类简单样本了,然后再使用高分辨率的feature maps处理复杂样本。

方法

网络结构设计

  • 用steam的几个conv生成不同resolution的初始特征
    • 第一个特征通过Regular-Conv层产生,后面的特征通过Strided-Conv层产生
  • 最小的resolution特征上进行分类
  • 更高resolution使用Fusion Blocks来融合自Sub-network的特征
    • 一种为图3b的保持特征图大小
    • 另一种为图3c的降低特征图大小
    • 上采样使用Up-Conv(Regular-Conv+Bilinear interpolation)
  • TODO: 具体组织形式看代码

训练

  • loss function采用weighted cumulative loss,文章里用相同weight
  • train集合分出一个validation集合来进行threshold的搜索,但训练还是在整个train集合上训练的

结果

  • Anytime Prediction
    • 任意一个sample都小于computation budget
    • RANets好于ResNet ensemble,是因为它是专门为simple samples设计的
  • Batch Budget Prediction
    • 好于MSDNet

可视化

  • 高低分辨率可能的原因
    • 同一图片多物体
    • 小物体
    • 没有明显特征
      • 从low-frequency和high-frequency的角度解释

总结

这篇论文改进了MSDNet,有更高的性能,并且讨论了可能的原因。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×