最早显示数据增强有效性的演示来自简单的转换,如水平翻转、颜色空间增强和随机裁剪。 这些变换对前面讨论的许多不变性进行编码,这些不变性给图像识别任务带来了挑战。 本调查中列出的增强包括几何变换、颜色空间变换、核滤波器、混合图像、随机擦除、特征空间增强、对抗训练、基于GAN的增强、神经风格转移和元学习方案。 本节将解释每个增强算法的工作原理,报告实验结果,并讨论增强技术的缺点。
基于基本图像处理的数据增强 几何变换 本节介绍了基于几何变换和许多其他图像处理功能的不同增强。 下面讨论的增强类型的特点是易于实现。 理解这些转换将为进一步研究数据增强技术提供有用的基础。
我们还将从应用的“安全性”方面描述不同的几何增强。 数据增强方法的安全性是指其在转换后保留标签的可能性。 例如,旋转和翻转在ImageNet挑战中通常是安全的,例如猫对狗,但在数字识别任务中不安全,例如6对9。 非标签保留转换可能会增强模型输出响应的能力,表明它对其预测不自信。 然而,实现这一点需要改进标签[ 56 ]后增强。 如果非标签保留变换后的图像标签类似于[0.50.5],则该模型可以学习到更稳健的置信度预测。 然而,为每一个非安全数据增强构建精确的标签是一个计算昂贵的过程。
由于为增强后的数据构建精确标签的挑战,考虑增强的“安全性”非常重要。 这有点依赖于域,为开发通用的增强策略提供了挑战(请参阅AutoAugment[ 38 ]进一步探索寻找可推广的增强)。 没有任何图像处理功能不能在某种失真程度上导致标签更改变换。 这说明了增强的数据特定设计以及开发通用增强策略的挑战。 这是关于下列几何增强的一个重要考虑因素。
翻转 水平轴翻转比垂直轴翻转更常见。 此增强是最容易实现的增强之一,并且在CIFAR-10和ImageNet等数据集上证明非常有用。 在涉及文本识别的数据集(如MNIST或SVHN)上,这不是一个标签保护转换。
色空间 数字图像数据通常编码为尺寸张量(高度×宽度×彩色通道)。 在颜色通道空间中执行增强是另一种非常实用的策略。 非常简单的颜色增强包括隔离单个颜色通道,如R、G或B。通过隔离该矩阵并从其他颜色通道中添加2个零矩阵,可以将图像快速转换为一个颜色通道中的表示。 此外,可以使用简单的矩阵操作轻松地操纵RGB值,以增加或降低图像的亮度。 更高级的颜色增强来自于导出描述图像的颜色直方图。 更改这些直方图中的强度值会导致照明变化,例如照片编辑应用程序中使用的照明。
裁剪 裁剪图像可以作为高度和宽度维度混合的图像数据的实际处理步骤,方法是裁剪每个图像的中心块。 此外,还可以使用随机裁剪来提供与翻译非常相似的效果。 随机裁剪和平移之间的对比是,裁剪将减小输入的大小,例如(256256)→(224,224),而平移保留图像的空间维度。 根据为种植选择的减少阈值,这可能不是一种标签保护转换。
旋转 旋转增强是通过在1°和359°之间的轴上向右或向左旋转图像来完成的。 旋转度参数在很大程度上决定了旋转增强的安全性。 在数字识别任务(如MNIST)中,如1到20或−1到−20之间的轻微旋转可能很有用,但随着旋转度的增加,数据的标签在转换后不再保留。
翻译 向左、向右、向上或向下移动图像是一种非常有用的变换,可以避免数据中的位置偏移。 例如,如果一个数据集中的所有图像都是居中的,这在人脸识别数据集中很常见,这就需要在完全居中的图像上测试模型。 当原始图像沿某个方向平移时,剩余的空间可以用常数(如0 s或255 s)填充,也可以用随机或高斯噪声填充。 此填充保留图像后增强的空间维度。
噪声注入 噪声注入包括注入通常从高斯分布中提取的随机值矩阵。 Moreno-Beare等人对噪声注入进行了测试[ 57 ]在UCI存储库的九个数据集上[ 58 ]. 向图像中添加噪声可以帮助CNN学习更健壮的特征。
对于训练数据中存在的位置偏差,几何变换是非常好的解决方案。 有许多潜在的偏差来源,可能会将训练数据的分布与测试数据分开。 如果存在位置偏差,例如在人脸识别数据集中,每个人脸都在框架中完美居中,那么几何变换是一个很好的解决方案。 除了克服位置偏差的强大能力外,几何变换也很有用,因为它们很容易实现。 有许多图像处理库可以使水平翻转和旋转等操作轻松开始。 几何变换的一些缺点包括额外的内存、变换计算成本和额外的训练时间。 必须手动观察一些几何变换,如平移或随机裁剪,以确保它们没有改变图像的标签。 最后,在包括医学图像分析在内的许多应用领域中,使训练数据与测试数据保持距离的偏差比位置和平移方差更为复杂。 因此,几何变换可以在何时何地应用的范围相对有限。
颜色空间变换 图像数据被编码成3个堆叠矩阵,每个矩阵的大小为高×宽。 这些矩阵表示单个RGB颜色值的像素值。 照明偏差是图像识别问题中最常见的挑战之一。 因此,颜色空间变换(也称为光度变换)的有效性概念化相当直观。 快速修复过亮或过暗图像的方法是在图像中循环,并按恒定值减少或增加像素值。 另一种快速的颜色空间操作是拼接出单个RGB颜色矩阵。 另一种变换是将像素值限制为某个最小值或最大值。 数字图像中颜色的内在表示有助于许多增强策略。
颜色空间变换也可以从图像编辑应用程序中派生出来。 每个RGB颜色通道中的图像像素值被聚合以形成颜色直方图。 可以操纵此直方图以应用过滤器来更改图像的颜色空间特征。
通过色彩空间的增强,创意有很大的自由度。 改变图像的颜色分布可以很好地解决测试数据面临的照明挑战(图 三 , 4 ).
通过将RGB矩阵转换为单个灰度图像,可以简化图像数据集的表示。 这会产生更小的图像,高×宽×1,从而加快计算速度。 然而,这已被证明会降低性能精度。 Chatifled等人[ 59 ]通过在ImageNet上的实验,发现灰度和RGB图像之间的分类精度下降了约3%[ 12 ]和PASCAL[ 60 ]VOC数据集。 除了RGB与灰度图像,还有许多其他表示数字颜色的方法,如HSV(色调、饱和度和值)。 Jurio等人[ 61 ]探索图像分割在从RGB到YUV、CMY和HSV的许多不同颜色空间表示上的性能。
与几何变换类似,颜色空间变换的缺点是增加了内存、变换成本和训练时间。 此外,颜色转换可能会丢弃重要的颜色信息,因此并不总是标签保护转换。 例如,当减小图像的像素值以模拟较暗的环境时,可能无法看到图像中的对象。 另一个非标签保存颜色转换的间接例子是图像情感分析[ 62 ]. 在此应用程序中,CNN尝试直观地预测图像的情绪得分,例如:高度负面、消极、中性、积极或高度积极。 阴性/高度阴性图像的一个指标是有血。 血的深红色是区分血与水或油漆的关键成分。 如果颜色空间变换反复改变颜色空间,使模型无法识别绿色油漆中的红色血液,则模型在图像情感分析中的表现将很差。 实际上,颜色空间转换将消除数据集中存在的颜色偏差,从而有利于空间特征。 然而,对于一些任务来说,颜色是一个非常重要的独特特征。
几何变换与光度变换 Taylor和Nitschke[ 63 ]对几何变换和光度(颜色空间)变换的有效性进行了比较研究。 研究的几何变换包括翻转、−30°至30°旋转和裁剪。 研究的颜色空间变换包括颜色抖动、(随机颜色操作)、边缘增强和PCA。 他们在Caltech101数据集上对这些增强进行了4倍交叉验证,筛选出8421张256×256的图像(表 1 ).
表1加州理工学院101的Taylor和Nitschke数据增强实验结果[ 63 ]
内核过滤器 核滤波器是图像处理中一种非常流行的锐化和模糊图像的技术。 这些过滤器通过滑动 n个 × n个 使用高斯模糊过滤器或高对比度垂直或水平边缘过滤器对图像进行矩阵处理,从而使图像更加模糊。 直观地说,用于数据增强的模糊图像可能会导致在测试期间对运动模糊有更高的抵抗力。 此外,为数据增强而锐化图像可能会导致封装有关感兴趣对象的更多细节。
锐化和模糊是将核过滤器应用于图像的一些经典方法。 Kang等人[ 64 ]使用一个独特的内核过滤器进行实验,该过滤器在 n个 × n个 滑动窗。 他们称这种增强技术为补丁洗牌规则化。 通过在不同的过滤器大小和每一步对像素进行洗牌的概率进行实验,他们在CIFAR-10上实现了5.66%的错误率,而在不使用PatchShuffle Regularization的情况下实现了6.33%的错误率。 实现此目的的超参数设置包括2×2个过滤器和0.05的交换概率。 这些实验是使用ResNet完成的[ 三 ]CNN架构(图 5 , 6 ).
内核过滤器对于数据增强来说是一个相对未被探索的领域。 这种技术的一个缺点是,它与CNN的内部机制非常相似。 CNN具有参数化内核,可以学习逐层表示图像的最佳方法。 例如,PatchShuffle Regularization之类的功能可以通过卷积层实现。 这可以通过修改标准卷积层参数来实现,使填充参数保持空间分辨率,而后续激活层将像素值保持在0到255之间,这与将像素映射到0到1之间的值的sigmoid激活不同。 因此,内核过滤器可以更好地实现为网络层,而不是通过数据增强添加到数据集。
混合图像 通过平均像素值将图像混合在一起是一种非常违反直觉的数据增强方法。 这样做产生的图像对于人类观察者来说并不是一个有用的转换。 然而,Ionue[ 65 ]演示了如何将样本配对发展为有效的增强策略。 在本实验中,将两幅图像从256×256随机裁剪到224×224,并随机水平翻转。 然后通过平均每个RGB通道的像素值来混合这些图像。 这导致了用于训练分类模型的混合图像。 分配给新图像的标签与第一个随机选择的图像相同(图 7 ).
在CIFAR-10数据集上,Ionue报告称,使用SamplePairing Data Augmentation技术时,错误率从8.22降低到6.93%。 研究人员发现,在测试一个缩小的数据集时,效果更好,将CIFAR-10的总样本减少到1000个,每个类100个。 通过减小数据集的大小,SamplePairing将错误率从43.1%降低到31.0%。 减少的CIFAR-10结果证明了SamplePairing技术在有限的数据应用中的有用性(图 8 ).
研究中发现的另一个细节是,混合来自整个训练集的图像,而不是来自完全属于同一类的实例,可以获得更好的结果。 从大小为N的训练集开始,SamplePairing生成大小为N 2 + N.此外,样本配对可以叠加在其他增强技术之上。 例如,如果使用Krizhevsky等人在AlexNet论文中演示的增强[ 1 ],2048×数据集增加可以进一步扩展到(2048×N) 2 .
Summers和Dinneen进一步研究了以非直观方式混合图像的概念[ 66 ]. 他们研究了如何使用非线性方法将图像组合到新的训练实例中。 与基线模型相比,他们使用的所有方法都产生了更好的性能(图 9 ).
在测试的这些非线性增强中,最佳技术使CIFAR-10的误差从5.4%降至3.8%,CIFAR-100的误差从23.6%降至19.7%。 以同样的方式,Liang等人[ 67 ]使用GANs生成混合图像。 他们发现,在训练数据中包含混合图像减少了训练时间,增加了GAN样本的多样性。 高桥和松原[ 68 ]尝试另一种混合图像的方法,即随机裁剪图像并将裁剪的图像连接在一起以形成新图像,如下所示。 他们的技术结果,以及样本配对和混合增强,证明了大数据与深度学习模型有时具有不合理的有效性(图 10 ).
这种技术的一个明显缺点是,从人类的角度来看,它几乎没有意义。 混合图像的性能提升很难理解或解释。 对此的一种可能解释是,数据集大小的增加导致了低级特征(如线和边)的更健壮表示。 在与转移学习和预训练方法的比较中测试这种方法的性能是未来工作的一个有趣领域。转移学习和预先训练是学习CNN中低级特征的其他技术。 此外,如果我们对训练数据进行分区,使前100个时间段使用原始图像和混合图像进行训练,而最后50个时间段仅使用原始图像,那么可以看到性能如何变化。 这些策略将在与课程学习相关的数据增强设计考虑中进一步讨论[ 69 ]. 此外,本文还将介绍Lemley等人开发的元学习技术[ 37 ]它使用神经网络来学习图像的最佳混合。
随机擦除 随机擦除[ 70 ]是Zhong等人开发的另一种有趣的数据增强技术。受丢失正则化机制的启发,随机擦除可以被视为类似于丢失,除了在输入数据空间中,而不是嵌入到网络结构中。 这项技术是专门设计用来应对遮挡带来的图像识别挑战的。 遮挡是指物体的某些部分不清楚。 随机擦除将通过强制模型学习有关图像的更多描述性特征来阻止这种情况的发生,从而防止其过度拟合图像中的某个视觉特征。 特别是,除了遮挡的视觉挑战之外,随机擦除是一种很有前途的技术,可以保证网络关注整个图像,而不仅仅是其中的一个子集。
随机擦除的工作原理是随机选择图像的n×m补丁,并用0秒、255秒、平均像素值或随机值对其进行掩蔽。 在CIFAR-10数据集上,这导致错误率从5.17降低到4.31%。 最佳补片方法为随机值。 填充方法和掩码的大小是实现过程中需要手工设计的唯一参数(图 11 , 12 ).
随机擦除是一种数据增强方法,旨在通过改变输入空间直接防止过拟合。 通过删除某些输入补丁,模型被迫找到其他描述性特征。 这种增强方法也可以叠加在其他增强技术(如水平翻转或颜色过滤器)之上。 随机擦除在CIFAR-10数据集上产生了最高的精确度。 德弗里斯和泰勒[ 71 ]进行了一项名为Cutout Regularization的类似研究。 与随机擦除研究一样,他们对图像的随机掩蔽区域进行了试验(表 2 ).
表2断流正则化结果[ 104 ],plus表示使用传统的增强方法、水平翻转和裁剪
Mikolajcyzk和Grochowski[ 72 ]提出了一个有趣的想法,将随机擦除与用于图像修复的GAN相结合。 图像修复描述了填充图像中缺失部分的任务。 使用不同的GAN修复器集合,随机擦除增强可以产生非常有趣的推断。 看看擦除不同形状的补丁(如圆圈)是否能取得更好的效果,这将是一件有趣的事情 n个 × 米 矩形。 该方法的一个扩展是参数化随机擦除补丁的几何结构,并学习最佳擦除配置。
随机擦除的一个缺点是,它并不总是一个标签保护转换。 在手写数字识别中,如果“8”的顶部随机裁剪出来,它与“6”没有任何不同。 在许多细粒度任务中,如斯坦福汽车数据集[ 73 ],随机删除图像的部分(徽标等)可能会使汽车品牌无法识别。 因此,根据数据集和任务,可能需要进行一些手动干预。
关于组合增强的注记 在所讨论的增强、几何变换、颜色空间变换、内核滤波器、混合图像和随机擦除中,几乎所有这些变换都带有相关的失真幅度参数。 此参数对45°旋转和30°旋转之间的畸变差异进行编码。 有了大量潜在的增强列表和一个基本上连续的量级空间,很容易将增强搜索空间的巨大规模概念化。 合并诸如裁剪、翻转、颜色偏移和随机擦除等增强操作可能会导致数据集大小大幅膨胀。 然而,这并不能保证是有利的。 在数据非常有限的域中,这可能会导致进一步的过拟合。 因此,重要的是要考虑搜索算法,以获得用于训练深度学习模型的最佳扩充数据子集。 关于这个主题的更多信息将在数据增强的设计考虑中讨论。
基于深度学习的数据增强 要素空间增强 上面讨论的所有增强方法都应用于输入空间中的图像。 神经网络在将高维输入映射为低维表示方面具有难以置信的强大功能。 这些网络可以将图像映射到二进制类或 n个 扁平层中的×1矢量。 可以操纵神经网络的顺序处理,以便将中间表示从整个网络中分离出来。 可以提取和隔离全连接层中图像数据的低维表示。 Konno和Iwazume[ 74 ]通过操纵神经网络的模块性来隔离和优化训练后的各个层,可以将CIFAR-100的性能从66%提高到73%。 CNN高层中的低维表示称为特征空间。 德弗里斯和泰勒[ 75 ]提出了一篇有趣的论文,讨论了在这个特征空间中的增强。 这为数据增强的许多矢量操作提供了机会。
SMOTE是一种流行的增强功能,用于缓解阶级不平衡问题。 通过连接 k个 最近的邻居以形成新实例。 DeVries和Taylor讨论了添加噪声、插值和外推作为特征空间增强的常见形式(图 13 , 14 ).
自动编码器的使用对于对数据执行特征空间增强特别有用。 自动编码器的工作原理是让一半网络(编码器)将图像映射为低维矢量表示,以便另一半网络(解码器)可以将这些矢量重新构建为原始图像。 该编码表示用于特征空间扩充。
德弗里斯和泰勒[ 75 ]通过在每个样本的3个最近邻域之间进行外推来生成新数据,并将其结果与输入空间中的外推以及在输入空间中使用仿射变换进行比较,测试了他们的特征空间增强技术(表 三 ).
表3 MNIST和CIFAR-10上特征与输入空间外推的实验性能结果[ 75 ]
如果需要将新实例重新构建回输入空间,可以使用自动编码器实现特征空间增强。 也可以仅通过从CNN中分离向量表示来进行特征空间增强。 这是通过切断网络的输出层来实现的,这样输出是一个低维向量,而不是类标签。 然后通过训练一个CNN,然后通过截断的CNN传递训练集来找到向量表示。 这些向量表示可用于从朴素贝叶斯(Naive Bayes)、支持向量机(Support vector machine)或返回到全连接多层网络的任何机器学习模型的训练。该技术的有效性是未来工作的主题。
特征空间增强的一个缺点是很难解释矢量数据。 可以使用自动编码器网络将新矢量恢复为图像; 然而,这需要复制正在训练的CNN的整个编码部分。 对于深度CNN,这将导致大量的自动编码器,而这些编码器的训练非常困难且耗时。 最后,Wong等人[ 76 ]发现当可以在数据空间中变换图像时,数据空间增强将优于特征空间增强。
对抗训练 搜索可能的增强空间的解决方案之一是对抗性训练。 对抗性训练是一种使用两个或多个网络的框架,其损失函数中编码有对比目标。 本节将讨论使用对抗训练作为搜索算法以及对抗攻击现象。 对抗性攻击由一个对手网络组成,该网络学习对图像的增强,从而导致对手分类网络中的错误分类。从对手网络的角度来看,这些仅限于噪声注入的对抗性攻击取得了惊人的成功。 这令人惊讶,因为它完全违背了这些模型如何表示图像的直觉。 对抗性攻击表明,图像的表示远不如预期的健壮。 Moosavi-Dezfuli等人很好地证明了这一点[ 77 ]使用DeepFool,这是一个网络,它可以找到导致错误分类所需的最小可能噪声注入。 Su等人[ 78 ]结果表明,仅改变一个像素,70.97%的图像就会被误分类。 Zajac等人[ 79 ]使用仅限于图像边界的对抗性攻击导致错误分类。 随着图像分辨率的提高,对抗性攻击的成功尤其被夸大了。
对手攻击可以是有针对性的也可以是无针对性的,这是指对手网络试图造成错误分类的考虑。 与标准分类度量相比,对手攻击可以更好地说明弱决策边界。
除了作为评估指标,防御对抗性攻击外,对抗性训练还可以是搜索增强的有效方法。
通过限制对手网络可用的增强和失真集,它可以学习生成导致错误分类的增强,从而形成有效的搜索算法。 这些增强对于加强分类模型中的弱点很有价值。 因此,对抗训练可以成为一种有效的数据增强搜索技术。 这与前面描述的传统增强技术形成了强烈对比。 对抗性增强可能不代表测试集中可能出现的示例,但它们可以改善学习决策边界中的弱点。
Engstrom等人[ 80 ]研究表明,旋转和平移等简单变换很容易导致深层CNN模型的错误分类。 最糟糕的随机转换将MNIST的准确性降低了26%,CIFAR10降低了72%,ImageNet(排名前1)降低了28%。 Goodfellow等人[ 81 ]生成对抗性示例以提高MNIST分类任务的性能。 使用一种称为“快速梯度符号法”(maxout network)的技术生成对抗性示例[ 82 ]89.4%的对抗性例子被错误分类,平均置信度为97.6%。 此测试是在MNIST数据集上进行的。 通过对抗训练,对抗性示例的错误率从89.4%下降到17.9%(图 15 ).
Li等人[ 83 ]用一种新的对抗训练方法进行实验,并在原始测试数据和对抗实例上比较性能。 下面显示的结果显示了在训练过程中预测对手攻击会如何显著降低攻击的成功率。
如表所示 4 实验中的对抗训练并没有提高测试的准确性。 然而,它确实显著提高了对抗性示例的测试准确性。 对抗性防御是评估深度学习模型的安全性和健壮性的一个非常有趣的主题。 改进快速梯度符号法,DeepFool,由Moosavi-Dezfouli等人开发[ 77 ],使用神经网络找出可能导致错误分类的最小噪声扰动。
表4显示对抗训练影响的测试精度,clean指原始测试数据,FGSM指快速梯度符号法得出的对抗示例,PGD指投影梯度下降得出的对抗实例[ 83 ]
另一个有趣的框架可以在对抗训练环境中使用,即让对手更改训练数据的标签。 Xie等人[ 84 ]介绍了DisturbLabel,一种在每次迭代时随机替换标签的正则化技术。 这是一个向损失层添加噪声的罕见示例,而讨论的大多数其他增强方法都会向输入层或隐藏表示层添加噪声。 基于LeNet的MNIST数据集[ 28 ]CNN架构DisturbLabel产生了0.32%的错误率,而基线错误率为0.39%。 与0.39%的基线相比,DisturbLabel与Dropout Regularization相结合产生了0.28%的错误率。 为了将其转化为对抗训练的上下文,一个网络将分类器的训练数据作为输入,并学习要翻转哪些标签,以最大化分类网络的错误率。
以噪声或增强搜索形式进行对抗训练的有效性仍然是一个相对较新的概念,尚未得到广泛的测试和理解。 对抗性搜索添加噪声可以提高对抗性示例的性能,但尚不清楚这是否有助于减少过拟合。 未来的工作旨在扩展对抗性攻击的抵抗力与测试数据集的实际性能之间的关系。
基于GAN的数据增强 数据增强的另一个令人兴奋的策略是生成建模。 生成性建模是指从数据集中创建人工实例的实践,以便它们保留与原始集相似的特征。 上述对抗性训练的原则产生了一种非常有趣且广受欢迎的生成性建模框架,称为GAN。 Bowles等人[ 85 ]将GAN描述为从数据集中“解锁”附加信息的一种方式。 GAN并不是唯一存在的生成性建模技术; 然而,它们在计算速度和结果质量方面显著领先。
另一个值得一提的生成建模的有用策略是变分自动编码器。 GAN框架可以扩展以提高使用可变自动编码器生成的样本的质量[ 86 ]. 可变自动编码器学习数据点的低维表示。 在图像域中,这转换了大小为的图像张量 高度 × 宽度 × 颜色 将通道向下转换为大小向量 n个 ×1,与关于特征空间增强的讨论内容相同。 向量表示中的低维约束将导致较差的表示,尽管这些约束更适合使用t-SNE等方法进行可视化[ 87 ]. 想象一下由自动编码器创建的大小为5×1的矢量表示。 这些自动编码器可以接收标记数据的分布并将其映射到该空间。 这些类可以包括“头部向左”、“头部居中”和“头部向右”。 自动编码器学习这些数据点的低维表示,以便可以使用加减等矢量操作来模拟新实例的前视图三维旋转。 通过将可变自动编码器的输出输入到GAN中,可以进一步提高其输出[ 31 ]. 此外,通过使用双向GAN,可以对GAN的噪声矢量输入进行类似的矢量操作过程[ 88 ].
GAN令人印象深刻的性能使人们更加关注如何将其应用于数据增强任务。 这些网络能够生成新的训练数据,从而产生性能更好的分类模型。 由Ian Goodfellow首次提出的GAN架构[ 31 ]是通过对抗性训练进行生成建模的框架。 了解GAN最好的轶事是将警察和造假者进行类比。 造假者(发电机网络)接受某种形式的输入。 这可以是一个随机向量、另一个图像、文本等。 造假者学会了赚钱,以至于警察(鉴别器网络)无法辨别钱是真的还是假的。 真实或虚假的二分法类似于生成的实例是来自训练集还是由生成器网络创建的(图 16 ).
伪造者与盗贼的类比是在网络入侵检测背景下理解GAN的无缝桥梁。 Lin等人[ 89 ]使用发电机网络学习如何愚弄黑盒检测系统。 这突出了GANs最有趣的特征之一。 源自博弈论的分析工具,如极小极大策略和纳什均衡[ 90 ]建议生成器最终愚弄鉴别器。 生成器在克服鉴别器方面的成功使其在生成建模方面非常强大。 GAN是用于数据增强的最有前途的生成性建模技术。
一般的GAN架构在生成器和鉴别器网络中使用多层感知器网络。 这能够在简单的图像数据集(例如MNIST手写数字)上生成可接受的图像。 然而,对于更高分辨率、更复杂的数据集,它无法产生高质量的结果。 在MNIST数据集中,每个图像只有28×28×1,总共784个像素。 应用于MNIST数据的GAN能够产生令人信服的结果。 然而,由于类内方差和分辨率较低,MNIST图像比其他图像数据集的挑战性要小得多,举几个不同的例子。 这与大多数学术性计算机视觉论文(如ImageNet或CIFAR-10)中研究的其他数据集形成了强烈对比。 为了便于即时参考,ImageNet图像的分辨率为256×256×3,总计196608个像素,与MNIST相比,像素数增加了250倍。
已经发表了许多研究论文,通过不同的网络架构、损失函数、进化方法等来修改GAN框架。 这项研究显著提高了GAN创建的样本的质量。 为了扩展GAN的概念并生成更高分辨率的输出图像,已经提出了许多新的架构,其中许多超出了本文的范围。 在这些新体系结构中,DCGAN、渐进生长GAN、CycleGAN和条件GAN似乎在数据增强中具有最大的应用潜力。
DCGAN[ 91 ]提出了一种结构来扩展生成器和鉴别器网络的内部复杂性。 该架构将细胞神经网络用于生成器和鉴别器网络,而不是多层感知器。 对DCGAN进行测试,以在LSUN室内卧室图像数据集上生成结果,每张图像为64×64×3,总共12288个像素(相比之下,MNIST中为784个)。 DCGAN背后的想法是增加生成器网络的复杂性,将输入投影到高维张量中,然后添加反褶积层,从投影张量到输出图像。 这些反褶积层将在空间维度上扩展,例如,从14×14×6扩展到28×28×1,而卷积层将降低空间维度,例如从14×14x32扩展到7×7×1 64.DCGAN体系结构提出了一种在GAN框架中使用卷积层生成更高分辨率图像的策略(图 17 , 18 ).
Frid-Adar等人[ 49 ]测试了使用DCGAN生成肝脏病变医学图像的有效性。 他们使用上图的结构生成64×64×1大小的肝脏病变CT扫描图像。 他们的原始数据集包含182个CT扫描(53个囊肿、64个转移瘤和65个血管瘤)。 在使用经典扩增技术获得78.6%的敏感性和88.4%的特异性后,他们观察到,一旦添加DCGAN生成的样本,敏感性和特异性分别增加到85.7%和92.4%。
另一种有趣的架构称为渐进式成长型GAN[ 34 ]. 该体系结构训练了一系列具有渐进分辨率复杂性的网络。 这些分辨率范围从4×4到8×8,以此类推,直到实现1024×1024的输出。 这是建立在GAN可以接受图像作为输入以及随机向量的概念上的。 因此,该系列GAN的工作原理是将低分辨率GAN的样本传递给高分辨率GAN。 这在面部图像上产生了非常惊人的结果。
除了提高GAN的分辨率大小之外,另一种提高输出质量的有趣架构是CycleGAN[ 92 ]CycleGAN引入了一个附加的Cycle-Consistency损失函数来帮助稳定GAN训练。 这适用于图像到图像的转换。 神经风格转换[ 32 ],在下面的部分中进一步讨论,学习单个图像到单个图像的翻译。 然而,CycleGAN学会了从一个图像域转换到另一个域,例如从马到斑马。 这是通过向前和向后一致性丢失功能实现的。 如前所述,生成器将马的图像输入,并学习将它们映射到斑马,这样鉴别器就无法判断它们是否是斑马集合的一部分。 在此之后,从马图像生成的斑马将通过一个网络传递,该网络将它们转换回马。 第二个鉴别器确定这个重新翻译的图像是否属于马集。 将这两种鉴别器损失合并,形成循环一致性损失。
Zhu等人对CycleGANs的使用进行了测试[ 93 ]在情感分类任务中。 使用情感识别数据集FER2013[ 94 ],面部表情识别数据库,他们建立了一个CNN分类器来识别7种不同的情绪:愤怒、厌恶、恐惧、快乐、悲伤、惊讶和中性。 这些类是不平衡的,CycleGAN被用作智能过采样的方法。
CycleGANs学会了域之间的非成对图像到图像转换。 这个问题中的域的一个例子是中性到令人厌恶。 CycleGAN学习将代表中性图像的图像转换为代表厌恶情绪的图像(图 19 , 20 ).
使用CycleGANs将其他7个类的图像转换为少数类,对于提高CNN模型在情感识别方面的性能非常有效。 采用这些技术,准确率提高了5-10%。 为了进一步了解添加GAN生成的实例的有效性,使用了t-SNE可视化。 t-SNE公司[ 87 ]是一种可视化技术,它学习将高维向量映射到低维空间,以便于可视化决策边界(图 21 ).
用于数据增强的另一个有趣的GAN架构是条件GAN[ 95 ]. 条件GAN将条件向量添加到生成器和鉴别器中,以缓解模式崩溃的问题。 除了输入随机向量 z(z) 到生成器,条件GAN也输入 年 向量,它可能类似于一个热编码的类标签,例如[0 0 0 1 0]。 这个类标签针对生成器和鉴别器的特定类(图 22 ).
Lucic等人[ 96 ]试图比较新开发的GAN损失函数。 他们进行了一系列测试,确定大多数损失函数可以通过足够的超参数优化和随机重启达到类似的分数。 这表明,与生成器与鉴别器损失函数中的算法更改相比,增加的计算能力是一个更有希望的关注领域。
将GAN应用于数据增强并报告由此产生的分类性能的大部分研究都是在生物医学图像分析中进行的[ 39 ]. 这些论文展示了改进的分类边界,这些边界是通过使用来自GAN模型的真实数据和生成数据进行训练得到的。 此外,一些论文通过可视化图灵测试来衡量GAN输出的质量。 在这些测试中,该研究要求两位专家在医学图像任务中区分真实图像和人造图像,例如皮肤病变分类和肝癌检测。 表 5 结果显示,第一和第二位专家只能正确地将62.5%和58.6%的GAN生成的肝脏病变图像标记为假图像。 将图像标记为伪图像是指其来源于生成器,而不是实际的肝脏病变图像(表 6 ; 图 23 ).
表5 Frid-Adar等人对DCGAN生成的肝脏病变图像进行的“视觉图灵测试”结果[ 139 ]
表6不同DCGAN和WGAN的“视觉图灵测试”结果[ 104 ]-生成的脑肿瘤MR图像由Han等人提供[ 140 ]
GAN样本可以作为一种过采样技术来解决类不平衡问题。 Lim等人[ 97 ]显示如何使用GAN样本进行无监督异常检测。 通过对概率较小的罕见正常样本进行过采样,GAN能够降低异常检测的假阳性率。 他们使用Makhzani等人提出的对手自动编码器框架来实现这一点[ 98 ](图 24 ).
尽管GAN的潜力令人兴奋,但要从当前的尖端架构中获得高分辨率输出是非常困难的。 增加生成器生成的图像的输出大小可能会导致训练不稳定和不收敛。 GAN的另一个缺点是,它们需要大量数据进行训练。 因此,根据初始数据集的限制程度,GAN可能不是一个实用的解决方案。 Salimans等人[ 99 ]提供培训GAN的问题的更完整描述。
神经风格转换 神经风格转换[ 32 ]是深度学习能力最耀眼的展示之一。 总体思路是操作CNN中创建的图像的表示。 神经风格转换(Neural Style Transfer)可能因其艺术应用而广为人知,但它也是数据增强的一个很好的工具。 该算法通过操作CNN上的顺序表示,使一幅图像的样式可以转换为另一幅图像,同时保留其原始内容。 Li等人对支持神经风格转换的gram矩阵运算进行了更详细的解释[ 100 ](图 25 ).
重要的是,还要认识到Gatys等人提出的原始算法的进步,即快速风格转换[ 35 ]. 该算法将损失函数从每像素损失扩展到感知损失,并使用前馈网络对图像进行风格化。 这种感知损失是通过使用另一个预处理网络来解释的。 在超分辨率应用中,感知损失超过像素损失的应用也显示出巨大的前景[ 101 ]以及风格转换。 这种损失函数增强使样式转换运行得更快,增加了对实际应用程序的兴趣。 此外,Ulyanov等人[ 102 ]发现将批规范化替换为实例规范化可以显著改进快速样式化(图 26 ).
出于数据增强的目的,这有点类似于颜色空间照明变换。 神经风格转换扩展了照明变化,并支持不同纹理和艺术风格的编码。 这使得数据增强的实践者在通过神经风格传输获得新图像时,需要决定从哪些风格中进行采样。
选择要采样的样式可能是一项具有挑战性的任务。 对于自动驾驶汽车等应用程序,可以很直观地将训练数据转换为夜间到夏季或雨天到晴天的范围。 然而,在其他应用程序域中,要转换到的样式集并不那么明显。 为了便于实现,可以通过选择一组 k个 样式并将其应用于训练集中的所有图像。 风格增强工作[ 103 ],通过从79433幅艺术图像的分布中随机派生样式,避免将新形式的样式偏差引入数据集。 在从模拟环境到真实世界的过渡过程中,测试了训练数据中的传输方式。 这对于使用强化学习的机器人操作任务非常有用,因为在现实世界中进行训练时可能会损坏硬件。 在物理模拟训练和实际应用中,许多约束(如低分辨率相机)导致这些模型的泛化能力较差。
Tobin等人[ 104 ]探索在训练模拟中使用不同风格的有效性,并在真实世界中实现目标定位任务的1.5cm精度。 他们的实验将要在模拟中检测到的物体的位置和纹理以及背景中的纹理、照明、灯光数量和随机噪声随机化。 他们发现,如果训练数据风格具有足够的可变性,那么现实世界只是模型的另一种变体。 有趣的是,他们发现风格的多样性比在尽可能逼真的环境中进行模拟更有效。 这与Shrivastava等人的工作形成了对比[ 105 ]使用GAN使模拟数据尽可能真实(图 27 ).
使用模拟数据建立计算机视觉模型已经得到了大量研究。 这方面的一个例子来自Richter等人[ 106 ]. 他们使用现代开放式游戏(如《侠盗猎车手》)中的计算机图形来生成语义分割数据集。 作者强调了构建这些像素级数据集所需的手动注释成本的轶事。 他们提到了CamVid数据集[ 107 ]每个图像需要60分钟才能手动注释,Cityscapes数据集[ 108 ]每张图像需要90分钟。 这种高人力和时间成本激励了合成数据集的使用和开发。 神经风格转换是一种提高模拟数据集泛化能力的非常有趣的策略。
神经风格传输数据增强的一个缺点是需要努力选择将图像传输到的风格。 如果样式集太小,可能会在数据集中引入更多偏差。 试图复制Tobin等人的实验[ 104 ]将需要大量的额外存储器和计算来变换和存储来自每个图像的79433个新图像。 Gatys等人提出的原始算法[ 32 ]运行时间很慢,因此不适用于数据增强。 约翰逊等人开发的算法[ 35 ]速度要快得多,但限制了向预先训练的一系列风格的转移。
元学习数据增强 深度学习研究中的元学习概念通常是指用神经网络优化神经网络的概念。 自NAS发布以来,这种方法变得非常流行[ 33 ]来自佐夫和勒。 Real等人[ 109 , 110 ]还展示了进化算法在架构搜索中的有效性。 Salimans等人[ 111 ]直接比较进化策略和强化学习。 强化学习的另一个有趣的替代方法是简单的随机搜索[ 112 ]. 利用进化和随机搜索算法是未来工作的一个有趣领域,但本次调查中回顾的元学习方案都是基于梯度的神经网络。
SIFT等特征工程的深度学习发展历史[ 113 ]和HOG[ 114 ]架构设计,如AlexNet[ 1 ]、VGGNet[ 2 ],和Inception-V3[ 4 ],建议元架构设计是下一个范式转变。 NAS采用了一种新的元学习体系结构方法,通过使用经过强化学习训练的循环网络来设计具有最佳准确性的体系结构。 在CIFAR-10数据集上,这实现了3.65的错误率(图 28 ).
本节将介绍三个使用元学习进行数据增强的实验。 这些方法使用预处理的神经网络通过混合图像、神经风格转换和几何变换学习数据增强。
神经增强 神经风格传递算法需要两个参数来表示风格和内容损失的权重。 佩雷斯和王[ 36 ]提出了一种用于元学习的神经风格转换策略算法,称为神经增强。 神经增强方法从同一类中提取两个随机图像。 预加的增强网络通过5层CNN将其映射为新图像,每层有16个通道、3×3个过滤器和ReLU激活功能。 然后,通过神经风格转换将从增强输出的图像与另一个随机图像进行转换。 这种类型的传输通过CycleGAN执行[ 92 ]GAN的扩展[ 31 ]然后将这些图像输入到分类模型中,并将来自分类模型的误差反向传播以更新神经增强网络。 神经增强网络使用此错误来学习不同图像之间内容和样式图像的最佳权重以及CNN中图像之间的映射(图 29 ).
Perez和Wang在MNIST和Tiny-imagenet-200数据集上测试了他们的算法,以进行二进制分类任务,例如猫与狗的比较。 Tiny-imagenet-200数据集用于模拟有限的数据。 Tiny-imagenet-200数据集在每个类中仅包含500个图像,其中100个用于验证。 此问题将此数据集限制为2个类。 因此,只有800张图像用于训练。 Tiny-imagenet-200图像中的每个图像都是64×64×3,MNIST图像是28×28×1。实验比较了它们提出的神经增强[ 36 ]采用传统的增强技术(如裁剪和旋转),以及采用预先确定的一组风格(如夜间/白天和冬季/夏季)的风格转换方法。
传统的基线研究通过从一组图像中选择一个增强图像来变换图像(移位、放大/缩小、旋转、翻转、扭曲或着色)。 重复此操作以将数据集大小从N增加到2 N。 GAN风格的传输基线使用6种不同的风格转换图像(塞尚、增强、莫奈、浮世绘、梵高和温特)。 测试的神经增强技术由基于增强网络损失函数设计的三个层次组成(内容损失、通过gram矩阵的风格损失和该层的无损失计算机)。 所有实验均使用由3个卷积层组成的卷积网络进行测试,每个卷积层随后是最大池和批归一化,然后是2个完全连接的层。 利用Adam优化技术,每个实验以0.0001的学习率运行40个小时(表 7 ).
实验结果很有希望。 神经增强技术在狗与金鱼的研究中表现明显更好,在狗与猫的研究中仅稍差。 该技术对MNIST问题没有任何影响。 本文建议,可能的最佳策略是将传统增强和神经增强相结合。
智能增强 智能增强[ 37 ]该方法利用了与上述神经增强技术类似的概念。 然而,图像的组合完全是从预先准备好的CNN的学习参数中派生出来的,而不是使用神经风格转换算法。
智能增强是元学习增强的另一种方法。 这是通过两个网络实现的, 网络 - A类 和 网络 - B类 . 网络 - A类 是一个增强网络,它接收两个或多个输入图像,并将其映射为新图像或图像以进行训练 网络 - B类 中错误率的变化 网络 - B类 然后反向传播以进行更新 网络 - A类 。此外,还将另一损失函数纳入 网络 - A类 以确保其输出与类中的其他输出类似。 网络 - A类 使用一系列卷积层来产生增强图像。 概念框架 网络 - A类 可以扩展为使用多个并行训练的网络。 多个 网络 - 作为 对于通过元学习学习特定于类的增强可能非常有用(图 30 ).
智能增强与SamplePairing类似[ 65 ]或混合示例,即现有示例的组合产生新的示例。 然而,智能增强的机制要复杂得多,使用自适应CNN生成新图像,而不是平均像素或手动工程图像组合。
智能增强技术在性别识别任务中进行了测试。 在Feret数据集上,准确率从83.52%提高到88.46%。 观众数据集的反应是从70.02%提高到76.06%。 最有趣的是,另一个人脸数据集的结果从88.15%增加到95.66%。 与传统的增强技术相比,该技术的准确率从88.15%提高到89.08%。 此外,当使用两个 网络 - 作为 在增强框架中 网络 - A类 该实验表明,智能增强元学习策略显著提高了性能(图 31 ).
自动增强 自动增强[ 38 ]由Cubuk等人开发的是一种与神经增强或智能增强截然不同的元学习方法。 AutoAugment是一种强化学习算法[ 115 ]该算法在一组具有各种扭曲程度的受限几何变换中搜索最佳增强策略。 例如,“translateX 20像素”可以是搜索空间中的转换之一(表 8 ).
表8在缩减的CIFAR-10数据集上发现的AutoAugment增强策略[ 38 ]
在强化学习算法中,策略类似于学习算法的策略。 该政策决定了在特定州采取何种行动来实现某些目标。 AutoAugment方法学习由许多子策略组成的策略,每个子策略由图像变换和变换幅度组成。 因此,强化学习被用作增强的离散搜索算法。 作者还建议,进化算法或随机搜索也将是有效的搜索算法。
AutoAugment发现在CIFAR-10上实现1.48%错误率的策略。 AutoAugment在ImageNet数据集上也达到了83.54%的Top-1精度。 非常有趣的是,当转移到斯坦福汽车公司和FGVC飞机公司的图像识别任务时,在ImageNet数据集上学习到的政策是成功的。 在这种情况下,应用于这些其他数据集的ImageNet策略分别减少了1.16%和1.76%的错误率。
Geng等人[ 116 ]通过将强化学习搜索算法替换为增强随机搜索(ARS),对AutoAugment进行了扩展[ 112 ]. 作者指出,由于搜索空间离散,从AutoAugment中学习到的子策略存在固有缺陷。 它们将增加的概率和幅度转换为一个连续的空间,并使用ARS搜索子策略。这样,它们在CIFAR-10、CIFAR-100和ImageNet上实现了较低的错误率(表 9 ).
表9连续空间上ARS的性能与离散空间上AutoAugment的性能[ 116 ]
Minh等人[ 117 ]也尝试使用强化学习[ 115 ]搜索数据增强。 他们进一步探索了单个实例而非整个数据集的学习转换的有效性。 他们发现,在CIFAR-10数据集上,分类准确率差异为70.18%和74.42%,在狗与猫的分类问题上,差异为74.61%和80.35%。 此外,他们还探索了分类器在测试时间增强方面的鲁棒性,并发现用强化学习增强搜索训练的模型表现得更好。 在CIFAR-10数据集上,当根据补充测试数据评估模型时,这导致了50.99%的准确率,而不是70.06%的准确率。
元学习的一个缺点是,它是一个相对较新的概念,尚未经过严格测试。 此外,元学习方案可能很难实施,而且耗时。 元学习的实践者必须首先解决梯度消失的问题[ 118 ]除其他外,培训这些网络。
比较增强 如贯穿始终所示” 图像数据增强的设计考虑 “第节,数据增强的可能性。 然而,没有太多的比较研究表明这些不同增强的性能差异。 Shijie等人进行了一项这样的研究[ 119 ]它比较了CIFAR-10和ImageNet数据集上的GAN、WGAN、翻转、裁剪、移位、PCA抖动、颜色抖动、添加噪声、旋转以及一些组合。 此外,比较研究涵盖了不同数据集的大小,小数据集由2k个样本组成,每个类200个样本,中数据集由10k个样本构成,每个类1k个样本,大数据集由50k个样本和每个类5k个样本。 他们还测试了3个级别的增强,无增强,原始加上相同大小的生成样本,以及原始加上两倍大小的生成样品。 他们发现,裁剪、翻转、WGAN和轮换通常表现得比其他方法更好。 翻转+裁剪和翻转+WGAN的组合总体上是最好的,在CIFAR-10上的分类性能分别提高了+3%和+3.5%。