苹果发布首份人工智能报告(全文):瞄准AI视觉

2016-12-28 03:57:19 来源:济宁新闻网

undefined

日前,苹果发布了其首份关于人工智能(AI)的学术论文通过对抗网络使用模拟和非监督图像训练(Learning from Simulated and Unsupervised Images through Adversarial Training),其中主要描述了在计算机视觉系统中提高图像识别的方法,而这或许也标志着苹果公司研究的新方向。

下面就是这篇报告的全文:

摘要

随着图形技术不断进步,利用合成图像训练机器学习模型变得越来越容易,这可以帮助避免注释图像的昂贵支出。然而,通过合成图像训练机器学习模型可能无法达到令人满意的效果,因为合成图像与真实图像之间毕竟存在区别。为了减少这种差异,我们提出模拟+无监督学习方法,即通过计算机生成图像或合成图像来训练算法的图像识别能力。

事实上,这种模拟+无监督学习需要将无标注的真实图像数据与已经注释的合成图像相结合。在很大程度上,它需要依赖生成式对抗网络(GAN)的新机器学习技术,它可通过两个神经网络相互对抗以生成更加真实的图像。我们对标准 GAN 算法进行了多处关键性修改,以保留注释、避免伪影以及稳定性训练:自正则化(self-regularization)-局部对抗性损失-使用精炼图像升级鉴别器。

我们发现,这个过程可以产生高度逼真的图像,在质量上和用户研究方面都已经获得证实。我们已经通过训练模型评估视线水平和手势姿态,对计算机生成图像进行定量评估。通过使用合成图像,我们的图像识别算法已经取得了巨大进步。在没有使用任何标准真实数据的情况下,我们在 MpIIGaze 数据集中获得了最高水平的结果。

引言

随着最近高容量深度神经学习网络的崛起,大规模标注训练数据集正变得日益重要。可是,标准数量庞大的数据集成本非常高,而且相当耗费时间。为此,使用合成图像而非真实图像训练算法的想法开始出现,因为注释已经可实现自动化。利用 XBOX360 外设 Kinect 评估人体姿势以及其他任务,都是使用合成数据完成的。

undefined

(图1:模拟+无监督学习:通过计算机生成图像或合成图像来训练算法的图像识别能力)

然而,由于合成图像与真实图像之间存在差距,使用合成图像训练算法可能产生很多问题。因为合成图像通常不够真实,导致神经网络学习仅仅能够了解到合成图像中的细节,并不能完整地识别出真实图像,进而也无法为算法提供精确的学习。一种解决方案就是改进模拟器,可是增加真实性的计算往往非常昂贵,渲染器的设计也更加困难。此外,即使最顶级的渲染器可能也无法模仿真实图像中的所有特征。因此,缺少真实性可能导致算法过度拟合合成图像中不真实的细节。

在这篇论文中,我们提出模拟+无监督学习的方法,其目的就是使用未标注真实数据的模拟器提高合成图像的真实性。提高真实性可更好地帮助训练机器学习模型,而且无需收集任何数据,也无需人类继续标注图像。除了增加真实性,模拟+无监督学习还应该保留注释信息以用于训练机器学习模型,比如图一中的注视方向应被保留下来。此外,由于机器学习模型对合成数据中的伪影非常敏感,模拟+无监督学习也应该产生没有伪影的图像。

我们为模拟+无监督学习开发出新的方法,我们称之为 SimGAN,它可以利用我们称之为精炼器网络(refiner network)的神经网络从模拟器中提炼合成图像。图二中展示了这种方法的概述:第一,黑盒子模拟器中生成合成图像,然后利用精炼器网络对其进行提炼。为了增加真实性,也就是模拟+无监督学习算法的首要需求,我们需要利用类似生成式对抗网络(GAN)来训练精炼器网络,进而产生判别网络无法区分真假的精炼图像。

第二,为了保留合成图像上的注释信息,我们需要利用自正则化损失弥补对抗性损失,在合成图像和精炼图像之间进行修改。此外,我们还利用完全卷积神经网络,在像素水平方面进行操作,并保留全局结构,而非整体修改图像的内容。

