文稿整理者:何常鑫
审稿&修改:李庆标
本人总结于2022年1月12日剑桥大学计算机系Prorok 实验室李庆标博士关于“基于GNN为群体机器人构建信息分享机制”在深蓝学院的公开课。
在社交网络中,好友彼此的关系就是通过图来表达的;城市交通系统中站点之间的连接关系也可以用图来表示;我们平时接收的推送往往也是根据用户和他感兴趣的话题的联系所构建的系统;新冠等病毒在人体内的传播同样也可以理解为图的形式。
上述这些可以用图表示的情景其实都和图神经网络有着一定关联,那么我们该如何理解图神经网络呢?
01 如何理解图神经网络呢?
我们可以把图神经网络和处理图片的神经网络进行对比:图片可以理解为每个像素点和相邻点相互连接形成的图结构,图片上每个像素点和周围像素点的关系相对固定,都可以用上下左右的位置关系来表达,而普通的图上的点与点之间的位置和距离相对灵活。
在用图来表达机器人的相对位置关系的时候,我们可以通过图卷积的方式收集一个机器人和它相邻点的信息,从而实现了去中心化的图神经网络。机器人根据相邻机器人提供的信息进行决策,其实可以看作是一个节点分类(node classification)问题,而利用多次的卷积操作,机器人将会获得更大范围的数据。
图深度网络从16年至今,已经出现了一些不错的“打榜”数据库,比如斯坦福提供的数据库,还有比较主流的Pytorch geometric和DGL数据库,我在研究中用得比较多的是宾夕法尼亚大学提供的Alelab-Upenn数据库。
图一:图片可以看作一种特殊的图
我们该如何把机器人的路径规划问题改为图神经网络或者神经网络可以解决的问题呢?一个经典的神经网络通常包括如何去定义一个问题,收集数据,进行训练,观测和调参,最后运行模型。对于robot learning相关的方向,相比于图像分类等问题,如何去定义是非常关键和具有针对性的。我博士目前的研究内容就是基于图神经网络,实现去中心化的路径规划。
接下来,我将介绍如何将群体机器人路径规划的问题转化为机器人的连续的动作决策的问题。
02 机器人连续的动作决策问题
首先,为什么要研究群体机器人?
在目前,单体机器人和机械臂已经在工厂等领域有了一定应用,而群体机器人的研究可以提升多个机器人彼此之间合作的效率,使得它能够应对更复杂的环境和问题。比如针对仓储物流,自动驾驶和都市安防,这些应用的实现,需要保证每个机器人可以无冲突地达到目的地去执行任务。
而这个任务的难点是什么呢?A星算法可以使机器人从A点到B点的路径最优,但是它的复杂度也会随着机器人数量的增加指数性的增长,其它路径规划算法也存在着同样的问题。
针对群体机器人的路径规划,主要包括两种思路,一种是中心化的算法。另一种是去中心化的。中心化的算法需要统一收集机器人的状态信息,来计算它们各自的路径;去中心化算法可以让机器人各自为阵,利用各自视野内的局部信息,通过机器人的相互通信,引导机器人抵达目的地。而今天介绍的主要是去中心化的算法,我将介绍如何从问题定义到实施,利用图神经网络来实现多机器人的路径规划。
如何定义机器人群路径规划问题?
我们通常将机器人的路径规划问题转化为一系列动作决策问题,我们希望通过每个机器人每一时刻的局部信息和相邻机器人的信息来进行动作决策,使他们可以通过当前位置达到目的地。每个机器人具有它视野内的障碍物,目标点和环境信息,我们可以通过交叉熵损失函数进行对比,来求得每一步的最优解。并且,我们可以用中心化专家算法生成的数据集去训练我们的去中心化算法,这样的训练机制也可以被称为模仿学习。
而具体的实现可以利用图卷积的方式收集节点和其周围点的信息集合,使机器人除了自己的信息,还有更多相邻的信息。我们的框架包括如下几个部分:一是通过专家算法生成训练集,转化为(状态,地图,目标)三个通道的输入。接下来,通过卷积神经网络,图神经网络和全连接层的操作,生成用于决策的动作,将动作和专家算法的结果进行交叉熵比对,从而训练我们的去中心化算法。
图二:GNN用于机器人路径规划算法流程
具体而言,在数据生成阶段,我们会给各个机器人分配不一样的起点和终点。在此基础之上,我们会利用专家算法生成最优解,并且采集每个时刻每个机器人视野范围之内的环境信息,目标信息和视野内的机器人信息作为网络的输入信息。
在去中心化的框架中,我们利用CNN实现单个机器人的信息编码,利用GNN实现信息的通信和共享,最后利用多层感知机确定最后的决策,并利用交叉熵来优化网络。
当一个网络训练好后,我们可以对其进行测试和评估。首先,我们通过前反馈的方式得到动作决策,然后检测动作是否和障碍物以及其他机器人状态存在冲突,如果有的话,我们将要求机器人停止运动;如果没有,机器人将正常运动,并进行状态更新。当机器人到达目的地后,我们将检测所有机器人是否达到目的地,如果没有,我们将记录相应的最大步长。
为了进一步改进网络,我们还提出了OE机制(online expert),即在训练过程中随机采集一些数据,并测试在这些场景下,机器人是否能成功达到目的地,如果不可以,我们会利用专家系统生成解决方案,并把生成的新数据加入训练集,从而实现训练集的扩充,更好的训练网络。这种方法可以不断提升网络在处理自己不擅长的场景时的能力。
在实验效果的评测中,我们需要验证的是:图神经网络的参与是否会改进系统的性能?网络是否通过去中心化的机制实现了更好的扩展性?而我们可以用成功率和步长来评估网络的性能。
我的另一个工作是对于此前工作的改善,我们希望机器人利用注意力机制有的放矢的利用周围机器人的信息,从而可以相对快的到达目的地。在Message-Aware Graph Attention Networks这个工作中,我们通过限定通信半径来建立拓扑矩阵,并通过训练得到节点之间的权重,每个相邻机器人的权重会不断动态变化。
实验效果证明,随着机器人数量的增加,相比于GATF和GNN等框架,MAGAT展现了更稳定的性能,并且机器人实现了很高的到达目的地的成功率,而运算时间也要远远小于专家系统。
采用MAGAT控制机器人路径效果图
作为总结,我所做的工作就是提出了一个端对端的基于学习的去中心化的路径规划框架。它采用CNN进行局部特征的观察,采用GNN实现机器人间的信息共享。
在MAGAT中,利用注意力机制,机器人可以有的放矢地使用周边机器人的信息。
而结果证明,去中心化的算法可以实现接近专家系统的表现;机器人间的相互通信可以有效提高系统性能;我们的模型可以扩展到100个以上的机器人和陌生的环境中。