Py学习  »  机器学习算法

利用 AutoAugment 提升深度学习性能

TensorFlow • 5 年前 • 515 次点击  

计算机视觉深度学习的成功部分归功于拥有大量带标记的训练数据,因为模型的性能通常会随着训练数据质量、多样性和数量的增加而相应提高。然而,要收集足够多的高质量数据来训练模型以使其具有良好的性能,往往非常困难。要解决这一问题,一种方法是将图像对称性硬编码到神经网络架构中来提高性能,另一种是由专家手动设计训练高性能视觉模型常用的数据增强方法,如旋转和翻转。


不过,直到最近,人们还很少关注如何利用机器学习来自动增强现有数据。我们此前推出了 AutoML,代替人为设计的系统组件,自动设计神经网络架构和优化器,取得了良好效果。受此启发,我们提出新的设想:数据增强过程是否也可以实现自动化?


在“AutoAugment: Learning Augmentation Policies from Data” (https://arxiv.org/abs/1805.09501) 一文中,我们探索了一种增强学习算法,这种算法增加了现有训练数据集中数据的数量和多样性。直观地说,数据增强用于教会模型有关数据域中的图像不变性,让神经网络对这些重要的对称性保持不变,从而改善其性能。与以往使用手工设计的数据增强策略的先进深度学习模型不同,我们使用增强学习从数据本身寻找最佳图像变换策略,从而在不依赖于生成新的和不断扩展的数据集的情况下,提高了计算机视觉模型的性能。



增强训练数据

数据增强的思路很简单:图像有许多对称性,这些对称性不会改变图像中存在的信息。例如,狗的镜面反射仍然是狗。虽然其中一些“不变性”对人类来说显而易见,但有许多却并非如此。例如,mixup 方法通过在训练期间将图像彼此叠加来增强数据,从而产生可改善神经网络性能的数据。

左图:来自 ImageNet 数据集的原始图像。右图:同一图像通过常用的数据增强变换(围绕中心水平翻转)处理后。


AutoAugment 是为计算机视觉数据集设计自定义数据增强策略的一种自动方式,例如,可指导基本图像变换操作的选择,如水平/垂直翻转图像、旋转图像和更改图像颜色等。AutoAugment 不仅可以预测要组合的图像变换,还可以预测每个图像使用变换的概率和数量,以便确保图像操作并不局限于一种方式。AutoAugment 能够从具有 2.9 x 1032 种图像变换可能性的搜索空间中选出最佳策略。


AutoAugment 根据所运行的数据集学习不同的变换。例如,对于包含数字自然场景图像的门牌号街景 (SVHN) 图像,AutoAugment 侧重于剪切和平移等几何变换,这些操作表示在该数据集中通常观察到的失真。此外,考虑到世界上不同楼号和门牌号材料的多样性,AutoAugment 已经学会完全颠倒原始 SVHN 数据集中自然出现的颜色。


左图:来自 SVHN 数据集的原始图像。右图:同一图像通过 AutoAugment 变换后。在这种情况下,通过剪切图像和反转像素颜色实现最佳变换。


在 CIFAR-10 和 ImageNet 上,AutoAugment 不使用剪切,因为这些数据集通常不包括剪切物体的图像,也不完全反转颜色,因为这些变换会导致图像失真。相反,AutoAugment 侧重于微调颜色和色相分布,同时保留一般颜色属性。这表明 CIFAR-10 和 ImageNet 中物体的实际颜色十分重要,而在 SVHN 上只有相对颜色是重要的。


左图:来自 ImageNet 数据集的原始图像。右图:同一图像通过 AutoAugment 策略变换后。首先最大化图像对比度,然后旋转图像。



成果

我们的 AutoAugment 算法为一些最著名的计算机视觉数据集找到了增强策略,将这些策略纳入神经网络的训练中后,准确性得到了质的提升。通过增强 ImageNet 数据,top1 准确度达到 83.54% 的最新水平,在 CIFAR10 上,我们的错误率为 1.48%,比研究员设计的默认数据增强降低了 0.83%。在 SVHN 上,我们将最新的误差从 1.30% 降到 1.02%。重要的是,我们发现 AutoAugment 策略是可转移的 - 为 ImageNet 数据集找到的策略也可以应用于其他视觉数据集(Stanford Cars、FGVC-Aircraft,等等),从而提高神经网络性能。


我们很高兴看到 AutoAugment 算法在竞争对手的许多不同计算机视觉数据集上都达到了这种性能水平,同时也期待这项技术未来在更多的计算机视觉任务,甚至在音频处理或语言模型等其他领域得到广泛应用。论文附录中 (https://arxiv.org/abs/1805.09501) 提供了可实现最佳性能的策略,研究人员可以使用这些策略来改进相关视觉任务的模型。


Be a Tensorflower


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/cdbYKa4VVD
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13917
 
515 次点击