第三,GAN 框架要求训练 2 个神经网络进行对抗,它们的目标往往不够稳定,倾向于产生伪影。为了避免漂移和产生更强的伪影,导致甄别更困难,我们需要限定鉴别器的接收区域为局部接收,而非整张图片接收,这导致每张图像都会产生多个局部对抗性损失。此外,我们还引入提高训练稳定性的方法,即通过使用精炼图像而非当前精炼器网络中的现有图像升级鉴别器。

1. 1 相关工作

GAN 框架需要 2 个神经网络竞争损失,即生成器与鉴别器。其中,生成器网络的目标是在真实图像上绘制随机向量,而鉴别器网络的目标则是区分生成图像与真实图像。GAN 网络是由古德弗罗(I. Goodfellow)等人首先引入的,它可以帮助生成逼真的视觉图像。自从那以来,GAN 已经有了许多改进,并被投入到有趣的应用中。

undefined

(图2:SimGAN 概观:我们利用精炼器网络提炼模拟器产生的输出图像,并最大限度地减少局部对抗性损失,并进行自正则化。对抗性损失可以欺骗鉴别器网络,从而令其将合成图像误认为真实图像。而自正则化则会最大限度减少合成图像与真实图像的差异,包括保留注释信息,并让精炼图像被用于训练机器学习模型。精炼器网络与鉴别器网络也会交替升级。)

王(X. Wang)与古普塔(A. Gupta)利用结构化 GAN 学习表面法线,然后将其与 Style GAN 相结合,以生成天然的室内场景。我们提议使用对抗性训练进行递归生成模型(recurrent generative model)训练。此外,最近推出的 iGAN 能够帮助用户以交互模式改变图像。刘(M.-Y. Liu)等人开发的 CoGAN 结合 GAN 可多模态联合分布图像,无需要求应对图像的元组,这有利于开发出联合发布解决方案。而陈(X. Chen)等人开发的 InfoGAN 是 GAN 信息理论的扩展,允许有意义的陈述学习。

恩杰尔图泽尔(Oncel Tuzel)等人利用 GAN 解决人脸图像超高分辨率问题。李(C. Li)和王(M. Wand)提议 Markovian GAN 进行有效的纹理合成。洛特尔(W. Lotter)等人在 LSTM 网络中利用对抗性损失进行视觉序列预测。于(L. Yu)等人提议 SeqGAN 框架,利用 GAN 强化学习。许多近来的问题都显示出与生成模型领域相关的问题,比如 pixelRNN 可利用 RNN 的 softmax 损失预测像素顺序。生成网络侧重于使用随机噪声矢量生成图像,与我们的模型相比,其生成的图像没有任何标注信息,因此也无法用于训练机器学习模型。

许多努力都在探索使用合成数据进行各种预测任务,包括视线评估、RGB 图像文本检测与分类、字体识别、对象检测、深度图像中手部姿态评估、RGB-D 场景识别、城市场景语义分割以及人体姿态评估等。盖伊登(A. Gaidon)等人的研究表明,利用合成数据训练深度神经网络,可以提高其表现。我们的工作是对这些方法的补充,我们使用未标记真实数据提高了模拟器的真实性。

嘉宁(Y. Ganin)与莱姆皮茨基(V. Lempitsky)在数据域适应设置中利用合成数据,了解合成图像与真实图像域的变化过程中保持不变的特征。王(Z. Wang)等人利用合成和真实数据训练层叠卷积码自动编码器,以便了解其字体检测器 ConvNet 的低级表示形式。张(X. Zhang)等人学习多通道编码,以便减少真实数据与合成数据的域的转变。与经典域适应方法相反,它采用与特定的特征以便适应具体的预测任务,而我们可通过对抗性训练,弥合图像分布之间的差距。这种方法使我们能够生成非常逼真的图像,可以用于训练任何机器学习模型,并执行潜在的更多任务。

2模拟+无监督学习

模拟+无监督学习的目标是使用一组未标记的真实图像 yi Y,学习可提炼合成图像X的 refiner R(x),其中属于函数参数。让我们用X?表示精炼图像,然后会得出X?:= R(X)。在模拟+无监督学习中,最关键的要求就是精炼图像X?,以便于其看起来更像真实图像,同时保留来自模拟器的注释信息。为此,我们建议通过最大化减少两个损失的组合来学习:

