【GiantPandaCV导语】本文介绍的是韩松团队针对欠拟合问题提出的一种解决方案,在代价可接受范围内能够提升小模型的性能。
引入
专用于解决小型网络模型欠拟合 带来的问题,通过引入更大的模型包围住小模型从而得到额外的监督信息。欠拟合情况下使用正则化方法进行处理会导致性能更差。
NetAug适用场景:
-
数据集量比较大
-
模型参数量相对而言比较小
-
由于模型容量有限导致的欠拟合问题
问题明确
- 与知识蒸馏区别:
知识蒸馏相当于学习一个soft label(或者说learned label smoothing), 而NetAug主要强调处理欠拟合问题,通过增强小模型的模型宽度来获取更多监督信息。
- 与普通正则化方法区别:
正则化方法有数据增强方法(Cutout,Mixup,AutoAug,RandAug)和Dropout系列(Dropout,StochasticDepth, SpatialDropout,DropBlock)。与这些解决过拟合正则化方法不同,NetAug主要关注欠拟合问题,进行数据增强反而会导致欠拟合问题。
核心方法
如上图所示,训练的过程中会引入比原先小模型更宽的一系列网络,用宽网络的监督信号来增强小模型的学习。
第一项是训练单个小网络需要的loss, 第二项是宽网络带来的辅助监督信息,其中$\alpha_i
$是缩放系数
宽网络获取方式:augmentation factor r和diversity factor s两个系数。
-
r 是用于选择最宽的边界,假设基础宽度为w,那么宽度选择范围为【w, rxw】
-
s则是控制采样频率,从w到rxw等距采样s个宽模型。
训练过程:
实际训练过程权重更新如下:
W t n + 1 = W t n − η ( ∂ L ( W t n ) ∂ W t n + α ∂ L ( [