码迷,mamicode.com
首页 > 其他好文 > 详细

机器人驾驶的神经网络愿景(下)

时间:2015-05-29 10:07:42      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:自动驾驶   神经网络   

3.4 通过缓冲增加多样性

为了避免重复范例的影响,保险起见,通过保持一个先前遇到的训练模式缓冲器来进一步增加训练集的多样性。当新的训练模式是通过数字化和变换当前传感器图像获得时,将它们添加到缓冲器中,而将旧的模式移除。我们已经尝试了四种方法确定替换哪些模式。第一种方法是替换最旧的模式。采用这种方案,训练模式缓冲区代表最近遇到行驶状况的历史记录。但如果行驶状况在一段时间内保持不变,如一段时间的右转,那么缓冲器将失去其多样性,充满了右转模式。第二个方法是随机选择一个旧模式用新的模式来替代。运用这种方法,概率论比最旧的图案更换方案保证更多的多样性,但缓冲区在持续单调的情况下依然会变得有偏向。

我们制定的下一个产生多样性的解决方案是取代那些网络作出最低误差的模式,由网络输出和期望输出差值的平方和作为测度。这个想法是为了消除网络执行最好的模式,并在训练集中留下网络依然存在困难的图片。这种方法的问题源于这样一个事实,即人类驾驶员在正确的方向上不会一直操纵。偶尔他可能分散一会儿注意力,而在不正确的方向再开始操纵。如果一个训练范例是在这短暂的失效期间收集到的,根据替代方案它将依然保持在训练缓冲区中很长一段时间,因为网络输出一个操纵响应来匹配驾驶员不正确的转向命令时会遇到麻烦。事实上,使用这种替换技术,模式从训练集中被删除的唯一方式是是否网络学会复制不正确的操纵响应,显然不是理想的结果。我考虑替换最低误差和最高误差的模式,但决定不这么做,因为模式上的最高网络误差也可能在正确响应的新输入图像上产生。解决这个问题更好的方法是添加随机替换概率到训练缓冲区中的所有模式上。这确保即使网络对某幅图从未学到产生和人一样的转向反应,但是该图最终会从训练集中消除掉。

虽然这个最低误差替换方法对保持训练集的多样性做了合理的工作,但我们发现了一个完成相同结果更简单的方法。为了确保训练模式缓冲区不会偏于某个操纵方向,我们添加一个约束来保证缓冲器中所有模式的平均操纵方向尽可能和直行接近。当选择该替换模式时,我选择那个能使平均转向方向最接近直行的模式。例如,如果训练模式缓冲区有更多的右转弯,那么只收集左转图像,缓冲中一幅右转图像的替换将使平均转向方向朝向直行。如果缓冲区已经有一个直行平均转向方向,那么旧模式(需要一个类似的转向方向)将被替换以保持缓冲器的无偏性。通过积极补偿训练缓冲器上的转向偏差,网络永远不会一直青睐于某个方向。这个活跃的偏差补偿是在网络中建立一个关于操纵的已知约束:从长远来看,左右转弯发生的频率是一样的。

3.5 训练细节

需要指定即时训练过程的最终细节是用于训练网络的变换数量和幅值。下面的数量是凭经验确定的,可以提供足够的多样性使得网络在各种情况下学习驾驶。使用上面的方法,原始传感器图像被移位和旋转14次来创建14个训练范例。每个变换范例移位大小在-0.6?+ 0.6米之间随机选择,旋转量在-6.0~6.0度之间随机选择。由Navlab照相机得到的图像中,有42度的水平视角,最大移位0.6米的图像产生的结果是,在输入图像的底部公路移位了约1/3。

随机选择的位移和旋转在原始图像上执行之前,操纵方向(适合于产生的变换图像)利用上面给出的公式被计算出来。如果得到的操纵方向比网络输出表示的最锋利的(sharpest) 转向(通常半径为20米弯度)还要大,则禁止变换,并且随机选择一个新的移位距离和旋转幅度。通过消除训练集中极端和不大可能的情况(如道路非常偏离右侧以及汽车左转的角度很大),该网络能够投入更多的表现能来处理可能的情况。

14个变换训练模式以及由当前传感器图像和转向方向得到的单一模式使用上面的替换策略插入到200个模式的缓冲器中。替换之后,对200个范例分别前后各一次反向传播算法来更新网络的权重,采用的学习速率为0.01,动量是0.8。然后重复整个过程。在三个SUN公司的SPARC工作站上每个周期需要大约2.5秒。一个SPARC工作站执行传感器图像采集和预处理,第二个实现神经网络仿真,第三个与汽车控制器进行通信并显示用于人观察的系统参数。通过这个数字化替换训练(digitize-replace-train)循环来学习驾驶(在已经测试过的域中),该网络大概需要100次迭代。以每个周期2.5秒的进度,驾驶员需要在样本路段上行驶大约4分钟。在训练阶段,驾驶员行车的速度和网络测试的速度近似,范围是5至55英里每小时。

