zoukankan      html  css  js  c++  java
  • 【ECCV2020】WeightNet: Revisiting the Design Space of Weight Networks

    论文:https://arxiv.org/pdf/2007.11823.pdf

    代码:https://github.com/megvii-model/WeightNet

    这是香港中文大学和旷视科技的最新工作,提出了一个即插即用并可以有效涨点的网络WeightNet,作者也指出,该网络是受了最近关注度较高的 conditional network 的启发。

    Conditional network (或者叫做 Dynamic network)最近受到广泛关注。作者分析了 Conditional network 和 SENet 的联系,二者都包括两个步骤:第1步,得到一个 attention activation vector,然后 SENet 利用该向量给特征通道分配权重,CondConv 是给一系列卷积核分配权重 (a mixture of expert weights)。两者一直被视作完全不同的方法,作者提出一个问题:“Do they have any correlations ?”

    为此,作者设计了WeightNet,首先需要了解一个概念:Grouped FC。 普通的FC操作可以理解 为一个矩阵运算 (Y=WX) ,如下图(a)所示。在此基础上添加分组操作的话,就成为了图(b) 所示的 Grouped FC。在图中,FC运算分为了 (g) 组,每一组的输入为 (i/g) ,输出 为 (o/g) 。这是联系 WeightNet 和 CondConv 的关键操作。

    同时,作者给出一个定义:设输入特征为 (Xin R^{C imes H imes W}),输出特征为(Yin R^{C imes H imes W}),卷积权值可以看作 (W in R^{C imes C imes k imes k})。这样卷积可以看作 (Y_c=W_c * X)

    1. Rethinking CondConv

    CondConv 第一步是得到权重向量 (alpha) ,这个步骤可以这样描述:(alpha=sigma(W_{fc1} imes frac{1}{hw}X)) ,这里 (W_{fc1}in R^{m imes C})(alphain R^{m imes1})

    第二步,为卷积分配权重,可以理解为:(W'=W^T imes alpha),这里 (Win R^{m imes CCkk})

    2. Rethinking SENet

    SENet 第一步也是得到权重向量(alpha),可以这样描述:(alpha = sigma(W_{fc2} imes extrm{ReLU}(W_{fc1} imes frac{1}{hw}X))) 。两个全连接层中间有降维,reduction ratio 为 16。

    第二步,为 feature map 的各个通道分配权重,整个过程可以理解为:(Y_c=(W'_ccdot alpha_c) * X)。这可以理解为一个特殊的 Grouped FC,输入是 (C),输出是 (C imes C imes k imes k),只是分为 (C) 组。

    3. WeightNet

    作者提供了一个图来说明 WeghtNet, SENet 和 CondConv 的区别与联系,如下所示。三个操作都输出同样的 (C imes C imes k imes k)卷积矩阵,但是 图(a) 为只有一组(CondConv),图(b)为有C组(SENet),图(c)为自定义组数(WeightNet)

    作者在 WeightNet 中引入了参数 (M)(G)。 权重向量 (alpha) 为一个 (M imes C)维的向量。但是因为维度过高,使用了两个全连接层处理: (alpha = sigma(W_{fc2} imes W_{fc1} imes frac{1}{hw}X)),丙个全连接层,reduction ratio 为16。

    在第二步里,建立 Grouped FC,输入为 (M imes C),输出为 $ imes C imes C imes k imes k $,分组数量为 (G imes C)。总体的图示如下:

    需要注意的是,数据训练是要分batch的,因此,输入的X维度为((B, C, H , W)),对其进行reshape 得到 ((1, B imes C, H, W)),然后对生成的 (W) 进行reshape得到 ((B, C, C, k, k)),然后采用组卷积的形式进行计算。 CondConv 也采用了这样的处理方式。

    实验部分建议参考一下论文,这里不详细介绍了。

  • 相关阅读:
    Html 中的Body 标签
    ROS-1.1-基本概念
    机器人的自由度
    机器人学(MATLAB机器人工具箱10.x)——4.1-雅克比矩阵(1)
    机器人学(MATLAB机器人工具箱10.x)——3.6-画字母
    机器人学(MATLAB机器人工具箱10.x)——3.5-特殊问题
    机器人学——3.4-轨迹规划
    OpenCV 3-2.4-工具函数
    OpenCV 3-2.3-辅助类
    OpenCV 3-2.2-进一步了解 OpenCV 基本数据类型
  • 原文地址:https://www.cnblogs.com/gaopursuit/p/13497401.html
Copyright © 2011-2022 走看看