zoukankan      html  css  js  c++  java
  • 【Stochastic Downsampling】2018-CVPR-Stochastic Downsampling for Cost-Adjustable Inference and Improved Regularization in Convolutional Networks-论文阅读

    Stochastic Downsampling

    2018-CVPR-Stochastic Downsampling for Cost-Adjustable Inference and Improved Regularization in Convolutional Networks

    来源:ChenBong 博客园

    Introduction

    在预先定义的 downsample 结构的基础上,在额外插入一个 downsample,来实现推理时的计算开销自适应;

    训练方式:每个batch随机采样额外 downsample 插入的位置 p 和下采样比例 r:

    image-20210223143905418

    Cost-adjustable Inference

    计算量自适应:

    • “intermediate” classifiers+early exit:通过加入多个中间分类器+提前退出,来实现推理自适应(subnet)
    • parallel subnetworks or “paths”:同时训练不同规模的子网(subnet)
    • input scale:使用不同的输入分辨率(fullnet)

    样本自适应:

    • harder vs easier

    Motivation

    现有的推理自适应的工作大多都是使用全部权重的一部分子集(选择部分层/部分宽度,subnet)来实现推理量的自适应,没有充分利用全部网络参数

    现有的经典网络结构中,downsample(pool / strid conv)都是由网络结构本身预先定义好的,如果不限制 downsample 的位置,允许网络在任意位置进行 downsample,可以实现使用同一套网络参数来实现不同的推理开销,且充分利用了全部网络参数

    Contribution

    Method

    在预先定义的 downsample 基础上,在额外插入一个 downsample,插入的位置 (p∈mathbb Z),比例 (r in mathbb R) 在每个batch训练之前随机选择

    (P = {0, 1, 2, ...,N-1,N})

    (R = {0.5, 0.75})

    p 越小(插入位置越靠前),r 越小(下采样比例越高),那么网络的开销就节省的多,反之节省得少;

    如果 p=0,可以有2种含义,1. 相当于 input scale;2. 相当于不插入额外的 downsample 相当于cost=1.0;本文用的是第2种(感觉其实用第1种更合理,cost=1.0 只要r=1.0即可)

    细节

    downsample operation

    其中 downsample 的操作记为 D(·),D(·)可以是:pooling(avg/max),stride conv。& stride conv 会引入额外参数和计算量

    我们选择 avg pool 而不是 stride conv 和 max pool,因为:

    • stride conv 虽然用来downsample的效果较好,但引入了额外的参数和计算量,我们想排除额外的计算开销的影响。
    • 且 stride conv 不能使用任意的下采样率 r
    • max pool 的非线性更强(更多地保留正值),导致:1. 对 baseline 不公平,2. &&使梯度消失问题更严重

    对于非整数的 avg pool,使用一种叫 Spatial Pyramid Pooling 的方法

    shortcut

    对于有残差连接的网络,插入位置在不同 residual block 之间,且 D(·) 作用在 residual add 之后

    (p, r) 随机采样频率

    每个batch 随机采样一组(p,r)进行训练

    downsample 数量

    可以插入多个额外的 downsample,但组合情况过多,因此我们只插入1个额外的downsample

    ratio r

    • r 是从离散的集合R中均匀采样
    • r 不能太小,会影响收敛性
    • (|R|) 不能太大,太大会导致组合太多

    综上,我们取 (R = {0.5, 0.75})

    BN

    每组 (p, r) 独立计算BN

    Experiments

    CIFAR-10/100

    image-20210223164759525

    其他cost-adjustable方法,BN

    Early-Exits (EE)

    按照论文 BranchyNet 的方法设计多个中间分类器,允许提前退出

    图2可以看出EE的效果都比较差,原因:

    • 没有利用完整的网络参数
    • Early-Exit 迫使CNN在浅层就具备分类能力(学习高级特征),导致深层无法有效学习
    Multiscale Training (MS)

    对 input 做 scale

    Uniform Batch Normalization (UBN)

    使用统一的BN

    CIFAR-10/100 SOTA

    SDPoint取的是所有 instance 中最好的一个:

    image-20210223165752171

    SDPoint在没有引入额外参数/计算开销的情况下,实现了sota,且在cifar10中基本上都节省了计算量,可能是对于cifar10数据集无需长期保持较高的分辨率,可以提前downsample,揭示了CNN 中 “one-size-fits-all” 的缺点

    ImageNet

    2个baseline:ResNeXt-d101-c32 和 PreResNet-d101:

    image-20210223170452394 image-20210223170459604

    Ablation Study

    • alternate:插入点减半(间隔插入)
    • 075: (R = {0.75})

    随机性降低,效果变差

    ImageNet SOTA

    image-20210223171456545

    没有引入新的参数/计算量就达到了sota,在之前是需要2倍的计算量才能达到

    SACT是跳过部分block,从而节省参数的一种方法

    可视化

    image-20210223171925540

    Conclusion

    Summary

    • 本文在预先定义的 downsamp 基础上再随机添加1个downsamle,研究的是插入位置,还可以研究固定位置,r可变(有点像 ShapeAdaptor 做的)

    To Read

    Reference

  • 相关阅读:
    Qt's Undo Framework
    linux-ftp
    Linux Terminator
    linux wc
    Linux卷配置管理
    vmware workstation LINUX磁盘扩容
    Oracle linux6.1配置yum本地源
    安装jdk java -version 不是自己所需要的版本
    aix下oracle数据库创建表空间和用户
    Linux命令 find和mv的结合使用:查找文件,移动到某个目录
  • 原文地址:https://www.cnblogs.com/chenbong/p/14438033.html
Copyright © 2011-2022 走看看