苹果机器学习博客解读CVPR论文:通过对抗训练从模拟的和无监督的图像中学习

苹果公司通过试验证明,使用细化后的图像进行训练可以大幅提高多种机器学习任务中模型的准确度。为了克服这种缺陷,他们制定了一种细化合成图像的方法,用以提高图像的真实度。以下是苹果公司发布在名为“Apple Machine Learning Journal”的博客上的名为“Improving the Realism of Synthetic Images”的文章。 在AI科技大本营微信公众号会话中回复“苹果”,下载苹果《Learning from Simulated and Unsupervised Images through Adversarial Training》论文

翻译 | AI科技大本营(rgznai100)

参与 | 大琦,彭硕

目前,神经网络的大多数成功实例都是由监督训练得来的。但是,如果要想获得较高的准确性,就必须使用庞大、多样且精确标注的训练数据集,但是这类数据集成本很高。

有一种方法,不需要标记大量数据,使用模拟器中的合成图像就可以来训练模型。

由于不需要标记数据,这种方法的成本较低,但是这种方式合成的图像可能会因为不够真实而导致泛化,实际测试图像时不太理想。

为了克服这种方式导致的缺陷,我们制定了一种细化合成图像的方法,用以提高图像的真实度。试验证明,使用细化后的图像进行训练可以大幅提高多种机器学习任务中模型的准确度。

概览

解决方案之一是改进模拟器,这种方案不仅成本高,而且还很难实现。即使最优秀的渲染算法,仍可能难以对真实图像的所有特征进行建模。图像不够真实可能会导致模型过度拟合合成图像中“不真实”的细节。

为此,我们制定了一种细化合成图像的方法,用以提高图像的真实度(图1).

图1. 任务是在保留标注信息的同时,使用未标记的真实数据训练一个模型,

用它提高模拟器中合成图像的真实度。

“提高真实度”的目的是使图像看起来尽可能真实,借以提高测试准确性。也就是说,保留标注信息以便训练机器学习模型。

例如,应该在保留图1中人物眼睛的注视方向的同时,确保不生成任何失真,因为机器学习模型可以学习过度拟合此类失真。

为此,我们生成了一个名为“细化器网络”的深度神经网络,它可以对合成图像进行处理,提高其真实度。

为了生成这样一个细化器网络,我们需要使用一些真实图像。其中一个方案是使用若干真实图像和合成图像对照组,同一组图像的像素相互对应,或者带标注的真实图像——例如眼睛的注视信息。这无疑降低了问题的难度,但是此类数据往往很难收集。为了实现像素与像素的对齐,我们需要渲染一个与给定真实图像相对应的合成图像,或者采集一个与渲染后的合成图像相对应的真实图像。在像素不相互对应或者未标记真实图像的条件下,我们能否学习这种映射?如果可行,我们就可以不用标记任何真实图像,只通过生成一大批合成图像并捕捉眼部的真实图像来学习这种映射。这样,这种方法实际应用起来就既经济又容易。

为了用无监督训练的方式来训练细化器网络,我们使用了一个可以将真实图像和细化后(或虚假)的图像归为两类的辅助判别器网络。细化器网络的作用是骗过该判别器网络,让它认为细化后的图像就是真实图像。

交替训练这两个网络,直到判别器再也无法区分真假图像。这种使用对抗式判别器网络的方法类似于生成式对抗网络(GAN)方法,GAN方法是向某一图像分配一个随机适量,这样生成的图像就与真实图像就相差无几。我们的目标是训练出一个可以将合成图像映射到真实图像中的细化器网络——生成器。图2是这种方法的示意图。

图2. 细化神经网络R将局部对抗损失与“自正则”(self-regularization)项的组合减至最少。对抗损失“欺骗”判别器网络D,使其将图像归类为真实图像或者细化后的图像。自正则项将合成图像和细化后的图像之间的差异降至最低。细化器网络和判别器网络进行交替更新。

如何保留标注?

在生产真实图像的同时,细化器网络还应保留模拟器的标注信息。拿视线预估来说,经过学习的转换算法应不改变注视方向。这个限制条件非常重要,因为它可以确保成功训练出可以结合模拟器标注使用细化后图像的机器学习模型。为了保留合成图像的标注,我们用一个自正则L1损失补足对抗损失,前者可以惩罚合成图像和细化后图像之间的明显差异。

