【深度学习: AutoAugment】使用 AutoAugment 提高深度学习性能
- 结果
深度学习在计算机视觉领域的成功可以部分归因于大量标记训练数据的可用性——随着训练数据的质量、多样性和数量的增加,模型的性能通常会提高。然而,收集足够的高质量数据来训练一个模型以使其表现良好通常是非常困难的。解决这个问题的一种方法是将图像对称性硬编码到神经网络架构中,这样它们就能表现得更好,或者让专家手动设计数据增强方法,比如旋转和翻转,这些方法通常用于训练表现良好的视觉模型。然而,直到最近,很少有人关注如何使用机器学习来自动增加现有数据。我们的AutoML努力设计了神经网络架构和优化器,以取代以前由人类设计的系统组件,受到这些成果的启发,我们问自己:我们是否也能自动化数据增强的过程?
在“AutoAugment:从数据中学习增强策略”中,我们探索了一种强化学习算法,该算法可以增加现有训练数据集中数据的数量和多样性。直观地说,数据增强被用来教导模型在数据域中的图像不变性,使神经网络对这些重要的对称性不变性,从而提高其性能。与之前使用手工设计的数据增强策略的最先进的深度学习模型不同,我们使用强化学习从数据本身中找到最佳的图像转换策略。结果提高了计算机视觉模型的性能,而不依赖于产生新的和不断扩展的数据集。
增强训练数据
数据增强背后的思想很简单:图像具有许多对称性,这些对称性不会改变图像中呈现的信息。例如,一只狗在镜子里的倒影仍然是一只狗。虽然这些“不变性”中的一些对人类来说是显而易见的,但许多不是。例如,mixup方法通过在训练期间将图像放在彼此的顶部来增强数据,从而产生提高神经网络性能的数据。
AutoAugment是一种自动为计算机视觉数据集设计自定义数据增强策略的方法,例如,指导基本图像转换操作的选择,例如水平/垂直翻转图像,旋转图像,改变图像的颜色等。AutoAugment不仅可以预测要组合的图像转换,还可以预测使用的每个图像的概率和转换的大小,这样图像就不会总是以相同的方式进行操作。AutoAugment能够从2.9 x 1032图像转换可能性的搜索空间中选择最优策略。
AutoAugment根据它运行的数据集学习不同的转换。例如,对于包含数字的自然场景图像的街景门牌号码(SVHN)图像,AutoAugment侧重于几何变换,如剪切和平移,这表示在该数据集中经常观察到的扭曲。此外,考虑到世界上不同建筑和房屋编号材料的多样性,AutoAugment已经学会了完全反转原始SVHN数据集中自然出现的颜色。
在CIFAR-10和ImageNet上,AutoAugment不使用剪切,因为这些数据集通常不包括剪切对象的图像,也不完全反转颜色,因为这些转换会导致不真实的图像。相反,AutoAugment专注于稍微调整颜色和色调分布,同时保留一般的颜色属性。这表明在CIFAR-10和ImageNet中对象的实际颜色是重要的,而在SVHN中只有相对颜色是重要的。
结果
我们的AutoAugment算法为一些最知名的计算机视觉数据集找到了增强策略,当这些数据集被纳入神经网络的训练中时,可以获得最先进的精度。通过增强ImageNet数据,我们获得了新的最先进的精度,top1精度为83.54%,而在CIFAR10上,我们实现了1.48%的错误率,这比科学家设计的默认数据增强提高了0.83%。在SVHN上,我们将最先进的误差从1.30%提高到1.02%。重要的是,AutoAugment策略被发现是可转让的——为ImageNet数据集找到的策略也可以应用于其他视觉数据集(Stanford Cars, FGVC-Aircraft等),这反过来又提高了神经网络的性能。
我们很高兴看到我们的AutoAugment算法在许多不同的竞争性计算机视觉数据集上达到了这种水平的性能,并期待看到这项技术在更多计算机视觉任务甚至其他领域(如音频处理或语言模型)的未来应用。在本文的附录中包含了性能最好的策略,以便研究人员可以使用它们来改进相关视觉任务的模型。