Aligned Structured Sparsity Learning for Efficient Image Super-Resolution

2021/12/14

来源:NIPS2021 - spotlight
resource:github上备份的包括ipad标注的pdf版本。

作者是张宇伦他们,Yulun Zhang, Huan Wang, Can Qin, Yun Fu。

Summary:一篇中规中矩的A+B文章。作者提出将pruning作为SR轻量化的方法(ASSL,regularization-based filter pruning method),做了些适应性变更。文章最突出的贡献是提出了一种基于gram Matrix的正则项约束残差块最后一层的剪枝通道一致,其次针对SR模型没有BN、无法确定重要性系数的问题,提出一种WN来归一并加权不同通道,并对这些系数用L2正则来实现稀疏化。

Rating: 3.0/5.0 一般,中规中矩
Comprehension: 4.0/5.0 比较容易理解

motivation:SR领域已有轻量架构设计与NAS、KD相关的方法,但是还没有人从pruning这个角度、从Conv通道冗余性的维度来讲故事。

文章的贡献有:

  • 第一个做Pruning+SR的
    • 提出一种regularization term来统一不同residual block最后的剪枝通道;
    • 设计WN层,对归一化后的不同层乘以不同的系数,并对系数实现稀疏约束。

一张图总结全文:

1 Introduction

motivation(其实就是给自己A+B找个借口)简单介绍了Lightweight SR与SR + eff method(NAS、KD)的工作,指出他们没有从Conv kernel稀疏性的角度改善模型高效性,同时直接A+B比较困难(现在的SR模型里residual connections太多,但是残差块难剪,立意不强)。

有点奇妙,学到了pruning相关的一些知识:可以分成regularization-based和importance-based两类范式,但是这两类之间没有严格的界限 这真不是你们自己侃出来的吗

3 Proposed Method

3.1 Deep CNN for Image SR

有一点preliminary(虽然很直观),HR图像的降采样过程会引入一些额外的噪声、模糊、压缩以及其他尚未明确的效应,同时高频部分也会损失。

3.2 Aligned Structural Sparsity Learning (ASSL)

讲得很清楚,分成了四个部分:

  • 参数如何被归一化以获得稀疏性(what parameters are regularized to obtain sparsity -> Regularizing Scales in Weight Normalization);
  • 如何选择并约束不重要的参数(how to select unimportant parameters to regularize -> Pruning Scheme and Criterion);
  • 约束项的形式是怎样的(which is the specific regularization form -> Regularization Form);
  • 如何对齐残差网络的稀疏结构(how to align the sparsity structure for residual networks -> Sparsity Structure Alignment)。

Regularizing Scales in Weight Normalization -> WN

分类任务有BN,可以直接把BN中的scaling factor作为不同通道重要性的约束gate变量,但是SR里不含BN(BN对SR任务有害),为了获得这样的gate scale factor,作者提出在每层后面附上一个weight normalization层,将层中的参数归一化并乘以可学习的scale parameter:

Pruning Scheme and Criterion -> L1-norm、local pruning

作者称分类任务里globally排列BN scale,但是在SR任务里这么做不行,因为难以保证相加的两层通道数一致,因此他们采取了局部剪枝的策略,即在一层内达到剪枝比率,使用的剪枝标准是L1-norm。具体的流程是,对于第l层,将通道按照L1-norm排列,将最不重要(L1-norm最低)的通道选出来作为一个集合$S^({l)}$,对这些不重要的通道施加sparsity-inducing regularization(重要的通道不做任何处理)。

Regularization Form -> L_{SI}

将WN系数的L2-norm作为sparsity-inducing regularization,具体形式为:

其中加权系数\alpha随着训练进行逐渐增大,达到一个上界\tao的时候剪枝结束。

Sparsity Structure Alignment

作者将网络中的层分成了两个部分,见第一张图,残差块中的第一层是可以随便剪的层(free Conv layers),第二层因为shortcut的存在不能随便剪(constrained Conv layers),需要对这些受限的层额外施加一些限制。

  • 这里还对比了图像分类任务,但是我觉得有点牵强,而且只字未提一样的硬Mask
    • SR任务比分类任务更深,有更多residual block;
    • SR使用两层的残差块,分类任务用bottleneck,SR任务里constrained Conv layers占比高;
    • 分类任务残差块最后一层是1*1 Conv,就算不剪枝FLOPs也少,但是SR残差块第二层就是普通尺寸Conv。
      具体做法是用mask的内积作为约束项:

L_{SSA}的具体形式为:

考虑到上面的硬mask不可微,他们用WN系数的sigmoid值作为软mask,填到上面的term里:

所以他们从头到尾没有施加硬约束,就靠这个软性term限制剪枝通道,最后也没放剪枝后的通道分布。

3.3 Arm Image SR Models with ASSL

剪枝pipeline:

  • 对于free Conv layers直接施加SI regularization;
  • 对于constrained Conv layers先施加sparsity-structure alignment regularization训上若干epoch,再上SI regularization;
  • 剪枝结束后移除剪枝掉的通道和WN层。

4 Experimental Results

  • 数据集:
    • 训练集是DIV2K和Flickr2K
    • 测试集是Set5,Set14,B100,Urban100,Manga109
    • SR的常用设置,在YCbCr空间的Y通道上测PSNR和SSIM
  • 训练设置:
    • 训练数据aug,0°/90°/180°/270°旋转与垂直翻转;
    • bs=16, patch size=48*48
    • Adam optimizer,lr 1e-4 -> 1e-5
  • 实验结果:
    • Ablation 1 - 和navie L1-norm / train from scratch比:

    • Main Result 1 - 主要和LightWeight SR模型比:

    • Main Result 2 - 比模型size和MAC:

    • Ablation 2 - 和其他轻量算法(NAS / KD)比: