很多人都提到了 Lottery 和 Rethinking 这两篇文章
,确实,这两篇文章扎实的实验给了很多非常有趣的结论。
看了下大家的回答,其实这个问题可以这么去概括一下。
Lottery 这篇文章最重要的结论是:
一个网络,我train到收敛,然后我剪枝,剪枝之后呢,我把那些还没有被剪的参数重新初始化到刚开始初始化的样子,然后再train,发现效果还挺好,有时候甚至更好。
其实,Rethinking 这篇文章也是差不多的结论,只是有一点不同:
剪枝之后,Lottery 要把未被剪的参数重新变成之前初始化的样子,而 Rethinking 则更简单一些,不需要变成之前初始化的样子,你随便再随机初始化也是一样的。
有人说这两篇文章是矛盾的,但是我觉得其实并不矛盾,因为两篇文章其实都在揭示一个重要的点,那就是 pruning 的真正作用也许是在发现更好的(稀疏)结构,而不是在参数上。
后来 Rethinking 的作者 @刘壮 也在这个回答里面做了回应https://www.zhihu.com/question/323214798/answer/678706173,发现是其实这个结论不同其实是因为 learning rate 不同。考虑到 deep learning 本来就是有太多细小而且难以解释和把握的变量,我们这里可以认为:
是否重新变成之前初始化的样子其实影响不大。
好了,到这里两篇 paper 基本上是可以达成共识了,我们来总结一下
如果你 train 两个网络,一个网络是不稀疏的网络,另外一个网络是稀疏网络,让两个网络的 非零 参数的数量一样,很明显稀疏网络要好一些。但是这么比较其实不公平,因为后者的参数量其实更多(0也算参数)。其他回答中之所以有一定争议,其实是因为本身这个问题有多种角度去看:
后面两个问题还需要更多的实验来看。
模型压缩的最终目的是得到更小性能更好的小模型,之所以不直接训练一个小模型,是因为之前的已有技术没办法让小模型得到好的性能。
模型压缩的方式,本质上是去冗余,也就意味着大多数时间资源都花费在最终不需要的部分,如果能够直接训练小模型得到更好的性能,当然是再好不过了。
通过最近几年的一些发展,有一些成熟的方法,可以直接训练小模型得到好的性能。
最近NetAug就明确提出,小模型是欠拟合的,需要网络增强技术提升性能(大模型相反,大模型过拟合,需要正则化)。
NetAug指出大模型过拟合,需要通过dropout等正则化技术和数据增强来提升精度;而小模型是欠拟合的,需要增强网络技术,正则化技术对小网络是有害的。
如上图所示ResNet50(大模型)正则化后,精度都有所提升,NetAug会掉点;而MobileNetV2-Tiny(小模型)正则化会掉点,NetAug会提升精度。
Constructing Augmented Models
如左图所示,构建一个最大的增强模型(包含需要的小模型,参数共享),其他增强模型从最大增强模型中采样。这种参数共享构建supernet的方式,之前在one-shot NAS中非常流行,详细可以看我之前的文章:NAS: One-Shot。
如右图所示,NetAug通过调整width构建其他增强模型,比起通过调整depth构建增强模型,训练开销更小。构建增强模型引入augmentation factor r和diversity factor s两个超参数,假设我们需要的小模型其中一个卷积宽度是w,最大增强模型的卷积宽度就是rxw,s表示从w到rw宽度之间等间距采样s个增强模型卷积宽度。比如r=3,s=2,那么widths=[w, 2w, 3w]。
训练阶段,NetAug在每个step采样一个增强模型进行辅助训练。NetAug训练额外开销相比baseline增加了16.7%,推理额外开销为0。
Effectiveness of NetAug for Tiny Deep Learning
可以看到,NetAug和KD是正交的,可以在KD基础上继续提升性能。
在流行的小模型和NAS模型基础上,NetAug可以继续提升性能,但是对于大模型(ResNet50)来说,NetAug是有害的。
上图清晰的揭示了本文提出的结论,小模型欠拟合,NetAug可以提升性能;大模型过拟合,NetAug是有害的。
NetAug vs OFA
NetAug和之前的OFA非常相似,OFA先构建一个大模型,然后训练这个大模型,最后通过搜索的方式得到小模型。
从上表可以看到,在OFA搜索得到模型的基础上,NetAug还可以继续提升性能,也验证了NetAug可以进行网络增强的作用。
OFA和NetAug其实是一体两面:一个是自上而下通过supernet搜索最好的子网络,另一个是自下而上通过supernet辅助训练小网络。一个是终点未知,找最优终点(类似搜索);另一个是终点已知,增强终点性能(类似动态规划)。
OFA的问题在于,大量的时间资源花费在可能跟最终目的无关的子模型上,而NetAug的优势在于,已知想要的小模型,通过supernet来提升小模型的精度。
小模型欠拟合,需要增加而外的监督信息(NetAug、KD、multi-task learning);大模型过拟合,需要正则化。
NetAug和KD的差别在于,KD是通过outer network来辅助训练(提供信息),而NetAug是通过inner network来辅助训练(共享参数)。
至此,小模型可以通过NetAug、KD、multi-task learning三种技术增加额外的监督信号,对小模型进行网络增强。无论是模型压缩还是直接训练小模型,只要能得到更小更好的小模型,就达到目的了。
Reference
2.ONCE-FOR-ALL: TRAIN ONE NETWORK AND SPE- CIALIZE IT FOR EFFICIENT DEPLOYMENT
3.NETWORK AUGMENTATION FOR TINY DEEP LEARNING
欢迎关注 Smarter ,构建CV世界观,输出优质内容
欢迎加入Smarter交流群,添加微信「cjy094617」,备注「学校-方向」即可
女王:求求题主放过我,我可不敢有什么政绩。。。
克劳备忘录也好,凯南电报也好,有两大共同点。首先,都是以现实主义的眼光去分析双方的关系。然后,给出的建议都是阳谋,并不是什么不可告人的阴谋,执行起来需要的不是鸡鸣狗盗的小聪明,而是惊人的意志力。
而美国现在战略界现实主义被边缘化,我推测,布热津斯基,基辛格那帮人应该写过不少。不过没所谓,美国能执行大战略的时代过去了。现在这一代精英上半年能管下半年就已经很了不起了。一个需要两代人以上持之以恒去完成的大战略,搞出来他们也执行不了。
冷战时期,从杜鲁门艾森豪威尔到肯尼迪尼克松,最后到李根老布什,个人性格和政治偏好差距不要太大,但是都忠实地完成了他们历史任务,沿着围堵政策做下去。这种战略定力和延续性,世间少见。在中国领导集团上能看见一些相似的东西,但是我们离得距离太近,反而看不清。但在美国精英层身上完全看不到这一点。
个人愚见。