如何防止失真?

进行局部更改

细化器网络还应满足另一关键要求:在学习建模真实图像的特征时不引入任何失真

当我们训练判别器网络时候,细化器网络往往会过度强调特定图像特征以骗过当前的判别器网络,这样就会造成漂移和失真。我们发现,任何从细化后图像中采集的局部图像块(patch)都应具备和真实图像的图像块类似的统计数据。因此,我们可以定义一个单独区分所有局部图像块的判别器网络(图3),而不是定义一个全局判别器网络。这种区分不仅可以限制感受野 (receptive field)和判别器网络的能力,而且还能在模型学习判别器网络时为每一图像提供大量样本。让每个图像拥有多个“真实度损失”,这样也可以改进细化器网络。

图3. 具备对抗损失示意图。判别器网络输出一个w×h维的块概率图。

对抗损失函数是局部图像块交叉熵损失的总和。

使用生成器历史改进判别器

生成器可以使用新分布或者目标(真实数据)分布的样本骗过判别器。从新分布中生成的样本只能暂时骗过判别器,当判别器学习了这种新分布后它就行不通了。相比之下,从目标分布中生成的样本在欺骗判别器时更有效。

对比这两种演变方式,最容易的往往是生成一个新输出,也就是我们当前生成器和判别器进行对抗训练时观察到的结果。图4左侧幻灯片对这种效果不佳的序列进行了简化说明。生成器和判别器分别用黄色和蓝色表示。

通过引入先前生成中得出的生成器样本的历史数据(图4右侧),判别器就不太可能会忘记它之前学习过的内容。性能更强的判别器可以使生成器更快地向目标分布移动。

上文中的示意图是简化版本,实际分布是复杂的,而且很少连成一片。但是事实上,简单的随机替换缓存可以从先前的生成器分布中捕捉到足够多的多样性,从而通过强化判别器来避免发生重复。我们认为,在判别器看来,细化器网络在整个训练过程中的任何时候生成的任何细化后图像都是“假”图像。我们发现,用历史缓存区中的样本作为其中一半样本,从当前生成器输出(如图5所示)中采集的另外一半样本,以此来为判别器网络D构建一个样本子集(mini-batch),这样我们就可以改进训练效果。

图4. 使用图像历史改进判别器直观示意图

图5. 判别器网络D历史的mini-batch示图。

每个mini-batch都包含生成器当前迭代生成的图像以及采集自缓冲区的先前的加图像。

培训过程是如何进行的呢?

首先我们用自正则化损失函数来训练精细化网络,接着当输入的合成图片经精细化网络产生模糊版本的图片时,我们会引入对抗性损失函数。图6显示了精细化网络在各个培训阶段的不同输出情况。图7显示了在不同的培训迭代过程中鉴别器和生成器的损失。请注意,在培训开始的阶段鉴别器的损失是很低的,这意味着它能够很轻松的分辨出真实和精细化的区别。慢慢地,随着训练的进行,鉴别器的损失增加,生成器的损失减少,产生更多真实的图像。

图6是培训过程中,精细化网络输出的图像。

开始的时候是一幅模糊的图片,网络学会了对真实图像中呈现的细节进行建模。

图7. 是培训过程中,生成器和鉴别器的损失变化。

自正则化L1损失有限制性吗?

当合成图片和真实图像在分布中有显著的变化时,像素级的L1差异可能会存在限制性。在这种情况下,我们可以用一种功能转换来替换身份映射,即在一个特征空间中放置一个自正则化器。

这些可以是手工调整的特性,也可以是从VGGnet中间层中获得的一些特性。例如,对于彩色图像的细化,RGB通道的平均值可以生成逼真的彩色图像,如图8所示。

图8.自正则化损失在特征空间中的例子

生成器会改变标签吗?

为了验证标签不会发生显著的变化,我们手工绘制了合成和精细化图像的椭圆,并计算出它们的中心之间的差异。在图9中,我们展示了50个这样的中心差异的散点图。瞳孔中心和相应的精细图像之间的绝对差值非常小:1.1 +/- 0.8px (眼的宽度 = 55px).

