RoboMaster AI 挑战赛科研思路浅谈_第1页
RoboMaster AI 挑战赛科研思路浅谈_第2页
RoboMaster AI 挑战赛科研思路浅谈_第3页
RoboMaster AI 挑战赛科研思路浅谈_第4页
RoboMaster AI 挑战赛科研思路浅谈_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1RoboMasterAI挑战赛的报名工作就要截止了,到1月18日为止比赛已经吸引了9个国家和地区的60多支队伍报名参赛。队伍报名之后首先要提交技术报告介绍自己队伍的基本情况和参赛的基本思路,优秀技术报告就可以得到组委会的物资赞助。大部分队伍的技术报告都写的很不错,可是因为比赛资金和25支队伍发放了比赛物资赞助。不管队RoboMasterAI技术。报名工作截止之后,就可以分享一些个人想法给参赛的队伍了。由于我并不是AIAI研究人员关注(希望AI研究人员),粗浅,权当给队伍进行抛砖引玉。在RoboMasterAI挑战赛中,一台机器人需要执行以下几种智能行为:移动、旋转发射子弹打击目标识别敌我机器人识别和移动到特定场地区域与另一台友方机器人配合调整自己的位置很多队伍都提到了想要用很多队伍都提到了想要用DRL来进行机器人的决策,这确实是近年来的研究热点,也是机器人学非常有希望的方向。但是,在点,也是机器人学非常有希望的方向。但是,在RoboMasterAI挑战赛中应该如何去应用DRL,是一个值得探讨的问题。一蹴而就实现端对端决策能力不仅需要强大的计算能力和蒙特卡洛方法克服局部最优的问题,也需要面对因为放弃传统方法的积累而引发的质疑。2由于近年来的人工智能热潮,RoboMaster参赛者们一般会关注深度学习视觉1,23问题,也就是训练一个神经网络,输入相机看到的图像,直接输出对机器人移动、发弹的控制指令。为了提高算法的稳定性和预测能力,可能我们需要输入不止一帧图像,而是若LSTM络,而输出量则是控制底盘的电机(4个连续量),控制机器人云台移动的电机(2个连续量)和是否发射的指令(1个离散量),就像下图这样:ReinforcementLearningpolicygradient方式。让机器人在场地中跑动,自主识别、打击对方机器人,如果机器人成功打中对方机器人,那么对方机器人的裁判系统就会记录到击打的数据,这样根据根据裁判系统给出的是否击打成功的数据,机器人就可以获得一个reward。直接把据根据裁判系统给出的是否击打成功的数据,机器人就可以获得一个reward。直接把reward当做当时的valuefunction,那么很容易得到一个policygradient用来调整神经网络的权值,这个算法叫做REINFORCE(Williams1996)。RoboMaster相比其他实际环境中的机器人应用的好处是因为我们已经用了好几年的时间来研究机器人裁判系统,所以能够比较便捷地提供训练的数据。虽然如此,大家还是可以想象,这样的训练方法还是很低效的,可能在训练初CMUCMUAbhinavGuptapaper“LearningtoFlybyCrashing”,目的是用端对端深度神经网络实现多旋翼飞11500次。但这还不是ImageNet的数据集和结果预先初始化过的,所以重头训练的话需要的数据量肯定更大:33花了这么多篇幅介绍端对端的算法,也谈了端对端算法训练的难度,另外我觉得,原理上来说,端对端控制并非是机器人的最优决策和控制方式。虽然BerkeleySergeyLevinePeterAbbeelDRL实现了相当出色的机器人控制程序,但是纯靠视觉信息输入的深度神经网络控制器肯定是不符合人类的决策和控制方式的。人抓取一个桌上的杯子,可以靠手眼协调实现,也可以闭上眼睛仅凭指尖的触觉实现,而且两种方式的切换并不存在学习过程。另外神经科学的研究也告诉我们,人类的神经系统中脑和脊髓都能够控制整个身体的运动,许多动作的执行和决策并不经过大脑,这种层级关系说明了端对端控制的非自然性,因此,可能也是被自然淘汰的决策和控制方式。当然,人类的学习能力必须被机器人所实现,这毋庸置疑,只是需要妥善地平衡机器学习技术和传统方法在一台机器人中的使用范围,使得机器学习技术不需要处理过于高维的输入数据,这样能够避免维数灾难、减少训练所需要的数据量;而传统控制方法也能够减少对模型的依赖和噪声的干扰。两者结合一定是更加高效和稳健的算法。MITRussellTedrake的博士论文(Tedrake2004b)里,他提供了一种结合增强学习技术和传统控制技术的算法思路MarcRaibert教Hopper机器人控制器:直接把一个传统控制器和一个基于神经网络的控制器的输出相加作为最后给到执行器的指令。他的实验也证明了神经网络控制器能让机器人在一些传统控制器不能起作用的状态下恢复平衡。这种结合方法有一个显而易见的问题就是两者相加为什么不是加权平均而是等权重的平均。根据两种控制器在不同环境中的适用情况和稳定性给他们不同的权值,应该能够获得更稳定、更连续的表现。对于传统控制器来说,权值较好确定,如果是简单的PID控制,不管是I项误差过大还是D项误差变化过大,都侧面表现了控制器可能无法收敛或者发生了剧烈的振荡,说明我们应该降低控制器的权值;如果是基于模型的控制方法,那么卡尔曼滤波或者其他的状态观测器都能够通过协方差矩阵或者观测矩阵的性质给出控制器表现的评估,从而给出权值。CMUMaximLikhachev教授讨论过这个问题,一个方法是神经网络前向传播后,看最后一层的连接权值的信息熵,因为层间权值代表了概率,概率越分散说明网络对某一个输出越没有信心;另一个方法也类似,观察某一些特定层之间连接权值的分布。不过这些都只是猜想,并没有合理的实验做验证。4相信4相信RoboMaster是一个非常合适研究这个问题的平台。回到RoboMasterTedrake教授方法的混合控制器,其中传统控制的部分里,算法对相机的图像做特征点提取、模板匹配、几何结构搜索等方法找到目标,然后用卡尔trackingPID控制云台的位置然后进行目标击打;机器学习的部分则继续用之前端对端的方式设计一个神经网络控policygradientreinforcementlearning来学习。两个控制器加权平均作为最后的混合控制器的输出,这个输出的表现由裁判系统给出的是否击打成功的信息评估,并产生reward用于policygradient的计算:policygradientpolicygradientpolicygradient来学习这样一个混合的控制器,该如何求这个混合控制器的loggradient。幸好,在这个混合控制器的情况下,loggradient中只包含神经网络自己的参数,那么通用的深度学习工具比如的深度学习工具比如Tensorflow和PyTorch都提供了现成的工具计算神经网络的loggradient。从policygradient整体的框架上来看,两种控制器加权平均的方法还能让我们通过调整权值来加快神经网络收敛的速度、降低variance。第3节所说想法在控制器的训练阶段,我们可以让权值代表训练的进度,在刚开始训练的时policygradientvariance而训练一段时间以后,调低传统控制器的权值,调高神经网络控制器的权值,这样收敛速度会提高,而且网络已经接近收敛,variance还是能保持在较低的水平。虽然这样做会让神经网络控制器逐步收敛到传统控制器附近的局部最优,很可能这个局部最优比全局最优差不少,但是因为传统控制器已经提供了一个表现不错的击打策略,所以神经网络控制器的收敛速度可以大大加快。我们可以尝试设计不同的传统控制器,用类似Berkeley教授SergeyLevine的GuidedPolicySearch的办法,来用不同的传统控制器引导神经网络收敛到不同的局部最优,然后比较选择出相对更好的那一个,也就更接近全局最优。虽然这是一个显而易见的明确研究方向,远远大于应用价值。它能帮助我们研究如何在实际环境中提高增强学习收敛RoboMaster赛场的层面上看只是一个小小的战术优化:让机器人打得更准,但是整个比赛还涉及到进攻和防御的阵型、方案的决策、机器人之间的协作等等战略问题,单独优化一个射击时的控制器很难直接影响到整个比赛的输赢。5RoboMasterAI算法让机器人具备战略思维。对于这个研究方向我们要设计合适的比赛场景作为研究基础,RoboMaster7月的对抗赛并不是最合适的研究平台,因为对抗7个机器人,角色和定位各有千秋,比赛场地里也有很多具有战略意义的道具和元素,这项赛事设计的方向是让学生把机器人的性能推到极限,然后通过人和机器人的协作来制定策略取胜,我们很难让RoboMaster对抗赛里的机器人一下变成全自动、自己设计比赛的策略。我们需要有一个更加简单的场景、更少的机器人,这样问题的难度和维数不至于太RoboMasterRoboMasterAI挑战赛,在一个简单的22的策略和协作。在之前的文章里我就提到过:在过去一年中,我们看到了很多应用深度强化学习(DeepReinforcementLearning,DRL)Doom这款著名的第一人称射击DRLAI@田渊栋在专栏里ICLRDeepMind和暴雪联合发2DeepMind2机器学习平台?。2是非常复杂的游戏,现有的机器学习技术和工2的AI可能依然不能应用到实际的机器人系统上。而RoboMaster比赛中的机器人,则是一个更好的深度强化学习的研究平台。即使是2对2的简单的场景,而且双方机器人的性能类似,策略也会非常难制定:两台机器人应该一同进攻一台敌方机器人,还是各自进攻一台?满血满子弹情况下策略和已经残血的情况下策略有什么不同?我们由简单到复杂做一些讨论。如果我们用传统的方法来架构机器人的程序,最自然的方法是通过if-else或者switch-case语句,当血量处于某个范围的时候执行一种逻辑,根据血量变化或者其他状态的变化切换到其他的逻辑。这种程序的逻辑非常便于程序员编器人静止,在相机的视野里识别目标然后攻击:ROS和一些成熟的开源算法能够实现的功能。射击模式中的逻辑就是我们在第4节讲模式中的逻辑就是我们在第4节讲“传统控制”的时候提到的,一些计算机视觉EE、CS、自RoboMaster、Robocon这样的机器人比赛里掌握实现逻辑和算法的能力。11,两台机器人对抗,两者程序逻辑都是相同的,那么他们的程序应该会在碰面之后一同跳转到攻击模式,然后面对面射击到最后剩下一个,这种情况下毫无策略可言。所以也许我们需要增加一些状态,把射击模式细分成定点射击和一边左右平移一边射击。当自己的血量有优势的时候,定点射击就好,而血量比对方低的时候,就左右平移加射击。那么当己方队伍有两台机器人的时候,策略该怎么设计?当然我们可以让两台机器人各自都按照上面所说的状态机逻辑独立运行互不干扰。但是我们还是希那么当己方队伍有两台机器人的时候,策略该怎么设计?当然我们可以让两台机器人各自都按照上面所说的状态机逻辑独立运行互不干扰。但是我们还是希naïve的办法就是把两个机器人的状态叠加39个状态,就像下图所示:可想而知,状态增加以后,状态之间的跳转关系将会平方倍地增加,设计越多的状态,书写状态之间跳转的逻辑将会越加繁杂困难。但是这依然是可解的,因为我们要处理的问题从机器学习的角度看并不复杂,如果我们设计一个“决策神经网络”,输入是机器人现在和过去一段时间的状态以及传感器的信息,输出可想而知,状态增加以后,状态之间的跳转关系将会平方倍地增加,设计越多的状态,书写状态之间跳转的逻辑将会越加繁杂困难。但是这依然是可解的,因为我们要处理的问题从机器学习的角度看并不复杂,如果我们设计一个“决策神经网络”,输入是机器人现在和过去一段时间的状态以及传感器的信息,输出是即将要跳转的状态,那么这个神经网络的参数还是比一个端对端的控制器少很多。神经网络最后输出的是可能要跳转的状态的概率,我们再用随机数的方法选择一个概率最大的状态跳转过去。比如现在我们处于1号机器人射击、2号机器人巡逻的状态,调用神经网络来确定在当前状态下应该跳转到哪个状0.9confidence1号机器人巡逻、2号机器人射击的状态,0.1confidence1号机器人射击、2号机器人射击的状态。我们生成0-1之间的随机数,如果随机数小于0.1则按后一种方式跳转,否则就按前者。对这个神经网络的训练还是可以用增强学习里的policygradient方法。不过因为一个状态会延续较长的时间段,机器人互相击打的战斗情况很难直接给“状态跳转得是不是好”这件事情提供reward,我们需要在policygradient里面使用valuefunction而不是直接的reward,这也符合policygradienttheorem最基本的形式(Sutton1999)。当然ValuefunctionActorCritic的方法,增加valuefunctionapproximation一同训练。因此,我们就可以把手工编写的状态跳转逻辑用人工智能取代,构成一种“底层控制由传统控制技术实现,而上层决策由AI技术来实现”的双层级控制和决策体系。编写程序的程序员要关注的是一方面是每一个状态内的逻辑用传统的方法来实现,另一方面应用人工智能来简化状态之间跳转的逻辑书写的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论