高效的可微分自动数据增强技术(DADA,ECCV2020)

我们被ECCV 2020接收的工作 DADA: Differentiable Automatic Data Augmentation 使用可微分算法进行数据增广策略搜索任务。该方法大大提升了搜索效率,相较于以往经典的AutoAugment算法,我们的搜索代价从5000 GPU Hours缩减到了0.1 GPU Hours,并且该方法的准确率还保持和以往方法相当。

论文arxiv.org/abs/2003.0378

开源代码github.com/VDIGPKU/DADA


详细介绍

数据增广对于提升模型泛化性能有着很大的帮助,但是手工设计的数据增广操作(如Cutout、MixUp和MixCut等)比较依赖于专家知识,同时需要大量的调参,因此适用范围有限。受Neural Architecture Search(NAS)启发,AutoAugment提出用强化学习算法进行数据增广策略搜索任务,探索16个不同的手工设计数据增广操作如何组合以提升模型性能。然而强化学习算法搜索效率过低,在CIFAR-10的代理数据集上进行搜索仍然需要5000 GPU Hours。受到DARTS算法启发,我们提出了可微分网络架构搜索算法在数据增广策略搜索任务上。具体来说(如下图所示):


1. 我们首先将数据增广策略搜索形式化为对105个sub-policies的categorical-distribution采样问题,对sub-policies里每个操作的概率作为bernoulli-distribution采样问题。

2. 我们将上述分布的参数优化问题通过gumbel-softmax松弛为可微分的参数优化问题。同时借助Straight-Through梯度估计器,我们每次只采样一个sub-policies,提升了图片处理的速度。

3. 其次,为了针对gumbel-softmax优化过程中的梯度biased的问题,我们提出了使用RELAX估计器估计上述分布的梯度,使得梯度unbiased,使得搜索过程中梯度更新更加稳定。

4. 最后我们提出了one-pass联合优化策略,交替优化模型权重和数据增广策略参数梯度。

上述算法使得我们在大大提升数据增广策略搜索效率的同时,还保证了模型性能。

最后通过在CIFAR-10、CIFAR-100、SVHN和ImageNet数据集进行实验上,我们的搜索算法对相对以往搜索算法,如Fast AutoAugment,搜索效率提升了一个数量级,但是模型性能仍然相当,如下表所示(其他数据集性能详见论文):

除此之外,我们也将数据增广训练的ImageNet模型作为目标检测的预训练模型,也提升了RetinaNet、Faster R-CNN和Mask R-CNN的性能。后续工作将尝试直接将我们的算法直接应用到目标检测任务上。

编辑于 2020-07-21 05:51