• 【DyNet】2020-arxiv-DyNet Dynamic Convolution for Accelerating Convolutional Neural Networks-论文阅读


    DyNet

    2020-arxiv-DyNet Dynamic Convolution for Accelerating Convolutional Neural Networks

    来源: ChenBong 博客园

    • Institute:huawei
    • Author:Yikang Zhang, Qiang Wang
    • GitHub:/
    • Citation: 4

    Introduction

    和Google 的 CondConv,Microsoft 的 Dynamic Convolution 类似的工作,做的都是input-dependent的动态卷积核权重生成。

    Google: 19 NIPS CondConv

    image-20210202172117329

    卷积层: (W_i: C_{out} × C_{in} × k × k)(hat W: C_{out} × C_{in} × k × k)

    卷积层维度变化: (n × C_{out} × C_{in} × k × k ==> C_{out} × C_{in} × k × k)

    变换方式:加权求和

    加权系数: (α=r(x)=sigmoid(fc(avg pool(x))))

    Microsoft: 20 CVPR Dynamic Convolution

    image-20210303160106507

    卷积层: (conv_i: C_{out} × C_{in} × k × k)(hat {conv}: C_{out} × C_{in} × k × k)

    卷积层维度变化: (n × C_{out} × C_{in} × k × k ==> C_{out} × C_{in} × k × k)

    变换方式:加权求和

    加权系数: (pi=softmax(fc(relu(fc(avgpool(x))))))

    Huawei: 20 DyNet

    image-20210420164002222

    卷积层维度变化:: ((g_t × C_{out}) × C_{in} × k × k ==> (C_{out}) × C_{in} × k × k)

    单个卷积核维度变化:: ((g_t) × C_{in} × k × k ==> (1) × C_{in} × k × k)

    变换方式:加权求和

    加权系数: (eta_t=sigmoid(fc(avg pool(x))))

    区别:

    • DyNet 从多套权重生成1套权重时,进行了分组;降低权重加权求和时的计算量( (widetilde{w}_{t}=sum_{i=1}^{g_{t}} eta_{t}^{i} cdot w_{t}^{i}) ,类似分组卷积降低计算量的原理)
    • CondConv 和 Dynamic Convolution 都是一个layer计算一次加权系数,DyNet是一个block计算一次加权系数;降低计算加权系数时的 计算量(fc) 和 参数量(fc)
    image-20210420170546673

    Motivation

    image-20210420165312696
    • 经典网络中卷积核之间存在很高的相关性,即卷积核存在冗余的现象
    • 剪枝无法完全去除这些冗余性,是由于网络需要学习噪声无关的特征(例如对于人脸识别来说,光照,背景等就是噪声特征),需要多个相似的卷积核来协同提取这些噪声无关的特征 &&,因此fine-tune后冗余性会重新回来,称为内在的/固有的冗余性
    • 发现通过对固定的卷积核,基于输入做线性组合,可以无需多个相似的卷积核协同,就可以提取噪声无关的特征 &&

    Contribution

    Method

    image-20210420164002222

    Coefficient prediction module

    image-20210420170201318

    Training algorithm

    image-20210420170841194

    按照权重生成的原理,应该对每个样本做权重生成再做卷积,但这样无法做batch_size>1的训练,因为每个样本所对应的卷积权重都不同;

    实际上训练过程中是一个batch先做卷积,再对输出做加权求和。

    Experiments

    ImageNet

    image-20210420171131368

    Dy-MobileNetV3 和 MobileNetV3 的实际推理宽度相同

    Dy-mobile 的实际推理宽度 < MobileNetV3 的实际推理宽度

    image-20210420170905773

    Analysis

    相关性

    image-20210420165312696 image-20210420171302750

    DyNet的输出相关性降低

    分辨率与加速比

    image-20210420171351245

    作者认为,由于生成权重的过程(计算量新增的部分avgpool,fc)与输入分辨率是无关的,因此分辨率越大,加速效果越好;

    实际上忽略生成权重的部分,Dy-mobile是一个比MobileNetV2更窄的网络,事实上是窄网络和宽网络在不同分辨率下加速比的对比(多出来的计算量 avgpool,fc 的占比在大分辨率推理中占比减小,使得加速比上升)

    Ablation Study

    固定网络与动态网络

    image-20210420171535837

    Fix-mobile 是和 Dy-mobile(实际推理)宽度相同的固定网络,想说明相同实际推理宽度下,动态网络比静态网络性能好;但实际上Dy-mobile的参数量是Fix-mobile的g=6倍

    gruop size(g)

    image-20210420171638848
    • g=6效果好
    • g=1相对于做attention,因此g=1也是有提点的效果的,g=6比g=1还有提点,说明效果不完全来自于attention

    Conclusion

    Summary

    To Read

    Reference

    2019-NIPS-CondConv: Conditionally Parameterized Convolutions for Efficient Inference: https://www.cnblogs.com/chenbong/p/14392503.html

    2020-CVPR-Dynamic Convolution Attention over Convolution Kernels: https://www.cnblogs.com/chenbong/p/14476760.html

    https://zhuanlan.zhihu.com/p/139933466

    https://blog.csdn.net/kingsleyluoxin/article/details/105702418

    https://www.cnblogs.com/xiximayou/p/13192378.html

  • 相关阅读:
    (十六)字段表集合
    (十五)类索引
    (十四)访问标志 Access_flags
    (一)单例模式
    (二十三)IDEA 构建一个springboot工程,以及可能遇到的问题
    (十三)class文件结构:常量池(转)
    Hive优化
    标签整理
    一些学习资料
    jstree树形菜单
  • 原文地址:https://www.cnblogs.com/chenbong/p/14682562.html
Copyright © 2020-2023  润新知