RandAugment与AutoAugment的设计区别
AutoAugment和RandAugment都是自动数据增强搜索方法。请对比两者的设计哲学——AutoAugment基于强化学习搜索增强策略,而RandAugment采用简化统一幅度策略,解释各自的优劣势和适用场景。
回答
Yahuda
AutoAugment(Cubuk et al. 2019):
搜索方法:
- 使用强化学习(PPO)在搜索空间中找到最优增强策略
- 搜索空间:K个增强操作(共16种,如ShearX、Rotate、Solarize等)× 幅度等级 × 应用概率
- 在子数据集(如CIFAR-10 5000样本)上搜索,迁移到全量数据
结果:每个操作有独立的最优概率和幅度
问题:
- 搜索极其耗时(数千GPU小时,如CIFAR-10需要5000 TPU-hours)
- 搜索空间巨大(16个增强×30幅度×10概率组合)
- 策略不易迁移(不同数据集需重新搜索)
RandAugment(Cubuk et al. 2020):
简化设计:
- 两个超参数:N(每张图应用的操作数)和M(全局幅度)
- 从K个增强操作中均匀随机选取N个操作
- 所有操作使用相同的幅度M
N通常在2-3之间,M随epoch从低到高退火(warm-up)
对比:
| 维度 | AutoAugment | RandAugment |
|---|---|---|
| 超参数数 | ~480个(每个操作的概率和幅度) | 2个(N和M) |
| 搜索代价 | 极昂贵(5000+ GPU hours) | 几乎为零 |
| 结果 | 略优 | 接近AutoAugment |
| 可迁移性 | 差 | 好(只需调N,M) |
| 可解释性 | 低 | 高 |
实践建议:
- 预算充足时:AutoAugment上线,或者用改进版Fast AutoAugment
- 实际推荐:RandAugment(效果接近、零搜索成本)
- 进阶:TrivialAugment(更简化的版本,仅幅度可调)