这是 19 年的一篇来自 CMU 的文章。文章中使用了 TORCS 模拟器,和 DDPG 算法。作者没有开源代码,但有一个韩国人做了类似的项目,其 Github 仓库为:https://github.com/NOHYC/autonomous_driving_car_project
1. 简介
现在深度强化学习 (DRL) 在自动驾驶 (AD) 领域 依然有很多挑战。比如在控制方面的高纬度的状态空间,和复杂的动态环境,从离散空间控制连续空间等。视觉方面的物体检测和追踪,深度估计,行为预测还有场景理解。更重要的是,我们的控制器必须在如此困难的情况下正确和快速地行动,以避免撞到物体并保持安全。
本文的主要贡献是修改了深度确定性策略梯度(DDPG)算法 [1] 使其在 Open Racing Car Simulator (TORCS) 环境,自主汽车可以快速运行并保持车道。并且为了证明方法的有效性,本章在 TORCS 中以包含不同的视觉信息模式评估代理。
参考:
2. State-of-the-art DRL
名称 | 种类 |
---|---|
DQN [2] | value-based method |
Double DQN [3] | value-based method |
Dueling DQN [4] | value-based method |
A3C [5] | value-based method |
deterministicpolicy gradient [6] | policy-based method |
deepdeterministic policy gradient [1] | policy-based method |
PGQL [7] | policy-based method |
参考:
- 2. Human-level control through deep reinforcement learning
- 3. Deep Reinforcement Learning with Double Q-Learning
- 4. Dueling Network Architectures for Deep Reinforcement Learning
- 5. Asynchronous Methods for Deep Reinforcement Learning
- 6. Deterministic Policy Gradient Algorithms
- 7. Combining policy gradient and Q-learning
3. 方法
关于算法这里不做详细的介绍,只写一些理念上的理解
由于自动驾驶的动作空间处于是连续的,所以不适合使用值迭代。因此这里选用基于策略迭代的 DDPG 算法。此外,该算法使用决定性的动作,而不是随机动作函数,因此可以快速收敛。
TORCS 除了可以获取图像之外,还有很多其他的传感器参数。实验使用了 29 个参数,具体如下:
名称 | 范围(单位) | 描述 |
---|---|---|
ob.angle | [-pi, pi] | 小车方向与轨迹轴线方向的夹角 |
ob.track | (0,200)(m) | 200 米范围内轨迹边缘与汽车之间的距离 |
ob.trackPos | (-inf,inf) | 小车到轨迹中心线的距离 |
ob.speedX | (-inf,inf)(km/h) | 纵轴速度 |
ob.speedY | (-inf,inf)(km/h) | 横轴速度 |
ob.speedZ | (-inf.inf)(km/h) | Z轴的速度 |
动作空间共三维:加速度(0 - 1),刹车(0 - 1),方向(-1 - +1)。
整个模型由一个actor网络和一个critic network组成,如下图所示。actor网络作为策略,将输出动作。 两个隐藏层都由 ReLU 激活函数组成。 批评者模型作为 Q 函数,因此将动作和观察作为输入,并输出每个动作的估计奖励。
小车的奖励方程为:
其中 是沿着轨迹方向的速度,而 是偏离轨迹方向的速度。
作者表示,由于模拟器中存在很多不鲁棒的判断,导致了他们的算法在评估阶段表现的并不稳定。但是从整体趋势上来看,从 1 到 150 episode,代理是由明显进步的。
本文作者的实验条件实在艰苦,只有 4 块 GTX-780 显卡,但做出来的实验效果不错。文章中实验过程和方法都描述的非常清楚,是值得复现的一篇论文。刚刚在领英上看到了其中一个作者目前在英伟达工作,希望往后的实验可以有更好的设备支持,再创佳作!
本文使用 Zhihu On VSCode 创作并发布
评论(0)
您还未登录,请登录后发表或查看评论