《AutoAugment: Learning Augmentation Strategies from Data》笔记

Introduction

数据增强是提高分类模型精度的有效方法。大多数模型训练方法只是简单的使用数据增强方法,而没有探究该如何组合数据增强方法以获得最优的效果。该论文受到网络结构搜索方法的启发,搜索最优的数据增强方法。该论文定义了一个搜索空间,里面包括不同数据增强方法,称为子策略,然后用强化学习的方法从搜索空间中找到最优的策略。这种搜索数据增强策略的方法,称为AutoAugment。

该方法有两种优点:

  • 直接使用。在对某一个数据集训练分类模型时,直接使用AutoAugment方法,自动找到最优的数据增强策略,提高分类模型分类精度。
  • 迁移。把在一种数据集上得到的最优数据增强策略应用到其他数据集上,同样能够提高分类模型的精度。

Method

AutoAugment方法包括两个部分,分别是搜索算法(search algorithm)和搜索空间(search space)。搜索算法是一个控制器RNN,用于从搜索空间中选择一个策略S。然后用该策略的数据增强方法来训练一个分类模型。接着把训练得到的分类模型在验证集上的分类精度R看作是一个反馈,用于更新控制器RNN的参数。

AutoAugment的训练流程如下
AutoAugment训练流程

Search Space

首先说一下AutoAugment的搜索空间。在AutoAugment方法中,一个策略包括5个子策略。每个子策略就是一种数据增强方法,包括2个图像处理函数。在AutoAugment的训练过程中,每个mini batch的数据会随机应用5个子策略中的一种数据增强方法。

每个子策略包括2个图像处理函数,图像处理函数包括3个属性:函数类型、应用的概率和重要性。

函数类型:论文使用16种图像处理函数,包括 ShearX/Y, TranslateX/Y, Rotate, AutoContrast, Invert, Equalize, Solarize, Psterize, Contrast, Color, Brightness, Sharpness, Cutout, Sample Pairing。

应用概率:是否对图片应用这种处理函数。为了把搜索空间离散化,作者把概率分成11个级别,0-1。

重要性:这个属性应该是强化学习方法需要的属性。为了把搜索空间离散化,作者把重要性分成10个级别,分别是1-10。

这样搜索空间中一个子策略有 ( 16 × 11 × 10 ) 2 (16 \times 11 \times 10)^2 种可能。考虑到自身映射函数是一个很重要的影响函数,但是该函数已经包含在搜索空间中了(概率值等于0)。

Search Algorithm

搜索算法是一个RNN,具体是LSTM。搜索算法的作用是从搜索空间中选择一种策略出来。RNN,或者说控制器,它的参数是学习得到的,学习算法是最近策略优化算法(Proximal Policy Optimization algorithm)。在每一次训练过程种,控制器都需要输出30组softmax预测值,因为有5个子策略,每个子策略有两个操作,每个操作包括操作类型、重要性和应用概率3个属性。

控制器通过一个反馈信号来训练。反馈信号是选择的策略在改进子模型的泛化性能中有多好。子模型就是分类模型,泛化性考察模型在验证集上的分类精度。注意的是一个策略有5个子策略,在每个mini batch中只随机选择一个子策略。

控制器RNN是一个只有一层的LSTM,每层有100个隐藏单元, 2 × 5 B 2 \times 5B 组softmax预测(这里5个子策略,每个策略2个操作,应该省略了3种属性,B控制RNN输出多少个策略,论文B=5)。

控制器RNN训练的方法是最近策略优化算法(Proximal Policy Optimization algorithm)。我不清楚该方法的具体过程,这里就不过多叙述了。

训练结束后,最优的5个策略,共25个子策略组合起来,最为最后的最优策略。AutoAugment数据增强方法就是在每个mini batch中,从这25个子策略中随机选择一种策略,应用到图片上。

Experiment

实验就是在不同的数据集上比较使用AutoAugment和不使用AutoAugment得到的分类模型效果怎样。

先比较最优结果和使用AutoAugment后的结果
分类结果

可以看到直接使用AutoAugment后,训练出来的模型效果有提升。这里注意一下训练时长,一般人玩不起啊:(

接着看看和baseline比较的结果
分类结果
Baseline的数据增强方法是数据标准化和50%的概率进行水平翻转。AutoAugment的方法则是在Baseline的基础上加上最优策略的数据增强方法。

这里我有些疑惑,模型效果增加的原因确定不是因为多加的数据增强方法?

最后探究一下AutoAugment的可迁移性。用在ImageNet上得到的最优策略应用到其他数据集上
AutoAugment可迁移性探究

这里我有疑惑,和上一个疑惑一样,模型效果增加的原因确定不是因为多加的数据增强方法?关于AutoAugment的可迁移性,它可不可以归咎于策略中数据增强方法的可迁移性,或者说通用性,因为作者选择的数据增强方法本身可用于实验中的各种数据集。

我觉得该论文最大的贡献是为我们在选择数据增强方法时提供了更好的选择项。