原创:晏茜 资料来源:时老师
本文主要介绍强化学习在智能交通,尤其是自动驾驶领域的应用。首先带大家了解强化学习的内涵,然后分析如何构建强化学习的问题,最后会基于项目内容去讲解自动驾驶领域中如何应用强化学习。
1. 认识强化学习
我们来认识一下什么是强化学习。强化学习它不只是计算机科学中的内容,它其实是一个交叉性的综合学科,如图所示,它是计算机科学、工程学、数学、经济学、心理学、神经科学等学科的交叉。
机器学习的分类
机器学习(Machine Learning)分为监督学习(Supervised Learning),无监督学习(Unsupervised Learning),强化学习(Reinforcement Learning)三类。强化学习与监督学习,无监督学习既有一些交集,也有一些差异。
应用场景
强化学习有很多的应用场景,目前落地较为广泛的应用场景是游戏AI。许多强化学习的论文都是发表在游戏领域,比如Atari,AlphaGo等都是游戏AI的应用。
第三张图开发的项目是基于强化学习的卡牌游戏,卡牌游戏主要是用蒙特卡洛树搜索(MonteCarlo Tree Search)的办法,结合强化学习自博弈(Self-play)去训练卡牌,让它能够像人一样做决策,甚至超过人的决策,去战胜人类玩家。
另外一个比较具有发展前景的落地场景是强化学习在自动驾驶决策领域的应用。常体现在基于混合交通流,控制多个自动驾驶车辆和人类进行交互,以此改善交通拥堵的情况,并提升通行效率。
在电商中的应用主要是利用强化学习去做推荐。
推荐系统涉及到许多强化学习的内容,尤其是如何去学习离线的数据。推荐系统可以通过收集数据,推荐给客户较为满意的商品,以此获得更高的reward。
2. 强化学习问题构建
这部分的内容主要围绕强化学习问题的构建展开。
强化学习问题主要包含几个关键的组成部分。最关键的部分是observation,也就是观测到的信息,reward相当于是指导的信号,action是实际做出的决策。强化学习模仿的是人脑如何去对信息进行思考和决策。
举一个实际的例子,比如说观测到游戏的信息,通过CNN将观测到的pixel image编写成代码,然后作为observation输入你的agent,agent会根据游戏智能体获得到的reward来进行计算,在游戏中,我们可以把杀死了几个敌人,损失了多少血等等定义为reward,完成计算reward之后,再不断地优化并输出action,然后返回 loop,再观测新的observation,计算出reward,去优化你的action。
Atari游戏存在一些问题,这也是强化学习中普遍存在的问题。其中一个问题是游戏的规则我们是知道的,但是对手如何去模拟是不知道的,也就是说,在棋牌游戏中,我们本身对出牌规则是了解的,但是我们很难去预测对手的出牌方式。预测对手的出牌方式其实就是一种不完全信息的博弈,我们要通过观测前面的observation去预测对手的出牌策略,以此优化我们的出牌策略。
3. 自动驾驶决策规划应用
上图论文主要内容是介绍基于多智能体的强化学习,该算法基于图强化学习并广泛应用于智能网联车辆领域。
上图论文解决的问题是如何通过多车协同规划提升交通系统的通行效率。多车协同是在仿真系统里同时存在人类专用的车辆和自动驾驶车辆。它与单车智能的只关注去提升自己的通行效率是不太一样的。单车智能是只关注如何让车辆自己去更快的换道,更安全的并线的问题等等。可能在2025年或者是四五年之后,随着自动驾驶车的普及,我们可能至少会有20%的车辆是自动驾驶车辆,那么这时多车协同会帮我们解决网联车的系统如何去协同决策的问题,它的系统也更为复杂。
文中把系统抽象为包含两种agent。一种是Automated-vehicle agent,另一种是Human-driven agent。主要观测的状态空间(state space)包含自主控制车辆(ego vehicle)的相对速度和位置,以及来自自主控制车辆领导者(leader)和跟随者(follower)的相对速度和位置。 仿真环境为一个开源的混合自治模拟器。
这篇论文的主要创新点在于特征选择的问题定义。首先我们考虑的是车辆只能进行局部观测,也就是说,我们雷达的探测范围在扫描比例尺范围之内,这是因为我们的雷达不可能观测到整个的全局的信息,而是始终观测到一些局部的信息。观测到局部信息之后,我们就会定位到周围相关车辆的数目。在这里有一个值得思考的问题,那就是周围这些车辆的信息都是重要的吗?我们是否需要把所有车辆的信息放入到我们的决策框架中呢?这是我们论文中的主要思考以及解决的一个问题。确定重要特征是此项工作的核心创新点。我们的决策空间是acceleration和deceleration。这里我们主要研究的是一维的动作空间,当然此项目也可以拓展到二维,但是二维的动作空间相对比较复杂,还会涉及到换道的问题。
这里定义的回报函数主要考虑的是如何去提升系统的通行效率,所以我们的回报函数是一种全局的考虑,也就是说我们需要考虑如何让交通通行系统的效率及安全性提高。安全性主要是用它的acceleration 和deceleration去定义。
如上图所示,接下来我们考虑的是先用图卷积神经网络(Graph Convolution Neural Networks)对自动驾驶车所有agent进行编码,放入到Attention Module里边,然后变成一个图神经网络(Graph Attention Neural Network),然后进行特征整合,我们之后再进行Attention on neighbors的操作, 这里的Attention 模块主要是去对对所有agent进行重要性的观测。
这里我们利用Actor-critic网络去生成连续动作控制,Actor-critic使用的是共享参数, 也就是说,在每个网络中它的参数都是共享的,不是单独的网络,这样的话有助于模型的训练,另外也有助于多车的协同操作。
以上是本文介绍的全部内容,欢迎批评指正。
|