1. Introduction
AutoAugment是数据增强策略搜索的开山之作,提出了可行的数据增强策略搜索空间,但是搜索时间极长并且非常消耗算力资源。之后2019年UC Berkeley团队又提出了PBA算法,通过优化对AutoAugment的搜索空间的设计,同时使用进化算法来作为搜索算法,以远高于AutoAugment的搜索效率,实现了与AutoAugment近似的性能。
这里PBA是以搜索policy schedule来代替AutoAugment中的搜索policy。policy schedule指的是在训练过程中,训练到哪个特定阶段(特定epoch)使用哪个增强策略,而搜索policy指的是在训练过程中一直使用设定好的policy。后面文章中将说明为什么搜索policy schedule而不是搜索policy。
2. PBA原理
2.1 搜索policy schedule
主要解释为什么搜索policy schedule而不是policy:
- 如果搜索固定的policy,则每次训练都需要完成整个训练过程,原因是数据增强带来的准确率提升往往在训练后期才能体现,而搜索schedule,就可以在搜索后期重新利用前期的计算结果和模型参数。
- 搜索固定policy,虽然能得到最终性能可以产生增益的policy,但是并不代表相同的policy可以在训练初期产生好的增益,因此通过搜索schedule,可以在不同的训练阶段,得到适合特定epoch训练阶段的增强策略,通过进化算法易于搜索。
- 尽管搜索schedule会比搜索policy会带来更加庞大的搜索空间,但是通过合适的搜索算法,反而可以使得搜索过程更加高效。
2.2 搜索空间
-
增强算子选择方面,算子的类型、probability和magnitude基本与AutoAugment保持一致,只是去掉了Sample Pairing。
-
搜索空间计算:schedule中某一时刻的policy为(每张图片允许使用2次相同的operation操作,15种算子选择),共存在种可能,对比AutoAugment的搜索空间更大。
2.3 特定时刻PBA策略的使用方式
PBA策略的形式是List of (operation, prob, mag),例如: [(Rotate, 0.5, 8), (Rotate, 0.3, 2), (Color, 0.5, 3), (Color, 0.6, 7), ......, (TranslateX, 0.3, 4), (TranslateX, 0.4, 6) ]
对30个operation组成的列表进行shuffle,然后按照概率取0-2个增强算子进行操作。
2.4 PBT训练思想
- 图a代表了序列化搜索的思想,需要依次训练若干模型,从每一次模型的评测表现中进行策略的更新,然后用新的策略进行下一次模型训练,AutoAugment就属于这一类,耗时比较长。
- 图b实现了并行化随机/网格化搜索,同时启动不同策略若干模型的训练,最后取训练效果比较好的策略。
- 图c就是PBT的训练思路,是一种进化算法,先使用不同的策略同时并行训练若干模型,训练一段时间后同时对这些模型进行评测,找到评测表现较差的模型和表现好的模型,将表现好模型的参数策略替换给那些表现较差的模型,策略更换后进行一个explore扰动,策略进行一些变化(类似基因突变)后继续进行并行训练,这样表现不好的模型可以用前面已经验证的参数策略继续进行优化,从而实现schedule的学习。
2.5 PBA算法流程
我们以cifar10为例:
- 在cifar10训练集中采样一个4000的样本的子集作为搜索阶段的训练集。
- 随机初始化16个相同结构的分类网络模型。
- 为每一个模型分配一个初始数据增强策略。
- 应用数据增强策略,并行运行16个模型若干个epoch,在验证集上测试性能表现。
- 用性能最好的4个模型的参数和增强策略覆盖性能最差的4个模型,并对当前增强策略进行一个explore扰动,扰动算法如下图所示。
- 重复以上两步,直到200个epoch完成。
- 提取性能最好的一个模型整个训练过程中的增强策略表,作为最终搜索得到的schedule。
扰动算法:
3. 实验效果
3.1 PBA搜索结果
搜索到的结果如下图所示,可以发现在训练初期搜索到的结果是算子的概率都是比较低的,可见训练初期模型不需要太多的数据增强,到了后期强度逐渐加大,来实现避免过拟合的作用。第二张图说明了各种增强算子概率的趋势是相对一致的。
3.2 准确率效果
在最终的训练阶段,将用200个epoch学习得到的policy schedule均匀拉伸到1800个epoch的训练中完成整个训练。可以发现效果还是不错的,能实现相同性能的前提下,速度提升了非常多。
4. 优劣势分析
优点:
- 效率分析:AutoAugment需要训练个epoch,而PBA只需要训练个epoch,PBA相比AutoAugment计算成本节省了500多倍。
- schedule比operation的学习策略效果更好:论文实验证明augmentation schedule效果更好。
缺点:
- 强假设:论文每次训练使用的都是数据集中的一个子数据集(十分之一),并且训练不足量的epoch后均匀将schedule拓展到全训练阶段,依赖的强假设就是,在小数据集上训练小模型作为代表性任务,将所学到的数据增强策略可以有效迁移到大数据集和大模型。这样的强假设不一定成立。
- 在对模型进行正式训练之前,需要特定的数据增强策略搜索阶段。
- 搜索空间巨大:搜索空间相比AutoAugment是更加巨大的,增加了搜索的工作量。