我们这里使用了环境状态作为输入。使用Deep Q-learning做为学习算法学习。环境奖励定义为在单位时刻车辆沿跑道的前进距离。另外,如果车出了跑道或者和其他的车辆相撞,会得到额外惩罚。环境状态包括车辆的速度、加速度、离跑道的左右边缘的距离,以及跑道的切线夹角,在各个方向上最近的车的距离等等。车的行为包括向上换挡、向下换挡、加速、减速、向左打方向盘、向右打方向盘等等。
与普通的Deep Q-learning相比,我们做了以下的改进。首先,使用了多步TD算法进行更新。多步TD算法能比单步算法每次学习时看到更多的执行部数,因此也能更快地收敛。其次,我们使用了Actor-Critic的架构。它把算法的策略函数和值函数分别使用两个网络表示。这样的表示有两个优点:1. 策略函数可以使用监督学习的方式进行初始化学习。2. 在环境比较复杂的时候,学习值函数非常的困难。把策略函数和值函数分开学习可以降低策略函数学习的难度。
使用了改进后的Deep Q-learning算法,我们学习到的策略在TORCS中可以实现沿跑到行走,换道,超车等行为。基本达到了TORCS环境中的基本驾驶的需要。Google DeepMind直接使用图像作为输入,也获得了很好的效果,但训练的过程要慢很多。
现有的增强学习算法在自动驾驶模拟环境中获得了很有希望的结果。但是可以看到,如果需要增强学习真正能够在自动驾驶的场景下应用,还需要有很多改进。第一个改进方向是增强学习的自适应能力。现有的增强学习算法在环境性质发生改变时,需要试错很多次才能学习到正确的行为。而人在环境发生改变的情况下,只需要很少次试错就可以学习到正确的行为。如何只用非常少量样本学习到正确的行为是增强学习能够实用的重要条件。
第二个重要的改进方向是模型的可解释性。现在增强学习中的策略函数和值函数都是由深度神经网络表示的,其可解释性比较差,在实际的使用中出了问题,很难找到原因,也比较难以排查。在自动驾驶这种人命关天的任务中,无法找到原因是完全无法接受的。
第三个重要的改进方向是推理和想象能力。人在学习的过程中很多时候需要有一定的推理和想象能力。比如,在驾驶时,不用亲身尝试,也知道危险的行为会带来毁灭性的后果。 这是因为人类对这个世界有一个足够好的模型来推理和想象做出相应行为可能会发生的后果。这种能力不仅对于存在危险行为的环境下下非常重要,在安全的环境中也可以大大加快收敛速度。
只有在这些方向做出了实质突破,增强学习才能真正使用到自动驾驶或是机器人这种重要的任务场景中。希望更多有志之士能投身这项研究,为人工智能的发展贡献出自己的力量。