图9. 合成图像和真实图像的瞳孔中心距离的散点图。

设置超参数的技巧

G的初始化

首先,我们对G用自正则化损失进行初始化,使其能够生成合成输入的模糊版本。一般来说,它需要500-2000步的G (没有训练D)。

每个训练迭代中G和D的不同步骤

在每次训练迭代中我们对生成器和鉴别器都使用了不同的步骤,对于使用深度的手势估计,我们在每D步中使用了两个步的G,而在眼睛凝视估计实验中,我们最终每D步使用了50步的G。我们发现,与发生器相比,鉴别器收敛速度更快,部分原因是鉴别器的批处理规范。所以我们把D步骤固定到1,开始从一个小数字开始改变G的步骤,在鉴别器的损失值的基础上,慢慢地增加它。

学习速度和停止标准

我们发现保持非常小的学习速率 (0.0001)和很长的训练时间是很有帮助的。这种方法之所以奏效,很可能是因为它能保证发生器和鉴别器不会发生突然变化,也就避免了其中一个掉队。我们发现很难通过显示训练损失来停止训练。相反,当精细化的图像看起来与真实的图像相似时,我们保存了训练图像,并成功停止了训练。

定性结果

为了评估精细化图像的视觉质量,我们设计了一个简单的用户研究,让实验对象对真实图像和精细化图像进行分类。被测试者发现很难区分真实图像和精细化图像。在我们的综合分析中,10个实验对象在1000次试验中选择正确的有517次,这意味着他们无法顺利地分辨出真实图像和精细化合成的图像。相比之下,在对原始合成图像和真实图像进行测试时,我们为每个实验对象展示了10个真实和10个合成图像,在200次试验中,受试者选对了162次。在图10中,我们展示了一些合成和相应的精细图像。

图10. 用所建议的方法进行精细化的眼睛图像。

定量结果

图11显示了与原始合成数据的培训相比,使用精细化数据后的改进。图中有两点需要注意,第一,用精细化的图像进行训练比用原始合成图进行训练要好得多。第二,使用更多的合成数据可以进一步提高性能。在图12中,我们将眼睛评估误差与其他最先进的方法进行比较,发现通过改进真实性可以显著地帮助模型在真实的测试数据上进行泛化。

图11.合成图像和精细化图像进行凝视评估的训练对比,基于真实的测试图像的评估。

图12.对MPII Gaze数据集中的凝视评估的不同方法进行比较。

前两种方法在参考资料[2]和[3]中进行了描述。

相关著作

最近,人们对使用对抗性训练的应用非常感兴趣。Isola等人著作的图像到图像的转换中[4]描述了一种方法,它可以把图像从一个域转换到另一个域,但它对像素的一致性有要求。之后又提出了非配对的图像到图像的转换[5],讨论了如何减少对像素一致性的要求,并且遵循了使用生成器的历史来提高鉴别器的策略。无监督的图像-图像翻译网络[6]使用了一个生成式对抗网络和变分自动编码器的组合来学习源和目标域之间的映射。Costa 等人[7]用我们在工作中的方法来产生眼底的图片。Sela等人[8]利用了类似自正则化的方法来进行面部几何重建。Lee等人[9]通过在本地的关键补丁上的鉴别器,来合成图像。想了解我们在本文中描述的更多细节,请参阅我们的CVPR论文《通过对抗训练从模拟和无监督的图像中学习》

References

