天问

苹果首篇AI论文SimGANs代码及详解

作者:Michael Dietz,Waya.ai创始人 
原文:
SimGANs - a game changer in unsupervised learning, self driving cars, and more 
译者:王安阳 上海交通大学研究生在读 
责编:王艺 寻求报道及投稿请请联系wangyi@csdn.net,加微信Qunnie-Yi申请入群。

【编者按】

本文为苹果最新AI论文SimGANs写就,作为GANs的变种,SimGANs一经提出便引发众议。本文分析论文思想及代码,并就将SimGANs应用于基于无监督学习的自主驾驶为例进行探讨。文中多连接,点击阅读原文即可查看,推荐您一一打开,会有惊喜。

P.S. 代码即在链接中

【译文】

苹果公司在2016年年尾发布了其首篇AI论文《通过对抗训练从模拟的和无监督的图像中学习》(Learning from Simulated and Unsupervised Images through Adversarial Training)。该文使用了如今最炙手可热的深度学习“对抗训练”方法,提出了一个所谓“模拟+无监督学习”(simulated + unsupervised learning)的方法,可以使用合成的和未标记的数据训练先进的神经网络。文章一经登出,便广受关注。

本文将分析为什么说SimGAN方法有着巨大的潜力,并把它应用于一个有趣的问题——自动驾驶。

我们将参考SimGAN的一个实现,以及除了waya.ai(译者注:作者为Waya.ai的创始人)之外我最喜欢的公司——Comma.ai,来进行讲解。(译者注:Comma.ai是一家致力于自动驾驶技术研发的科技公司)

论文思想简介


苹果这篇论文背后的核心思想是,标记的数据通常是稀缺和昂贵的。然而,标记数据可以通过强大的引擎(如Unity)或其他方法进行合成。问题是,合成的和真实的数据之间存在差距,这导致用合成数据进行训练的网络不能很好地推广到真实世界。

“模拟+无监督学习”一文认为,使用真实的,非必需有标记的数据集,可以跨越这一差距。生成网络(generator)可以通过“对抗训练”来学习精炼(refine)合成数据,使得它更接近于真实数据集的分布,同时保持合成数据的标注(即,它的标签保持有效)。

以下链接是要解释的概念的相关代码。使用精炼网络(refiner)改进合成数据,可以:

  1. 通过自正则化损失项使精确和合成数据之间的差异最小化来保留标注。

  2. 使合成数据看起来是真实的(GAN的标准概念)。

精炼网络(refiner)将合成数据样本作为输入,输出相同维度的改进数据样本。判别网络(discriminator)将数据样本作为输入,并将其分类为改进的或真实的。

在苹果所发“模拟+无监督学习”一文中,GAN架构和培训过程是标准的,但是建议两种简单和直观的方法来提高应用于GAN的生成数据的质量。

  1. 在当前的GAN架构中,判别网络仅对最新产生的数据进行训练。这导致其忘记先前生成的数据的特征,并且意味着生成网络可以重新引入旧的特征以欺骗判别网络。生成的数据就是生成的数据,判别网络应该总能将其正确识别。设置一个先前生成的数据的历史缓冲器,就可以用来自当前生成网络的数据以及来自过去的生成网络的数据共同训练该判别网络。

  2. 在当前GAN架构中,判别网络通过全局分析输入数据将数据分类。这意味着生成网络可以通过在生成的数据中局部作假来欺骗判别网络。真实数据的任何局部数据块都应该看起来是真实的,因此判别网络应该将数据分成局部块并且将每个块分类为真实的或生成的,将这些局部对抗损耗平均化以获得更平衡的全局对抗损失。

将SimGANs应用于基于无监督学习的自主驾驶


想象你是Comma.AI的一员,有大量的由Dash收集的真实的未标记的驾驶数据。虽然你当前的标记数据的方法很棒,但你只有少量的有标记数据。使用SimGAN,你可以训练一个改进神经网络来改进侠盗飞车的数据(开发者使用侠盗飞车游戏模拟真实车辆行驶),使数据看起来像是来自你的真实数据集,同时保留标注。现在,你可以在这个几乎无限精细标记的数据集上训练你的生产模型,并使用少量的真实标记数据集作为验证。

我没有参加任何自动驾驶的课程,但我知道他们使用侠盗飞车和模拟环境来训练他们的模型。有了这样的技术,他们的软件可以更接近现实世界。SimGAN在现实世界中似乎有许多可能的应用,自主驾驶只是我选择使用的一个有趣的例子。


【CSDN_AI】面向AI从业者,分享业内领先案例

博客地址:http://blog.yoqi.me/?p=2819
扫我捐助哦
喜欢 0

这篇文章还没有评论

发表评论