4.用变换的性能改善

变换和缓冲训练模式提供的性能优势如图11所示。该图曲线图显示了车辆离道路中心的位移,分别使用了三种不同的网络进行测量,且车速为4(mph),在一个100米的单行自行车道上其中包括直行和左右转弯。这三个网络在150米长的道路上进行训练,该道路与测试部分的道路没有交集且在道路末端扩展了右转弯。

第一个网络(标记为“-trans-buff”)只用来自摄像机的图像进行训练。即在训练阶段,图像被数字化并送入网络。在训练范例上执行前向和反向的反向传播,然后重复此过程。第二个网络(标记为”+trans-buff“)用下面的技术进行训练。图像被数字化,然后如上面描述的那样变换14次产生15个新的训练模式。然后对15个训练模式分别执行前向和反向反向传播,接着重复该过程。第三个网络(标记为”+trans+buff“)用与第二个网络相同的变换方案进行训练,但增加了上面描述的图像缓冲方法,可以防止过度训练近期的图像。

注意,呈现给三个网络的图像数量是一样的。变换和缓冲方案不影响网络培训的数据量,只是它的分布。”-trans-buff“网络在密集的实际视频图像上训练。”+trans-buff“网络比实际图像少了15倍,但其训练集含有每个“真实“图像的14个变换像,”+trans+buff”网络收集更少的现场图像,因为在数字化一个新图像之前,它在200个模式缓冲器上执行一次前向和后向。

技术分享

三个网络的准确性通过手动测量车辆相对于道路中心的横向位移确定。只在当前视频图像上训练的很快偏到了路的右边,根据它迅速增加的偏移可以看出来。问题在于网络在训练结束时过多的学习了右转弯,变得偏向于右转。由于图像变换方案增加了多变性,第二个网络工作表现比第一个要好得多。它能够跟着整个测试路段驾驶。然而,它仍然有一种偏向于右转的倾向,如在图中车辆在大部分试运行中显示的是正位移。事实上,车辆的平均位置是道路中心偏右侧28.9厘米。由该网络得到的误差可变性也是比较大的,在“+trans-buff”图中汽车位移的范围可以看出,这个网络位移的标准差是62.7厘米。

加入先前遇到的训练模式缓冲消除了第三个网络的右偏差,并且也大大减少了与道路中心位移的幅度,如“+trans+buff“证明的那样。当第三个网络驾驶时,汽车的平均位置偏离中心靠右2.7厘米,标准差只是14.8厘米。这表示驾驶精度提高了423%。

一个单独的测试来比较使用变换和缓冲网络的操纵精度和驾驶员的操纵精度。这个测试在之前使用的同一路段上执行,但是这次测试中道路上没有太多的落叶遮蔽,所以网络的性能更好。跑了三次,每次网络以5英里每小时的速度沿着100米试验路段行驶,车辆距离中心的平均位移是1.6厘米(偏右侧),标准差是7.2厘米。当人为控制下,车辆的平均位移是4.0厘米(偏右侧),标准差是5.47厘米。当人来驾驶时汽车偏离道路中心的距离是5.70厘米。由此可以看出,驾驶人员虽然比网络更加有一致性,但是对汽车中心线的估计不太准确,因此开车稍微偏向路中心右侧。人类驾驶性能的研究发现了类似的汽车横向位置恒稳的误差和方差。Blaauw发现当人们在公路上开车时,一致的位移达到7cm非常常见。对于公路驾驶,Blaauw还报告了横向误差的标准差高达16.6厘米。

5.结果和比较

ALVINN系统的能力通过各种环境来验证。

即时训练使得ALVINN具有灵活性,在自主导航系统中它是非常新颖的。它让我们成功地训练单个网络从而在各种情况下进行行驶,包括有污垢的单行道,单行自行车道,郊区街道的双行道和双车道公路(参见图12)。使用其它传感器方式输入,包括激光测距图像和激光反射率图像,ALVINN网络已经进行训练使得在完全黑暗的环境中跟随道路行驶,在障碍物较多的环境中避免发生碰撞,在铁轨旁边行驶。ALVINN网络在没有干预的情况下行驶距离高达22英里。另外,由于确定输入图像的操纵方向仅涉及前向扫描网络,该系统每秒能够处理15个图像,这允许它以高达每小时55英里的速度行驶。在相同处理硬件的情况下,这比任何其他基于传感器的自动系统快了4倍多。