undefined

其中,xi 是 e ith 合成训练图像,X是相应的精炼图像。第一部分是真实性成本,即向合成图像中增加真实性的成本。第二部分则代表着通过最小化合成图像精炼图像的差异保存注释信息的成本。在下面的章节中,我们会展开这个公式,并提供优化的算法。

2. 1 对抗性损失

为了向合成图像中添加真实性,我们需要在合成图形和真实图像的分部之间建立起联系。在理想情况下,精炼机可能无法将给定的图像分类为真实图像还是高度精炼图像。这就需要使用对抗性的鉴频器,网络D,它可训练分辨图像到底是真实图像还是精炼图像,而是鉴别器网络参数。对抗性损失训练 refiner networkR,它负责欺骗D网络,令其将精炼图像误认为是真实图像。利用 GAN 方法,我们建造了 2 个神经网络参与的极限博弈模型,并升级精炼器网络R和鉴别器网络D。接下来,我们更精确地描述这种模型。鉴别器网络通过最大限度地减少以下损失来更新参数:

undefined

这相当于两级分类问题产生的交叉熵误差,其中D(.)输入的是合成图像,而 1 ? D(.)则是真实图像。至此,我们实现了D作为 ConvNet 的最后输出层,样本很可能是精炼图像。为了训练这个网络,每个小批量随机抽取的样本都由精炼合成图像和真实图像组成。对于每个 yj 来说,交叉熵的目标标签损耗层为0,而每个x?i都对应1。然后通过随机梯度下降(SGD)方式,会随着小批量梯度损失而升级。在我们的实践中,真实性损失函数使用训练有素的鉴别器网路D如下:

undefined

通过最小化减小损失函数,精炼器网络的力量促使鉴别器无法分辨出精炼图像就是合成图像。除了产生逼真的图像外,精炼器网络应该保存模拟器的注释信息。举例来说,用于评估视线的学习转变不该改变凝视的方向,手部姿势评估不应该改变肘部的位置。这是训练机器学习模型使用配有模拟器注释信息的精炼图像的必要组成部分。为了实现这个目标,我们建议使用自正则化,它可以最大限度地减少合成图像与精炼图像之间的差异。

undefined

(算法1)

undefined

(图3:局部对抗性损失的图示。鉴别器网络输出 wxh 概率图。对抗损失函数是局部块上的交叉熵损失的总和。)

因此在我们的执行中,整体精炼损失函数(1)为:

undefined

(4)在.1 是 L1 常模时,我们将R作为一个完全卷积的神经网络,而无需跃进或池化。在像素级别上修改合成图像,而不是整体地修改图像内容。例如在完全连接地编码器网络中便会如此,保留全局结构合注释。我们通过交替地最小化 LR () 和 LD ()来学习精化器和鉴别器参数。在更新R的参数时,我们保持固定不变,而在更新D时,则要保持不变。我们在算法 1 中描述了整个训练过程。

undefined

(图4:使用精细图像历史示意图。相关信息请参阅文本描述。)

2. 2 本地对抗损失

精炼网络另一个关键要求是,它应该学习模拟实际图像特性,而不引入任何伪影。当我们训练强鉴别器网络时,精炼网络倾向于过度强调某些图像特征以欺骗当前鉴别器网络,导致偏差和产生伪影。关键是任何我们从精化图像中采样的本地补丁都应该具有与真实图像相类似的统计。由此我们可以定制本地鉴别器网络对本地图像补丁进行分类,而不是定义全局鉴别器网络。

这不仅限制了接受域,还因此限制了鉴别器器网络的容量,并且为每个图像提供更多样本以供学习鉴别器网络。同时由于每个图像由多个实际损失值,它还改善了精炼网络的训练。

在我们的执行中,我们将鉴别器器D设计成一个完全卷积网络,输出伪类 w h 概率图。在后者中 w h 是图像中本地补丁的数量。在训练精炼网络时,我们将wh本地补丁的交叉熵损失值求和,如图 3 所示。

2. 3 使用精化图像的历史记录更新鉴别器器

