Learning A Driving Simulator
(简单的借助谷歌翻译一下,深入研究可参考原文或源码)
Abstract
comma.ai的自动驾驶汽车人工智能方法1基于通过模拟学习克隆驾驶员行为和计划机动的代理人未来的事件在路上。 本文阐述了我们的一种研究方法用于驾驶模拟。 我们学习模拟的地方。 在这里我们调查变量具有经典和学习成本函数的使用生成的自动编码器用于嵌入道路框架的对抗性网络。 之后,我们学习了一个转嵌入空间中的转换模型,采用动作条件递归神经网络网络。 我们展示了我们的方法可以持续预测逼真的视频,尽管过渡模型在没有损失函数的情况下在像素空间中起作用。
Introduction
自动驾驶汽车是近期人工智能研究最有前途的前景之一。这项研究的最新技术利用了大量标记和上下文丰富的数据,这些数据在驾驶中非常丰富。从复杂的感知和控制角度来看,正确解决驾驶的技术可能会扩展到其他有趣的任务,例如视频和计划中的动作识别。一种具有经济吸引力的自动驾驶汽车的方法,虽然仍在扩展AI前沿应该基于视觉,这也是人类驾驶员使用的主要传感器。基于视觉的控制和强化学习最近在文献[7] [8] [9] [10]中取得了成功,这主要归功于(深度,复发)神经网络以及对世界或游戏迭代的无限制访问。
这种交互提供了用新策略重新审视状态并模拟用于训练基于深度神经网络的控制器的未来事件的可能性。例如,Alpha Go [9]使用深度卷积神经网络来预测使用几个游戏的结果从给定状态赢得游戏的概率,其中许多游戏正在播放Alpha Go本身的先前迭代。 Go游戏引擎也用于模拟游戏的可能展开和 马尔可夫链树搜索。要仅使用游戏屏幕学习玩Torcs [7]或Atari [8],还需要使用几个小时的游戏时间。
对于控制问题,学习代理与世界的无限次迭代不容易负担,有两种可能的解决方案。解决方案是手动编码模拟器或学习模拟。手工编码模拟器涉及领域专业知识,用于定义物理规则和建模世界的随机性。但是对于大多数情况来说,这种专业知识已经涵盖了构成相关控制问题的所有信息,例如飞行模拟器[11],机器人走路[12]等.
以前学习模拟控件的成功方法是基于代理物理的状态空间表示[13]。 其他仅视觉模型专注于低维度[15]或具有简单纹理的视频,例如Atari游戏[14] [16]。 纹理丰富的方法基于用于动作识别的被动视频预测[17],而没有外部代理修改视频的未来并且不产生数据的紧凑表示的可能性。本文对这一学习视频模拟文献做出了贡献。 没有制作图形引擎或世界模型假设。 我们表明,可以训练模型进行逼真的视频预测,同时计算低维紧凑表示和动作条件转换。 我们将模拟世界的控制权留给未来的工作。 在下一节中,我们将描述用于研究现实世界道路视频的视频预测的数据集。
Dataset
我们公开发布了本文中使用的部分驾驶数据。该数据集具有与comma.ai自动驾驶汽车测试平台相同的视频和传感器。
我们在Acura ILX 2016的挡风玻璃上安装了Point Grey相机,以20 Hz的频率拍摄道路照片。在发布的数据集中,共有7.25小时的驾驶数据分为11个视频。释放的视频帧是从捕获的屏幕中间开始的160×320像素区域。除了视频之外,数据集还有几个传感器,这些传感器以不同的频率进行测量并内插到100Hz。来自传感器的示例数据是车速,转向角,GPS,陀螺仪,IMU等。有关数据集和测量设备的更多详细信息,请访问配套网站。
我们还记录了测量这些传感器的时间戳以及捕获相机帧的时间戳。在我们的生产流程中,测量时间和简单的线性插值用于同步传感器和相机框架。我们正在发布HDF5文件中的原始传感器和相机框架,以便在机器学习和控制软件中使用。在本文中,我们专注于相机框架,转向角度和速度。我们通过将它们下采样到80×160并将像素值重新归一化为-1和1来预处理相机帧。
该变换数据集的样本图像如图1所示。
Problem Definition
xt 代表第t帧图像的输入. Xt = {xt−n+1 , xt−n+2 , ..., xt}表示一个视频的图像时间序列. 这些帧与控制信号St = {st−n+1 , st−n+2 , ..., st }是相关的, At ={at−n+1 , at−n+2 , ..., at } 表示自身的速度和方向盘角度.学习道路图像的仿真可以定义为对函数F的预测 : R80×160×3×n × Rn × Rn →R80×160×3,即从(Xt,St,At) 预测下一帧 xt+1,求函数 F : xt+1 = F (Xt , St, At ).
请注意,此定义是高维度的,并且维度之间具有很高的相关性。在机器学习中,已知这些问题会收敛的比较慢或者欠拟合[26]。例如,之前的工作[20]表明,当使用没有适当正则化的卷积动态网络时,该模型只是学习接近本身的转换,同时由于时间的相关性而获得比较低的损失函数评价。以前的方法直接学习了函数F,但是仅在非常简单的人工视频中展示[14]。最近,论文[20] [17]可以生成具有复杂纹理的视频,但是所提到的工作没有使预测根据当前动作的转换而变换的问题,并且它们不产生数据的紧凑的中间表示。换句话说,他们的模型是完全卷积的,没有下采样,也没有低维隐藏代码。我们认为紧凑的中间表示对我们的研究很重要,因为概率,过滤和由此得出的控制动作在很高维度的密集空间下是一种病态的定义[18]。
据我们所知,这是第一篇试图从现实世界公路场景中学习视频预测的论文。因此,在第一篇论文中,我们决定以分段方式学习函数F,因此我们可以单独调试它的模块。首先,我们学习了一个自动编码器,将帧xt嵌入到高斯潜在空间zt∈R2048中,其中维数2048是通过实验选择的,而高斯假设是用变分自动编码贝叶斯[1]强制执行的。第一步简化了从像素空间直接学习转换到潜在空间学习的问题。除此之外,假设正确地学习了关于潜在空间高斯性的自动编码器,只要转换模型永远不会离开嵌入空间的高密度区域,我们就可以生成逼真的视频。这个高密度区域是半径ρ的超球面,它又是嵌入空间的维数和高斯先验的方差的函数。我们将在下一节中详细介绍自动编码器和转换模型。
Autoencoder
为了学习数据嵌入,我们选择了一个模型,该模型强制潜在空间的概率分布为高斯分布。特别是为了避免在原点中心的超球面内的低概率的不连续区域。这种不连续性可能使得在潜在空间中学习连续过渡模型变得更加困难。变分自动编码器[1]和相关工作[19] [21]最近成功的学习生成模型在潜在和原始数据空间中具有高斯先验。不幸的是,原始数据空间中的高斯假设不适用于自然图像,并且VAE预测通常看起来模糊(参见图3)。另一方面,生成对抗网络(GAN)[22]和相关工作[2] [3]学习生成器旁边的生成模型成本函数。他们通过交替培养生成网络和鉴别网络来实现这一目标。生成模型将样本从潜在空间分布转换为来自所需数据集的数据。鉴别器网络试图从生成器采样的图像中分辨出所需数据集中的样本。训练发生器以“欺骗”鉴别器,因此鉴别器可以被认为是发生器的学习成本函数。
为了我们的目的,我们不仅需要学习从潜在到道路图像空间的发生器。 但也是从道路图像回到潜在空间的编码器。 我们需要结合VAE和GAN。 直观地,人们可以简单地将VAE方法与学习代价函数相结合。 文献Donahue等。 [23]提出了双向GAN,它将生成和编码都学习为双射变换。兰姆等人 [24]提出了判别性生成网络,它使用先前训练的分类器的特征之间的距离作为成本函数的一部分。最后,Larsen等。人。 [25]提出在GAN旁边训练VAE,其中编码器优化潜在空间中的高斯先验和GAN鉴别器网络提取的特征之间的相似性。发生器接收来自潜在空间分布和编码器网络输出的随机样本作为输入。优化发生器以欺骗鉴别器并最小化原始图像和解码图像之间的相似性。鉴别者仍然只能训练从合法的图像中辨别假货。我们用Larsen等人 [25]训练我们的自动编码器的方法。在图2中,我们将该模型的示意图作为我们架构的一部分。根据[25],编码器(Enc),生成器(Gen)和鉴别器(Dis)网络经过优化,可最大限度地降低以下成本函数:
在(1)Lprior = DKL(q(z | x)|| p(z))是编码器输出的分布q(z | x)和先验分布p(z)之间的Kullback-Liebler散度)。 这是相同的VAE正则化器。 这里先验分布是p(z)是高斯N(0,1),我们使用重新参数化技巧[1]来优化该正则化器。 因此,在训练期间,我们得到z =μ+Δσ并且在测试时间z =μ,其中μ和σ是编码器网络的输出,并且 是一个高斯随机向量,具有与μ和σ相同的维数。
----------------证明略-------------------
我们训练了这个自动编码器200回合。每个回合由10000个梯度更新组成,批量大小为64.如前一节所述,从驱动数据中随机抽取批次。我们使用Adam进行优化[4]。自动编码器架构遵循Radford等人 [3],生成器由4个反卷积层组成,每个层次后进行批量归一化和泄漏-ReLU激活。鉴别器和编码器由卷积层组成除了第一层之外,每个都进行批量标准化。激活功能是ReLU。在应用批量标准化和ReLU之前,Disl是解码器的第三卷积层的输出。鉴别器网络的输出大小为1,其成本函数为二进制交叉熵。编码器网络的输出大小为2048.这种紧凑的表示几乎是原始数据维度的16倍。有关网络规模和更多详细信息,请查看图2和本文的配套代码。样本编码解码和目标图像如图3所示。
在训练自动编码器之后,我们修复其所有权重并使用Enc作为训练过渡模型的预处理步骤。 我们将在下一节中描述转换模型。
Transition model
在训练上述自动编码器之后,我们获得应用Enc xt→zt的变换数据集。 我们训练RN N:(zt,ht,ct)→zt + 1来表示代码空间中的转换:
其中W,V,U,A是可训练的权重,ht是RNN的隐藏状态,而ct是关联的控制速度和角度信号。 我们在ct和zt之间留下LSTM,GRU和乘法迭代以供将来研究。 优化可训练权重的成本函数只是均方误差:
很容易看出上式是最优的,因为我们在训练自动编码器时在编码z的分布中施加高斯约束Lprior。 换句话说,MSE等于正常分布随机变量的对数似然的常数因子。 给定预测编码zt + 1,我们可以将未来帧估计为xt + 1 = Gen(zt + 1)。 我们训练了一个长度为15帧的过渡模型。 我们在前5帧中使用了teacher forcing,并在剩余的10帧中将输出作为新输入反馈。 换句话说,使用Enc(xt)计算z1,...,z5并将其作为输入。 我们将输出z6,...,z15作为输入反馈。 在RNN文献中,作为输入的反馈输出被非正式地称为RNN幻觉。 值得注意的是,当它们作为输入反馈时,我们认为输出的梯度等于零,以避免微不足道的解(trivial solution)。
Result
我们花了这项研究的大部分努力来研究可以保护道路纹理的自动编码架构。 如前所述,我们研究了不同的成本函数。 尽管在MSE方面结果相似,但使用生成对抗网络的学习成本函数具有最具视觉吸引力的结果。 在图3中,我们显示了使用两种不同成本函数训练的模型的解码图像。 正如所料,基于MSE的神经网络生成模糊图像。 我们目的的主要问题是通过模糊重建将车道标记连接成一条长车道。同时,模糊重建不会保留领先的汽车边缘。 由于几个原因,这是不可取的,主要原因是它摆脱了用于视觉测距和领先的卡特估计的主要线索之一。 另一方面,MSE学会比基于对抗的模型更快地生成弯曲的车道标记。 学习用汽车转向角信息对像素进行编码应该可以避免这个问题。 我们将此调查留待将来的工作。
一旦我们获得了良好的自动编码器,我们就训练了过渡模型。预测帧的结果如图4所示。我们在5Hz视频中训练了过渡模型。学习的过渡模型即使在100帧之后也能保持道路结构。当从具有不同种子框架的过渡模型中采样时,我们观察到常见驾驶事件的模拟,例如通过车道,接近领先车辆和领先车辆离开。该模型无法模拟曲线。当我们使用曲线上的驾驶帧初始化过渡模型时,过渡模型会快速拉直车道并返回模拟前进。然而,我们可以在不明确优化像素空间中的成本函数的情况下学习视频生成的过渡。此外,我们相信通过更强大的过渡模型(深度RNN,LSTM,GRU)和上下文编码(加上像素的传感器融合),可以进行更逼真的模拟转向角和转速。我们在本文中发布的数据集包含了实验这种方法所需的所有传感器。