URL:
RePr Improved Training of Convolutional Filters
TL;DR
深度学习不仅仅是修改模型结构、改善loss函数能涨点,RePr向我们展示了改善训练流程也能大幅涨点。
如下,先看下效果图,RePr在训练准确率没有增加的情况下,显著地增加了测试准确率。
方法
一系列的model pruning方法早已证明不同权重之间冗余信息非常多。pruning方法可以在丢掉一些weights后取得和原模型相当的效果。本文也做了一个简单实验,如下图可以发现大部分filter对总acc的影响只有1%左右。那我们是否可以有种方法使得权重之间的冗余变少?
另一方面,本文讨论了保持特征/权重正交的重要性。但特征取决于输入,计算复杂,本文采用权重正交作为替代。但是实验表明增加权重正交的约束并不能有效推动模型的改善,于是本文采用丢弃重叠的filter充当隐式正交化。RePr方法如下:
其中是filter 的正交评价,是所有filter构成的集合。可见最重要的步骤在于如何计算。如下,我们先计算第层filter 的正交评价。
其中代表归一化后的权重。表示对应的行向量。
当计算每层的正交评价后,本文按照整个网络选取较小的filter去掉。然后在个iter后重新初始化,新初始化的权重保持和已有filter权重正交。
实验
实验比较扎实。
思考
RePr提供了深度模型另一类的优化方案。
但看了一些讨论,说是基本无法复现。作者给的代码也非核心。吃瓜ing。