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通道冗余性的维度来讲故事。
文章的贡献有:
一张图总结全文:
motivation(其实就是给自己A+B找个借口)简单介绍了Lightweight SR与SR + eff method(NAS、KD)的工作,指出他们没有从Conv kernel稀疏性的角度改善模型高效性,同时直接A+B比较困难(现在的SR模型里residual connections太多,但是残差块难剪,立意不强)。
有点奇妙,学到了pruning相关的一些知识:可以分成regularization-based和importance-based两类范式,但是这两类之间没有严格的界限 这真不是你们自己侃出来的吗
有一点preliminary(虽然很直观),HR图像的降采样过程会引入一些额外的噪声、模糊、压缩以及其他尚未明确的效应,同时高频部分也会损失。
讲得很清楚,分成了四个部分:
分类任务有BN,可以直接把BN中的scaling factor作为不同通道重要性的约束gate变量,但是SR里不含BN(BN对SR任务有害),为了获得这样的gate scale factor,作者提出在每层后面附上一个weight normalization层,将层中的参数归一化并乘以可学习的scale parameter:
作者称分类任务里globally排列BN scale,但是在SR任务里这么做不行,因为难以保证相加的两层通道数一致,因此他们采取了局部剪枝的策略,即在一层内达到剪枝比率,使用的剪枝标准是L1-norm。具体的流程是,对于第l层,将通道按照L1-norm排列,将最不重要(L1-norm最低)的通道选出来作为一个集合$S^({l)}$,对这些不重要的通道施加sparsity-inducing regularization(重要的通道不做任何处理)。
将WN系数的L2-norm作为sparsity-inducing regularization,具体形式为:
其中加权系数\alpha随着训练进行逐渐增大,达到一个上界\tao的时候剪枝结束。
作者将网络中的层分成了两个部分,见第一张图,残差块中的第一层是可以随便剪的层(free Conv layers),第二层因为shortcut的存在不能随便剪(constrained Conv layers),需要对这些受限的层额外施加一些限制。
L_{SSA}的具体形式为:
考虑到上面的硬mask不可微,他们用WN系数的sigmoid值作为软mask,填到上面的term里:
所以他们从头到尾没有施加硬约束,就靠这个软性term限制剪枝通道,最后也没放剪枝后的通道分布。
剪枝pipeline:
Ablation 1 - 和navie L1-norm / train from scratch比:
Main Result 1 - 主要和LightWeight SR模型比:
Main Result 2 - 比模型size和MAC:
Ablation 2 - 和其他轻量算法(NAS / KD)比: