Fast AutoAugment
原文地址:Fast AutoAugment
实现:
摘要
1 | Data augmentation is an essential technique for improving generalization ability of deep learning |
数据扩充是提高深度学习模型泛化能力的关键技术。最近,自动增强[3]被提出作为一种从数据集自动搜索增强策略的算法,并在许多图像识别任务中显著增强了性能。然而,它的搜索方法即使对于相对较小的数据集也需要数千个GPU小时。在这篇文章中,我们提出了一种称为快速自动增强的算法,它通过一种基于密度匹配的更有效的搜索策略来找到有效的增强策略。与自动调整相比,所提出的算法将搜索时间加快了几个数量级,同时在使用各种模型和数据集(包括CIFAR-10、CIFAR-100、SVHN和ImageNet)的图像识别任务上实现了可比较的性能。
引言
AutoAugment算法使用强化学习作为搜索算法,每次得到一个策略,使用它进行训练后通过评估模型验证精度来判断该策略好坏,虽然取得了很好的效果,但是耗时很长;而Fast AutoAugment算法实现灵感来自于Bayesian DA算法,将增强数据看成原有训练数据在数据分布上的缺失数据点,通过寻找能够提高模型泛化能力的策略来增强最终的模型性能,相比较而言,极大的减少了训练时间,同时能够得到可比较的性能。
相关工作
目前数据自动增强领域有两个研究方向:一是通过生成模型直接生成增强数据;二是寻找预定义转换函数的优化组合。
1 | The main difference between the previously learned methods and these automated augmentation search |
Fast AutoAugment实现
文章首先介绍了搜索空间,然后介绍了搜索流程和搜索算法
搜索空间
Fast AutoAugment
的搜索空间设置参数化了AutoAugment
的搜索空间,相关参数如下:
- \(O\):图像转换集合。每个转换包含两个参数:调用概率\(p\)和转换幅度\(\lambda\)
- \(X\):输入图像集合
- \(S\):子策略集合
- \(\tau\):子策略,\(\tau \in S\),每个\(\tau\)包含\(N_{\tau}\)个连续操作\(\{\bar{O}_{n}^{\tau}(x: p_{n}^{(\tau)}, \lambda_{n}^{(\tau)}): n=1,...,N_{\tau}\}\)
子策略中的操作按概率\(p\)调用,如公式一所示:
子策略的执行结果\(\tau(x)\)可参数化如下所示:
\[ \tilde{x}(n) = \bar{O}_{n}^{(\tau)}(\tilde{x}_{n-1}), n=1,...,N_{\tau} \]
其中\(\tilde{x}_{(0)}=x\),\(\tilde{x}_{(N_{\tau})}=\tau(x)\)。如下图所示:
- \(T\):最后得到的策略,是\(N_{T}\)个子策略的集合
- \(D\):图像数据集
- \(T(D)\):被子策略\(\tau \in T\)转换厚的增强图像,其计算如下:
\[ T(D) = \bigcup _{\tau \in T} \{(\tau(x), y): (x, y)\in D\} \]
改进
相对于AutoAugment
将转换幅度\(\lambda\)离散化(共11种取值),论文设置\(\lambda\)的取值为\([0, 1]\),拥有更多的可能性