对抗训练的对抗训练的另一个问题是鉴别器器网络只关注最新的精细图像。 这可能导致(i)与对抗训练分歧,以及(ii)精炼网络重新引入鉴别器已经忘记的工件。在整个训练过程中的任何时间由精炼网络生成的任何精细图像对于鉴别器器来说都是伪造的图像。因此,鉴别器应该有能力将这些图像识别为假。基于这一观察,我们引入了一种方法,通过使用精细图像的历史来提高对抗训练的稳定性,而不仅仅是在当前小批次中小修小改。我们对算法 1 稍作改进,增加对先前网络产生的精细图像的缓冲。设B为此缓冲的大小,设b为算法 1 中使用的迷你批次大小。

undefined

(图5:SimGAN 输出的图像示例。左为 MpIIGaze 采集的实拍图像,右为优化后的 UnityEye 合成图像。从图中可以看出精细合成图像中的皮肤纹理和虹膜区都更近似真实而非合成图像。)

undefined

(图6:带有两个 nxn 卷积层的 ResNet 块,每个都都具有f特征图。)

在鉴别器器训练的每次迭代中,我们通过对来自当前精炼网络的b/2 图像进行采样,以及从缓冲区采集额外b/2 图像,从而更新参数。保持缓冲区B大小固定,在每次迭代之后,我们使用新产生的精细图像随机替换缓冲区中的b/2 样本。该过程在图 4 中标示出。

3. 实验

我们使用 MpIIGaze [40,43]上的外貌估计数据集和纽约大学的手势数据集 [35]来评估我们的方法。我们在所有实验中使用完全卷积的精炼网络与 ResNet 块(图6)。

3. 1 基于外貌的注视估计

注视估计是许多人机交互(HCI)任务的关键因素。然而,直接由眼睛图像进行估计是有挑战性的,特别是在图像质量不佳时。例如智能手机或笔记本电脑前置摄像头采集到的眼睛图像。因此,为了生成大量注释数据,最近几次方法[40,43]用大量合成数据训练它们的模型。在这里,我们展示使用 SimGAN 生成的精细合成图像训练显著提高了任务的表现。

注视估计数据集包括使用眼睛注视合成器 UnityEyes 生成的 1200 万样本,以及来自 MpIIGaze 数据集的 21,000 实拍样本。MpIIGaze 的图像样本都是在各种照明条件不理想情况下捕捉到的图像。而 UnityEyes 图像都是在同一渲染环境下生成。

定性结果:图 5 展示了合成生成的眼睛注视图像以及经过处理的实拍图像。如图所示,我们观察到合成图像的显著质量改进:SimGAN 成功捕获皮肤纹理,传感器噪点以及虹膜区的外观。请注意,我们的方法在改善真实性的同时保留了注释信息(注视方向)。

视觉图灵测试:为了定量评估精细图像的视觉质量,我们设计了一个简单的用户研究,要求受试者对图像是属于实拍或是合成进行区分。每个受试者被展示 50 张实拍图像和 50 张合成图像。在试验中,受试者不断观看 20 个真假混杂的图像,最终受试者很难分辨真实图像和精细图像之间的差异。在我们的总体分析中,10 个受试者在 1000 次试验中正确率只有 517 次(p=0.148),跟随机选差不多。表 1 展示了混淆矩阵。相比之下,当使用原始图像和实拍图像进行测试时,我们给每个受试者展示 10 个实拍和 10 个合成图像,这种情况下受试者在 200 此实验中选对了 162 次(p10-8),结果明显优于随机选择。

undefined

(表1:采用真实图像和合成图像进行的视觉图灵测试。平均人类分类精度为 51.7%,表明自动生成的精细图像在视觉上已经达到以假乱真的程度。)

undefined

(图7:使用 MpIIGaze 实拍样本进行的眼睛注视估计的定量结果。曲线描述了不同测试数量下系统预估的误差。图示中使用精细图像而不是合成图像能显著提高系统表现。)

