PBA:基于规模的数据增强:有效学习的自动迭代式数据增强策略。(一种数据增强技术)


PopulationBasedAugmentation: EfficientLearningofAugmentationPolicySchedules



基于规模的数据增强:有效学习的自动迭代式数据增强策略。


https://arxiv.org/abs/1905.05393?context=cs
原文作者:Daniel Ho

标题里的规模,应该是指同时在训练的模型的数量。原文太长了。我总结如下:

对于神经网络来说,数据增强的重要性不言而喻。现在比较牛逼的数据增强技术就属AutoAugmentation了。这个AutoAugmentation使用RNN和Reinforcement learning的。它的一个主要问题就是太吃资源。而且没有源代码公开,所以不知道里面究竟是个啥。另外这个技术有一个特点,就是它是静态的。所谓静态的意思就是说,它所用的策略,是没有随着迭代次数的增加而发生改变的。因为很多时候,一个模型的训练的整个流程中,训练的开始阶段和训练的结束阶段的表现是差异巨大的。AutoAugmentation等静态技术,在训练快要结束的时候使用表现很好,但是在训练刚开始的时候,模型converge的难度是最大的,因此需要在不同的阶段应用不同的策略。另外静态的训练有个不好的地方,因为需要等待模型训练结束才可以获得误差。

这个paper就是在解决这些问题,提出了一个非静态的数据增强策略。实际上就是一个随着迭代次数的增加,不断变化的策略机制。我起个名字叫迭代制动策略。这个东西其实和自动超参数的另外一篇论文pbt很有渊源。

它的执行过程如下:第一,一定规模的模型随机初始化,并行训练。第二,在预先设置的迭代次数的节点到达后,执行“探索和利用”步骤,就是把表现最烂的模型的参数,用比较好的模型的参数直接替换。然后加上一些扰动(确保它还在探索)。继续训练至下一个节点。在训练结束后,得到一个训练好的模型和一堆优化好的迭代制动策略下的超参数。

很nice的是论文里贴出了代码。https://github.com/arcelien/pba.在其中作者使用了专门用于并行计算的框架Ray。

从结果看和AutoAugment差不太多:
PBA:基于规模的数据增强:有效学习的自动迭代式数据增强策略。(一种数据增强技术)

PBA:基于规模的数据增强:有效学习的自动迭代式数据增强策略。(一种数据增强技术)