[1] I. J. Goodfellow, J. Pouget-Abadie, M.Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio, GenerativeAdversarial Nets.Proceedings Neural Information Processing SystemsConference, 2014.two thousand fourteen [2] X. Zhang, Y. Sugano, M. Fritz, and A.Bulling, Appearance-based Gaze Estimation in the Wild. ProceedingsComputer Vision Pattern Recognition Conference, 2015.two thousand fifteen [3] E. Wood, T. Baltrušaitis, L.-P. Morency,P. Robinson, and A. Bulling,Learning an Appearance-based Gaze Estimator fromOne Million Synthesised Images. Proceedings ACM Symposium on EyeTracking Research & Applications, 2016.two thousand sixteen [4] P. Isola, J.-Y. Zhu, T. Zhou, and A. A.Efros, Image-to-ImageTranslation with Conditional Adversarial Networks(https://arxiv.org/abs/1611.07004). ArXiv, 2016.two thousand sixteen [5] J.-Y. Zhu, T. Park, P. Isola, and A. A.Efros, UnpairedImage-to-Image Translation using Cycle-Consistent Adversarial Networks (https://arxiv.org/abs/1703.10593). ArXiv, 2017.two thousand seventeen [6] M.-Y. Liu, T. Breuel, and J. Kautz, Unsupervised Image-to-Image Translation Networks(https://arxiv.org/abs/1703.00848). ArXiv, 2017.two thousandseventeen [7] P. Costa, A. Galdran, M. I. Meyer, M. D.Abràmoff, M. Niemeijer, A. M.Mendonça, and A. Campilho, Towards Adversarial Retinal ImageSynthesis.(https://arxiv.org/abs/1701.08974) ArXiv, 2017.two thousandseventeen [8] M.Sela, E.Richardson,and R.Kimmel,Unrestricted Facial GeometryReconstruction Using Image-to-Image Translation (https://arxiv.org/abs/1703.10131). ArXiv, 2017.two thousand seventeen [9] D.Lee,S.Yun,S.Choi,H.Yoo, M.-H.Yang, and S. Oh, Unsupervised Holistic Image Generation from Key LocalPatches(https://arxiv.org/abs/1703.10730). ArXiv, 2017.two thousandseventeen [10] A. Shrivastava, T. Pfister, O. Tuzel, J.Susskind, W. Wang, R. Webb,Learning from Simulated and Unsupervised Images throughAdversarial Training(https://arxiv.org/abs/1612.07828). CVPR, 2017.two thousandseventeen

原文地址 https://machinelearning.apple.com/2017/07/07/GAN.html

原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2017-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

一文学习基于蒙特卡罗的强化学习方法

6735
来自专栏null的专栏

机器学习中的特征空间

声明:这篇博文主要是对参考文献中的那个PPT的学习之后记下的一些笔记,整理出来与大家一起分享,若笔记中有任何错误还请不吝指出,文中可能会使用到原作者的一些图,若...

4446
来自专栏SIGAI学习与实践平台

自然场景文本检测识别技术综述

白蛇: 白纸黑字的扫描文档识别技术已经很成熟,而自然场景图像文本识别的效果还不理想。倾斜字、艺术字、变形字、模糊字、形似字、残缺字、光影遮蔽、多语言混合文本等应...

5242
来自专栏灯塔大数据

塔秘 | 揭密GAN(生成对抗网络)

前言 生成式对抗网络(GAN),是14年GoodfellowIan在论文Generative Adversarial Nets中提出来的。Yann LeCun曾...

3816
来自专栏计算机视觉战队

干货——图像分类(下)

在机器学习或者深度学习领域,参数和超参数是一个常见的问题,个人根据经验给出了一个很狭隘的区分这两种参数的方法。

842
来自专栏LhWorld哥陪你聊算法

【机器学习】--鲁棒性调优之L1正则,L2正则

第一个更好,因为当把测试集带入到这个模型里去。如果测试集本来是100,带入的时候变成101,则第二个模型结果偏差很大,而第一个模型偏差不是很大。

1763
来自专栏数据处理

最大似然函数最大似然原理小结:最大似然估计法的一般步骤:例子:

3.6K2
来自专栏峰会SaaS大佬云集

集成算法(Bagging,随机森林)

集成算法包括很多种包括Bagging,随机森林,Boosting 以及其他更加高效的集成算法。在这篇博客上只介绍Bagging算法及随机森林,Boosting提...

3021
来自专栏专知

【360人工智能研究院与NUS颜水成团队】HashGAN:基于注意力机制的深度对抗哈希模型提升跨模态检索效果

【导读】近日,中山大学、新加坡国立大学和奇虎360人工智能研究院团队提出了一种具有注意机制的对抗哈希网络(adversarial hashing network...

4795
来自专栏Petrichor的专栏

深度学习: 数据扩充 (Data Augmentation)

包括:水平翻转、垂直翻转、水平垂直翻转。OpenCV中的 cv2.flip 接口可用于快速实现翻转操作:opencv: cv2.flip 图像翻转 进行 数据增...

9733

扫码关注云+社区

领取腾讯云代金券