谷歌研究:通过自动增强来提高深度学习性能
2018年06月05日 由 浅浅 发表
514201
0
计算机视觉深度学习的成功可部分归功于大量标记训练数据,随着质量提高,多样性和训练数据量,模型的性能通常会提高。但是,收集足够的高质量数据来训练模型以实现良好性能通常是非常困难的。解决这个问题的一种方法是将图像的对称性硬编码到神经网络体系结构中,这样它们就能更好地运行,或者让专家手动设计数据增强方法,比如旋转和翻转,这些方法通常用于训练表现良好的视觉模型。然而最近人们很少关注如何通过机器学习来自动增加现有的数据。在我们的自动化设计的结果中,我们设计了神经网络体系结构和优化器来取代以前的系统组件,我们是否也可以自动化数据扩增的过程?
在“AutoAugment: Learning Augmentation Policies from Data”一文中,我们探索了强化学习算法,它增加了现有训练数据集中数据的数量和多样性。直观地说,数据增强用于教导关于数据域中图像不变性的模型,其方式使得神经网络对这些重要的对称性不变,从而改善其性能。与以前手动设计数据增强策略的先进深度学习模型不同,我们使用强化学习从数据本身中找出最佳图像转换策略。这样做的结果是提高了计算机视觉模型的性能,而不依赖于新的、不断扩展的数据集。
增强训练数据
数据增强背后的想法很简单:图像具有许多对称性,不会更改图像呈现的信息。例如,狗的镜面反射仍然是狗。虽然其中一些“不变性”对人类来说是显而易见的,但更多是晦涩的。例如,混合方法通过在训练期间将图像置于彼此之上来增强数据,从而产生改善神经网络性能的数据。
左:来自ImageNet数据集的原始图像。
右:由常用的数据增强转换,水平翻转。
AutoAugment是以自动的方式为计算机视觉设计定制数据增强政策的数据集,例如,指导基本图像转换操作的选择,例如水平或垂直翻转图像,旋转图像,更改图像颜色等。AutoAugment不仅可以预测要合并的图像转换,还可以预测使用转换的每个图像的概率和大小,这样图像不总是以相同的方式操作。AutoAugment能够从2.9 x 1032图像转换可能性的搜索空间中选择最佳策略。
AutoAugment根据运行的数据集学习进行不同的转换。例如,对于涉及房屋号码街景的图像(SVHN),其中包括数字的自然场景图像,AutoAugment专注于剪切和平移等几何变换,这些变换代表了该数据集中常见的失真现象。此外,鉴于世界上不同的建筑和门牌号材料的多样性,AutoAugment已经学会完全反转原始SVHN数据集中的颜色。
左:来自SVHN数据集的原始图像。
右:自动增强。在这种情况下,最优变换是剪切图像和反转像素颜色。
在CIFAR-10和ImageNet上,AutoAugment不使用剪切,因为这些数据集通常不包含剪切对象的图像;也不会完全反转颜色,因为这些转换会导致不真实的图像。相反,AutoAugment的重点是稍微调整颜色和色调分布,同时保留一般的颜色属性。这表明CIFAR-10和ImageNet中对象的实际颜色很重要,而SVHN中只有相对颜色很重要。
左:来自ImageNet数据集的原始图像。
右:由自动增强策略改变。首先最大化图像对比度,之后旋转图像。
结果
我们的AutoAugment算法为一些最有名的计算机视觉数据集找到了增强策略,将其纳入到神经网络的训练中后,可以实现最高的精确度。通过增加ImageNet数据,我们获得了目前最高的精度83.54%,在CIFAR10上错误率为1.48%,这比科学家设计的默认数据增强提高了0.83%。在SVHN上,我们将最新的错误从1.30%减少到了1.02%。重要的是,AutoAugment策略被发现是可转移的,为ImageNet数据集找到的策略也可以应用于其他视觉数据集(斯坦福汽车,FGVC飞机等),从而改善神经网络性能。
我们很高兴看到AutoAugment算法在许多不同的竞争性计算机视觉数据集上实现了这样的性能水平,并期待在未来更多的计算机视觉任务中应用这种技术,甚至将它应用到其他领域(如音频处理或语言模型)。