zoukankan      html  css  js  c++  java
  • 【Generalization-Stability Tradeoff】2020-NIPS-The Generalization-Stability Tradeoff In Neural Network Pruning-论文阅读

    GST

    2020-NIPS-The Generalization-Stability Tradeoff In Neural Network Pruning

    来源:ChenBong 博客园


    Introduction

    剪枝算法 Generalization 与 Stability 的关系

    Generalization:泛化性、泛化能力,在 unseen 的 data 上的性能,可以简单理解为测试集准确率,泛化能力好,测试集准确率高,Generalization gap(training acc - test acc) 小,过拟合程度低。

    instability:不稳定性,剪枝算法执行前后,网络的性能下降比例,(instability_{i}=frac{t_{mathrm{pre}, i}-t_{mathrm{post}, i}}{t_{mathrm{pre}, i}})

    Stability:稳定性,1-instability

    image-20201027184420188

    Motivation

    • 大量剪枝算法在减少了参数量的情况下提高了模型的 test acc(提高了泛化能力),一种解释是剪枝算法通过去除模型中的参数冗余,减少对 training set 中噪声的过拟合,从而提高 泛化能力
    • 但也有工作认为,通过增加模型的参数量(even when the DNN already has enough parameters to fit large datasets of randomized data),可以提高模型的泛化能力(test acc提高)
    • 这里就产生了一个矛盾,如果增加参数量会提高模型的泛化能力,那么减少模型的参数量为什么也能提高模型的泛化能力?提高泛化能力的根本原因是什么?

    Contribution

    • 实验证明了基于幅值的剪枝的效果相当于在训练过程中增加噪声(drop out),从而提高了模型的泛化能力, (prune > baseline)
    • 在剪枝的基础上,允许被剪掉的filter重新回到网络中,可以进一步提高 test acc,说明可以在不减少参数的情况下,进一步提高 test acc,即 (prune_{resume} > prune > baseline) ,说明减少参数并不是提高模型泛化能力的根本原因,泛化能力提高的根本原因是剪枝的过程中加入了噪声

    Method

    剪枝流程:迭代剪枝

    image-20201027184420188

    • 总epoch数:325
    • 剪枝目标:VGG11/ResNet18 的最后4个卷积层
    • 剪枝算法 score:VGG11,filter的 (l_2-norm) ;ResNet18,feature map 的 (l_2-norm)
    • 总剪枝比例:VGG11,{30%, 30%, 30%, 90%};ResNet18,{25%, 40%, 25%, 95%}
    • 剪枝算法执行的阶段:start=7 epoch, end=247 epoch
    • 剪枝间隔:
      • r=40,每隔 40 个 epoch 执行一次剪枝算法,一共执行 240/40=6+1=7 次剪枝
      • r=3,每隔 3 个 epcoh 执行换一次剪枝算法,一共执行 240/3=80+1=81 次剪枝
    • 每次剪枝比例:总剪枝比例 / r

    在图例中,

    • Prune_R 表示随机剪
    • Prune_L 表示每次剪掉 Largest score 的filter
    • Prune_S 表示每次剪掉 Smallest score 的filter
      • Prune_S 13% 表示 r=40,执行7次剪枝,每次剪掉 90%/7≈13% 的 Smallest score 的 filter
      • Prune_S 1% 表示 r=3,执行81次剪枝,每次剪掉 90%/81≈1% 的 Smallest score filter

    剪枝间隔 r 与 Stability:剪枝间隔越小,每次剪掉的比例越低,Stability 稳定性越高

    每次剪枝比例 与 Stability:每次剪枝比例越小,Stability 稳定性越高

    剪掉 Smallest/Largest score 与 Stability:每次剪掉 Smallest score filter,Stability 稳定性越高

    Experiments

    稳定性 与 泛化能力(test acc)

    4种配置:

    • No Pruning
    • Prune_S 1%
    • Prune_S 13%
    • Prune_L 13%

    稳定性:No Pruning > Prune_S 1% > Prune_S 13% > Prune_L 13%

    image-20201027191923070

    左图:

    • test acc(泛化能力):No Pruning < Prune_S 1% < Prune_S 13% < Prune_L 13%

    右图:

    • 平均稳定性 与 test acc(泛化能力)呈负相关,即方法越不稳定,test acc越高

    那么能否通过(调节某个超参,如增大剪枝间隔r 来)不断减小剪枝算法的稳定性,来提高test acc呢?

    以 剪枝间隔 r 这个超参为代表,研究超参与稳定性/泛化能力的关系

    剪枝间隔 r (超参) 与 稳定性 vs 泛化能力/负相关系数

    图例:image-20201027194950416

    剪枝间隔 r 与 稳定性

    image-20201027194252924

    x:剪枝间隔r;y:平均稳定性

    (90% 的剪枝率, 分 r 次剪)剪枝间隔越大,(每次剪的就越多),稳定性越差

    剪枝间隔 r 与 test acc(泛化能力)

    image-20201027194550909

    x:剪枝间隔 r;y:test acc(泛化能力)

    对于每次剪掉 Smallest 来说,在一定范围内,剪枝间隔越大,test acc 越高

    剪枝间隔 r 与 (泛化能力 与 稳定性的负相关系数)

    image-20201027195312365

    x:剪枝间隔;y:负相关系数

    剪枝间隔 r 越大,负相关性越弱

    说明剪枝间隔 r(超参)在一定范围内,泛化能力与稳定性都是负相关的,即可以通过增大剪枝间隔r,进而降低方法的稳定性,进而提高泛化能力(test acc),但当 剪枝间隔 r(超参)超出一定的范围,不再具有负相关性,再提高剪枝间隔r,也无法提高最终的性能(泛化能力)

    剪枝 与 noise injection 的等价性

    剪枝 与 权重置零 与 权重加噪声:

    image-20201027200938842 image-20201027200723932

    在没有减少参数量的情况下,使网络的性能提高到比 剪枝方法 还要高

    说明剪枝为什么能够提高网络性能的 “减少参数量,减少网络对噪声的过拟合,从而提高泛化能力(test acc)” 的说法是不够准确的,因为大网络在不减少参数量的情况下,一样可以有很好的 泛化能力,剪枝能提高网络性能的根本原因是在训练过程中引入了训练噪声,从而提高了泛化能力

    Conclusion

    Summary

    • 将 Dropout,剪枝与 增加训练噪声 统一起来,为网络泛化能力的提高提供了 一种统一的解释——即引入了训练噪声

    To Read

    Reference

    Understanding deep learning requires rethinking generalization

    https://www.zhihu.com/question/56151007

  • 相关阅读:
    Software Solutions CACHE COHERENCE AND THE MESI PROTOCOL
    CACHE COHERENCE AND THE MESI PROTOCOL
    Multiprocessor Operating System Design Considerations SYMMETRIC MULTIPROCESSORS
    Organization SYMMETRIC MULTIPROCESSORS
    PARALLEL PROCESSING
    1分钟内发送差评邮件
    Secure Digital
    SYMMETRIC MULTIPROCESSORS
    A Taxonomy of Parallel Processor Architectures
    parallelism
  • 原文地址:https://www.cnblogs.com/chenbong/p/13901944.html
Copyright © 2011-2022 走看看