定量结果:我们训练了一个与[43]类似的简单的卷积神经网络(CNN)来对眼睛的注视方向进行预测。我们在 UnityEyes 上训练,并在 MpIIGaze 上进行测试。图 7 和表 2 比较了 CNN 分别使用合成数据以及 SimGAN 生成的精细数据的不同表现。我们观察到 SimGAN 输出训练的表现有很大的提高,绝对百分比提高了 22.3%。我们还发现训练结果和训练数据呈正相关此处的 4x 指的是培训数据集的 100%。定量评估证实了图 5 中观察到的定性改进的价值,并且表明使用 SimGAN 能使机器学习模型有更好的表现。表 3 展示了同现有技术的比较,在精细图像上训练 CNN 的表现优于 MpIGaze 上的现有技术,相对改善了 21%。这个巨大的改进显示了我们的方法在许多 HCI 任务中的实际价值。

实施细节:精炼网络R是一个残差网络 (ResNet) 。每个 ResNet 块由两个卷积层组成,包含 63 个特征图,如图 6 所示。大小为 55x35 的输入图像和 3x3 的过滤器进行卷积,输出 64 个特征图。输出通过 4 个 ResNet 块传递。最后 ResNet 块的输出被传递到 1x1 卷积层,产生对应于精细合成图像的 1 个特征图。

undefined

(表2: 使用合成数据和 SimGAN 输出进行训练的比较。在无需监督真实数据的情况下,使用 SimGAN 输出的图像进行训练表现出 22.3% 的优势。)

undefined

(表3: SimGAN 与 MpIIGaze 现有技术进行比较。R=真实图像,S=合成图像。误差是以度为单位的平均眼睛注视估计误差。对精细图像的训练带来了 2.1 度的改进,相对现有技术提高了 21%。)

鉴别器器网络D包含 5 个扩展层和 2 个最大合并层,分别为:(1)Conv3x3,stride = 2,特征映射= 96,(2)Conv3x3,stride = 2,特征映射= 64,( 3)Maxpool3x3,stride = 1,(4)Conv3x3,stride = 1,特征映射= 32,(5)Conv1x1,stride = 1,特征映射= 32,(6)Conv1x1,stride = 2,(7)Softmax。

我们的对抗网络是完全卷积的,并且已经被设计为使R和D中的最后层神经元的接受域是相似的。我们首先对R网络进行 1000 步的自正则化损失训练,D为 200 步。然后对于D的每次更新,对应在算法中更新R两次。即 Kd 被设置为1,Kg 被设置为 50。

眼睛注视估计网络同[43]类似,不过略作修改以使其更好地利用我们的大型合成数据集。输入是 35x55 的灰度图,通过 5 个卷积层,然后是 3 个完全连接的层,最后一个编码三维注视向量:(1)Conv3x3,特征图= 32,(2)Conv3x3 ,特征映射= 32,(3)Conv33,特征映射= 64,(4)Max- pool3x3,stride = 2,(5)Conv3x3,特征映射= 80,(6)Conv3x3, Maxpool2x2,stride = 2,(8)FC9600,(9)FC1000,(10)FC3,(11)Eu- clidean loss。所有网络都使用恒定的 0.001 学习速率和 512 批量大小进行训练,直到验证错误收敛。

3. 2 关于深度图像的手势图像模拟

下一步,我们将用这宗方法对各种手势的深度图像进行模拟。在研究中,主要使用了纽约大学所提供的 NYU 手势数据库,其中包含 72757 个训练样本以及使用 3 台 Kinect 相机所采集的 8251 个测试样本,其中每个测试样本包括一个正面手势图像以及两个侧面手势图像。而每一个深度图像样本都对手势信息进行了标记,从而生成了合成图像。图 10 展示了手势数据库中的一个样本。我们对数据库样本进行了预处理,利用合成图像从真实图像中提取了相应的像素点位。在使用深度学习网络 ConvNet 进行处理之前,每个图像样本的分辨率大小被统一调整为 224*224,背景值设置为零,前景值设置为原始深度值减 2000。(此时假设背景分辨率为 2000)。

undefined

图 10:NYU 手势数据库。左图为深度图像样本;右图为处理后的合成图像。

定性描述:图 11 显示了生成对抗网络( SimGAN)对手势数据库的计算结果。由图可知,真实深度图像的噪声已经边缘化,且分布不连续。SimGAN 能够有效对原有图像噪声进行学习并模拟,从而产生出更加真实精细的合成图像,且不需要在真实图像上做出任何标记或注释。

