【图像增强策略寻优算法(二)】PBA——比AutoAugment更快地数据增强策略搜索

2,046 阅读5分钟

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。 image.png

  • 搜索空间计算:schedule中某一时刻的policy为2152*15(每张图片允许使用2次相同的operation操作,15种算子选择),共存在(1011)301.751061(10*11)^{30}≈1.75*10^{61}种可能,对比AutoAugment的搜索空间2.910322.9*10^{32}更大。

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训练思想

image.png

  • 图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需要训练12015000120*15000个epoch,而PBA只需要训练20016200*16个epoch,PBA相比AutoAugment计算成本节省了500多倍。
  • schedule比operation的学习策略效果更好:论文实验证明augmentation schedule效果更好。

缺点:

  • 强假设:论文每次训练使用的都是数据集中的一个子数据集(十分之一),并且训练不足量的epoch后均匀将schedule拓展到全训练阶段,依赖的强假设就是,在小数据集上训练小模型作为代表性任务,将所学到的数据增强策略可以有效迁移到大数据集和大模型。这样的强假设不一定成立。
  • 在对模型进行正式训练之前,需要特定的数据增强策略搜索阶段。
  • 搜索空间巨大:搜索空间相比AutoAugment是更加巨大的,增加了搜索的工作量。

Reference:

  1. arxiv.org/pdf/1905.05…
  2. arxiv.org/pdf/1805.09…
  3. github.com/arcelien/pb…
  4. arxiv.org/pdf/1711.09…