zoukankan      html  css  js  c++  java
  • 【WeightNet】2020-ECCV-WeightNet: Revisiting the Design Space of Weight Networks-论文阅读

    WeightNet

    2020-ECCV-WeightNet: Revisiting the Design Space of Weight Networks

    来源:ChenBong 博客园


    Prepare

    CondConv

    条件参数生成

    image-20210202171609075 image-20210202172117329

    image-20210202172443315

    (alpha) 如何得到?

    • (α=r(x)=sigmoid(fc(avg pool(x))))

    SENet

    channel attention 的模块,对卷积层的不同输出通道学习不同的权重 (α)

    image-20210209161119063

    具体细节:GAP ==> FC+relu ==> FC+sigmoid

    image-20210209161146153

    Introduction

    卷积核的参数生成网络,对CondConv和SENet的重新思考,将两种看起来不同的方法统一到一个通用的框架下。

    image-20210209173706485

    Motivation

    Contribution

    Method

    Group FC

    image-20210209172101428

    统一两种方法

    input feature map: (X ∈ mathbb{R}^{C×h×w})

    output feature map: (Y ∈ mathbb{R}^{C×h'×w'})

    real kernel: (W' ∈ mathbb{R}^{C×C×k^h×k^w})

    ((h,w), (h', w'), (k^h, k^w)) denote the input, output, and kernel size

    第一步:SENet 和 CondConv 的第一步都是使用卷积层的输入x,学习一个attention vector (α)

    • CondConv
      • (oldsymbol{alpha}=sigmaleft(mathbf{W}_{f c 1} imes frac{1}{h w} sum_{i in h, j in w} mathbf{X}_{c, i, j} ight))
      • 其中,(W_{fc1} ∈R^{m×c}, X_c∈R^{c×1}) ,所以 (alpha∈R^{m×1}),m为 expert 的数量
    • SENet
      • (oldsymbol{alpha}=sigmaleft(mathbf{W}_{f c_{2}} imes deltaleft(mathbf{W}_{f c 1} imes frac{1}{h w} sum_{i in h, j in w} mathbf{X}_{c, i, j} ight) ight))
      • 其中 (mathbf{W}_{f c 1} in mathbb{R}^{C / r imes C}) (mathbf{W}_{f c 2} in mathbb{R}^{C imes C / r})(mathbf{W}_{f c 2} in mathbb{R}^{C imes C / r})

    第二步:

    • CondConv
      • (mathbf{W}^{prime}=alpha_{1} cdot mathbf{W}_{1}+alpha_{2} cdot mathbf{W}_{2}+ldots+alpha_{m} cdot mathbf{W}_{m})
      • 可以改写为: (egin{aligned} mathbf{W}^{prime} &=mathbf{W}^{T} imes oldsymbol{alpha} , ext { where } mathbf{W} =left[mathbf{W}_{1} mathbf{W}_{2} ldots mathbf{W}_{m} ight] end{aligned})
      • 其中 (mathbf{W} in mathbb{R}^{m imes C C k_{h} k_{w}}) , $alpha in mathbb{R}^{m imes 1} $ ,所以 (mathbf{W}' in mathbb{R}^{C C k_{h} k_{w}})
      • 可以看成一个全连接层,输入是 (alpha) ,输出新的卷积层权重
      • 左边的矩阵为一个稠密矩阵,gruop=1
    • SENet
      • (egin{aligned} mathbf{Y}_{c} &=left(mathbf{W}_{c}^{prime} * mathbf{X} ight) cdot oldsymbol{alpha}_{c} \ &=left(mathbf{W}_{c}^{prime} cdot oldsymbol{alpha}_{c} ight) * mathbf{X} end{aligned})
      • (mathbf{W}_c''=mathbf{W}_{c}^{prime} cdot oldsymbol{alpha}_{c})
      • 其中,(mathbf{W}_{c}' in mathbb{R}^{C imes C imes k_h imes k_w}, alpha in mathbb{R}^{C imes 1})
      • 可以看成一个分组全连接层,gruop=C, 输入是 (alpha) ,输出新的卷积层权重
      • 左边的矩阵为一个稀疏矩阵,gruop=C

    两种方法都可以看成是先使用 input 计算α,再利用α计算当前卷积核的实际推理权重

    image-20210209190101356

    (a) CondConv

    • input: m
    • output:(C ×C × k_h × k_w)
    • gruop:1

    (b) SENet

    • input: (C)
    • output:(C ×C × k_h × k_w)
    • gruop:C

    (c) WeightNet

    • input:(M × C)
    • output:(C ×C × k_h × k_w)
    • gruop:(G×C)

    引入M和G,2个超参数

    image-20210209190732176

    WeightNet

    第一步:计算attention vector α

    • (oldsymbol{alpha}=sigmaleft(mathbf{W}_{f c_{2}} imes mathbf{W}_{f c 1} imes frac{1}{h w} sum_{i in h, j in w} mathbf{X}_{c, i, j} ight))
    • 其中, (mathbf{W}_{f c 1} in mathbb{R}^{C / r imes C}, mathbf{W}_{f c 2} in mathbb{R}^{M C imes C / r}) ,r取16

    第二步:gruop fc layer,输入α,输出当前卷积层的实际推理权重

    • input:(M × C)
    • output:(C ×C × k_h × k_w)
    • gruop:(G×C)

    将实际卷积核的参数 实际上可以看成存储在第二步中分组全连接层的参数当中

    复杂度

    计算复杂度

    每一层的实际推理有2个步骤,1)权重生成,2)卷积计算

    1)权重生成:(O(MCCk_hk_w/G)) ,和2比起来很小,可以忽略

    2)卷积计算:(O(hwCCk_hk_w))

    参数复杂度

    1)权重生成:(O(M/G×C×C×k_h×k_w)) ,这里应该忽略了第一步中计算α的2个fc的参数

    2)卷积计算:0

    (M/G) 记为 (λ) (参数倍数)

    Experiments

    ImageNet

    image-20210209192241572

    G=2,λ=1/2/4/8

    在计算量不变的情况下,提升模型性能,模型越小提升效果越明显

    attention modules

    image-20210209193839886

    小网络上,CondConv性能更好

    Ablation

    λ

    image-20210209193935178

    λ越大,模型参数量越大

    G

    image-20210209194012217

    分组数G越大,性能越好

    kernel相似性

    image-20210209194547630

    本文的方法生成的卷积核的kernel之间的相似性更低

    Conclusion

    Summary

    To Read

    Reference

    SENet:

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

    https://www.cnblogs.com/bonelee/p/9030092.html

    WeightNet:

    https://mp.weixin.qq.com/s/uI1oEXqlqeyJ4NfyT0f40Q

    https://mp.weixin.qq.com/s/EhdrYfM25xGiVKWXhh8reQ

    https://www.cnblogs.com/gaopursuit/p/13497401.html

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

  • 相关阅读:
    es6 --- var const let
    HTTP -- 请求/响应 结构
    点击下载文件
    计算机当前时间
    js -- img 随着鼠标滚轮的变化变化
    vue --- 全局守卫
    vue -- 路由懒加载
    vuex -- 状态管理
    js对数组进行操作
    高性能网站建设
  • 原文地址:https://www.cnblogs.com/chenbong/p/14426621.html
Copyright © 2011-2022 走看看