undefined

图 11: NYU 手势数据库的精细测试图像示例。左图为真实图像实像,右图上为合成图像,右图下为来自苹果生成对抗网络的相应精细化输出图像。 实际图像中的主要噪声源是非平滑的边缘噪声。 学习网络能够学习模拟真实图像中存在的噪声,重要的是不需要任何标记和注释。

定量分析:

我们采用一种类似于 Stacked Hourglass 人体姿态算法的 CNN 仿真算法应用于真实图像、合成图像以及精细化合成图像处理,与 NYU 手势数据库中的测试样本进行对比。通过对其中 14 个手关节变换进行算法训练。为了避免偏差,我们用单层神经网络来分析算法对合成图像的改进效果。图 12 和表 4 显示了关于算法对手势数据库进行处理的定量结果。其中由 SimGAN 输出的精细化合成图像显著优于基于真实图像进行训练而产生的图像,其更为逼真,比标准合成图像高出了 8.8%,其中仿真模拟输出的注释成本为零。同时要注意的是,3X 代表图像训练选取了所有角度。

undefined

图 12:手势估计的定量结果,关于 NYU 手势测试集的真实深度图像。 图表显示图像与背景之间函数的累积曲线。可见,SimGAN 输出的精细化合成图像显著优于基于真实图像进行训练而产生的图像,其更为逼真,比标准合成图像高出了 8.8%。 重要的是,我们的学习网络不需要对真实图像进行标记。

undefined

表4:通过训练生成各种手势图像的相似度。Synthetic Data 为一般网络训练产生的合成图像,Real Data 为真实图像,Refined Synthetic Data 为生成对抗网络 SimGAN 输出的精细化合成图像。3X 表示对真实图像进行多角度模拟。

实现细节:关于手势图像判别的架构与眼睛图像相同,但输入图像分辨率为 224*224,滤波器大小为7*7,残差网络值为 10。判别网络D如下:

(1)Conv7x7,stride=4, feature maps=96, (2) Conv5x5, stride=2, feature maps=64, (3) Maxpool3x3, stride=2, (4) Conv3x3,stride=2, feature maps=32, (5) Conv1x1, stride=1, feature maps=32, (6) Conv1x1, stride=1, feature maps=2,(7) Softmax。

首先,我们会对R网络进行自我规则化训练 500 次,随后引入D网络训练 200 次;随后,每更新一次D网络,就相应将R网络进行两次更新。在手势估计中,我们采用 Stacked Hourglass Net 人体姿态算法输出大小为 64*64 的热点图。我们在网络学习中引入[-20,20]的随机数据集来对不同角度的图像进行训练。直至验证误差有效收敛时,网络训练结束。

3. 3 对抗训练的修正分析

首先我们比较了本地化对抗训练以及全局对抗训练的图像偏差。在全局对抗中,判别网络使用了完全连接层,从而使整个图像相对于更加精细。而本地化对抗训练则使得生成的图像更为真实,如图 8 所示。

undefined

图8:左为全局对抗训练结果,右为本地化对抗训练结果。显示了全局对抗训练与本地化对抗训练的结果偏差。左图生成的图像更精细但不真实,右图生成的图像相对真实度更高。

接下来,在图 9 中,显示了使用反复训练的历史精细化图像对判别网络进行更新,并将其与标准对抗生成的合成图像进行比较的结果。如图所示,使用反复训练的历史精细化图像刻产生更为真实的阴影,譬如在标准对抗训练中,眼睛角落里没有阴影。

undefined

图9:使用历史精细图像对判别网络进行更新的结果。左图: 标准合成图像;中图:使用历史数据对判别网络进行更新后的图像结果;右图:使用近期历史数据对判别网络进行更新的图像结果。如图所示,使用反复训练的历史精细化图像刻产生更为真实的阴影。

4 结论以及下一步工作

在文中,我们提出了一种模拟+无监督的机器学习方法,能够有效提高模拟图像的真实感。我们描述了一种新的生成对抗网络 SimGAN,并将其应用于未经标注的真实图像,获得了最好的结果。下一步,我们将继续探索为合成图像建立更为逼真的精细图像,同时研究如何对视频进行处理。

济宁IT新闻