让机器人相互学习一个最简单的方法就是将所有关于成功和失败的经验都汇总到一起。去年,谷歌大脑展示了他们的协作机械臂研究项目——合作式增强学习让机器人掌握通用技能:一台机械臂学会的东西,可以在所有机械臂之间共享,这样所有的机械臂都能以更快的速度学习、成长。实验结果是,这些机械臂可以进行开门、拿起罐子等简单的操作。
当时,谷歌大脑的研究人员探索了通过多机器人合作完成通用目技能学习的三个可能方法:
-
直接从经验中学习行动技巧
-
学习物体内部物理模型
-
在人类协助下学习技能
在这三个例子中,多个机器人共享彼此的经验,搭建了一个通用的技能模型。虽然学习的技能相对简单,但是谷歌大脑的研究人员表示,通过合作来更快速高效的学习这些技能,机器人未来可能会掌握更加丰富的行为指令集,最终会让它们在人类的日常生活中起到大的作用。
其中,第一项,直接从经验中学习行动技巧,也就是让机器人用无模型增强学习从原始经验中学习。“无模型”就是没有关于环境的明确模型,机器人通过实时反馈发现变化,进而增强和探索,得到更大回馈的变化。
通过与深度神经网络相结合,“无模型”算法近来已经取得了很好的成果,看那些在各种 Atari 游戏中超越人类的智能体就知道了,此外,还有一个著名的例子就是 AlphaGo。
谷歌大脑由于拥有多个机器人,因此可以在真实世界中进行实验。日前,没有实体机器人的 DeepMind 也在虚拟环境中,对机器人协作开展了最新的研究。
简单说,DeepMind 的方法是让机械臂在在模拟器中:①成功地找到一块积木,②将这块积木拿起来,③最后将这块积木叠在另一个积木上。实验中,机器人会彼此共享信息,并使用最终得到的数据改善核心算法,从而学会更好地搭积木。
在他们日前发表于 arXiv 的论文《能够高效率用数据、用于灵活操纵控制的深度强化学习》(Data-efficient Deep Reinforcement Learning for Dexterous Manipulation)这篇论文中,将训练 16 台机器人所用的时间成功缩短到仅需要 10 小时。
论文中 DeepMind 研究人员使用的也是深度确定策略梯度算法(Determinisic Policy Gradient,DPG),并且从两方面做了改善:
-
加长每一步的学习时间,让算法在将数据更新反馈给机器人学习的时候,时间更长,这样就能让机器人学得更好。研究人员将改进的算法称为 DPG-R。
-
借助 Asynchronous Actor Critic(A3C)算法的分布式思想,巧妙对 DPG-R 算法做了改造,使其能够多台不同的计算机和虚拟机器人之间共享。
DeepMind 使用的机械臂是 Kinova Robotics 开发的 Jaco(见下图),实验中使用的当然是 Jaco 的虚拟版。据介绍,Jaco 有 9 个角度可以*活动(手臂上 6 个,手掌上 3 个)。看起来很灵活,当然这也是 Jaco 的优势,但要操纵 Jaco 机械臂完成实际任务需要的计算量也相应的十分庞大。从这一点上,DeepMind 的实验充分展现了使用端到端的方法训练机械臂的好处。
摘要
深度学习和强化学习方法近来被用于解决各种连续控制领域的问题。这些技术最显著的一个应用便是机器人的灵活操纵任务,让机器人完成灵活的操难以用传统的控制理论或手工设计方法解决。这种任务的一个例子是抓取一个物体,并将其精确地堆叠在另一个物体上。这是一个困难而且与现实世界中很多实际应用都相关的问题,解决这个问题也是机器人领域一个重要的长期目标。在这里,我们通过在虚拟环境中对这个问题进行考察,并提出了解决这个问题的模型和技术,朝解决实际机器人灵活操作迈出了一步。
论文从两方面扩展了深度确定策略梯度(Deep Deterministic Policy Gradient,DDPG)算法,提出了一种基于 Q-Learning 的无模型方法,使其在数据利用率和可扩展性方面得到大幅提升。研究结果表明,通过大量使用非策略(off-policy)数据和反复进行(replay),可以找到抓取物体并进行堆叠的鲁棒性控制策略。此外,研究结果显示,通过收集真实机器人的交互数据,可能很快就能成功训练堆叠策略。
上图展示了实验中在虚拟环境中使用机械臂叠积木的情况,从左到右代表了不同的阶段,难度也依次上升:①开始状态,②定位阶段(reaching),③抓取(grasping),这也是积木在机械臂手中开始叠积木的开始状态,以及④叠积木(stacking)。
文章转自新智元公众号,原文链接