技术分享

ALVINN展现的驾驶状况灵活等级在没有学习的情况下是很难实现的。这将要求程序员1)确定哪些特征对特定的驾驶域重要2)程序探测器(使用统计或象征方法)来寻找这些重要特征3)开发一个算法,该算法从检测特征的位置来确定操纵的方向。其结果是,当手工编程系统开发出来来驱动ALVINN可以处理的域时,没有一个复制ALVINN的灵活性。

ALVINN能够学习每个新域中重要的图像特征,如何检测它们以及如何使用它们的位置来操纵汽车。在不同驾驶情况下得到的隐层表示分析表明,该网络形成与正确操纵方向相关联的图像特征探测器。当在多车道上训练时,网络为道路上的画线开发出隐层探测器,而在单车道行驶的情况下,开发的探测器对图像中道路边缘和相似强度的类似道路区域比较敏感。

利用任意图像特征的能力可能会产生问题。当ALVINN在定义不明确的土路上进行训练时,并且在路右侧有一个明显的沟。网络在学习上没有问题,并且能在一个方向上自动驾驶,但是驾驶其他方式时,网络是不稳定的(汽车从马路的一边急转到了另一边)。在分析网络的隐层表示后,它困难的原因就变得很清晰了。由于道路和非道路之间的区别不太明显,网络只开发了路本身的弱检测器,反而严重依赖沟的位置来确定操纵方向。当在相反方向上进行测试时,该网络能够使用弱的道路探测器保持汽车在路上但是不稳定,因为它学习到的右侧沟现在是在左边。ALVINN网络依靠所有的图像特征,该图像特征始终与正确操纵方向相关联。因此,在训练期间暴露他们到足够多的情形下是非常重要的,这样的话可以最小化短暂图像特征的影响。

另一方面,经验表明对于像单行道和双行道这样的环境训练几个域的特定网络更有效,而不是对所有情况训练一个网络。为了防止网络的特定性减少ALVINN的通用性,我们目前正在结合不同驾驶情况下训练的网络来实现联结与非联结方法。使用类似包容结构的一个基于规则的优先权系统,我们结合了跟随道路网络和避障网络。跟随道路网络用摄像机输入来跟随单车道。避障网络使用激光测距图像作为输入。训练适当地突然转向来防止与障碍发生碰撞,并且在前面无障碍物时一直直行。当确定操纵方向时仲裁规则给跟随道路一个优先级,在避障网络输出一个急剧转向的命令时除外。在这种情况下,避免即将发生的碰撞优先于跟随道路,操纵方向由避障网络确定。这两个网络和仲裁规则组成了一个系统,该系统能够保持在道路上,能够急转来防止碰撞。

为了方便其他基于规则的仲裁方法,我们在ALVINN上增加了一个非联接模块,该模块保持汽车的位置在地图上。知道它的地图位置后可以允许ALVINN使用仲裁规则如”当位于双车道的一段直线公路时,优先依赖于双车道公路网络“。这个符号映射模块还允许ALVINN做出目标导向的决策,例如在十字路口时选择那条路线以及何时可以到达预定地点。最后,我们正在尝试联结技术(如任务分解结构和meta-pi结构)来更加无缝地组合网络(相比较象征规则而言)。这些联接仲裁技术使ALVINN能够结合网络输出(该网络用不同的传感器形式来执行相同的任务进行训练),并决定什么时候一个新的专家必须经过培训来处理目前的情况。

6.讨论

一个真正的移动汽车必须应对各种各样的驾驶情况和环境条件。所以,一个自动导航系统具有适应新域的能力是至关重要的。联结网络的无监督训练是实现这种灵活性的一种手段。但教一个人工神经网络学习基于人类的驾驶行为有许多挑战。这些挑战中突出的是需要保持足够的训练集以确保网络得到任务的充足表示。真正收集人类驾驶的传感器数据(使训练集多样性非常难保持)的两个特点是时间相关并且遇到的情况是有限的。几乎相同传感器输入的延迟间隔可以偏置一个网络的间隔表示并降低之后的驾驶精度。教练的驾驶精度严重制约了涵盖原始传感器数据的各种情况。

这章描述的“即时”训练方法解决了这些困难。即时训练的关键思想是产生现场训练数据的过程模型可以用额外的实际模式来增强训练集。通过模拟成像过程和人类驾驶的操纵行为,即时训练生成的模式有充足的多样性使得人工神经网络可以学习更加鲁棒的表示。由此产生的网络能够在广泛的情况下精确驾驶。

机器人驾驶的神经网络愿景(下)

标签:自动驾驶   神经网络   

原文地址:http://blog.csdn.net/u010182633/article/details/46136713

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!