简介
俗话说,三人行必有我师。为了快速融入周边的生活环境或学习任务技能,如手工艺、体育锻炼和厨艺,人们总会倾向于观察身边人的举动,并进行模仿与学习。古有拜师求艺,现有各种视频教学,人们可以通过对专业人士的观察与模仿学习对方的行为与技能,实现自己的想法目标。
同样,对于机器人智能体,我们希望它也能通过模仿专家的行为,实现对任务技能的理解与学习。为此,本工作提出机器人智能体行为模仿学习算法“Option-GAIL”,通过分析、利用专家给定的行为示教信息,学习其背后的行为逻辑,最终希望机器人在相似环境和任务下能完整重现与专家一致的行为结果。
论文标题:
Adversarial Option-Aware Hierarchical Imitation Learning
论文链接:
https://arxiv.org/abs/2106.05530
研究背景
在上面这种机器人模仿学习问题设定下,为了实现对专家行为技能的模仿,最简单直观的办法是,既然我们有专家提供的行为数据,不妨直接使用样本数据对机器人行为策略进行监督式训练,得到决策网络。我们称这类直接监督的模仿学习方法为行为克隆(BC: Behavioral Clone)方法。
然而,所谓师傅领进门,修行在个人。监督式学习这类直接拿专家数据生搬硬套的方法在遇到执行器噪声或稍有变化的环境时,往往会犯纸上谈兵的问题,在遇到专家示教中没有包含的情形时,机器人很容易会放飞自我,产生不可预测的行为,导致后续模仿失败。我们称这种现象为累计误差(compounding error)。
为了实现对累计误差的规避,目前较新的模仿学习方法将强化学习和环境探索引入了模仿过程中,以最大化自身完整行为和专家的整体相似度为优化指标,通过不断探索环境试错,最终得到对环境变化不敏感的行为策略,即逆强化学习(IRL: Inverse Reinforcement Learning)方法。
由于自探索的引入,赋予了机器人策略应对超出示教数据集之外情况的可能性,因此可以部分避免行为克隆方法遇到的累计误差问题。目前较常用的机器人行为逆强化模仿学习方法,当行为的整体相似度由对抗生成网络来近似得到时,又被称为对抗生成模仿学习(Generative Adversarial Imitation Learning,GAIL [2])类方法。
长序列操作任务的模仿学习
上面简单介绍了模仿学习的基本概念,不难发现,由于模仿学习需要专家提供包含任务全过程信息的示教,对专家示教样本的数量和质量要求都会随着机器人任务复杂度的提升和决策序列长度的增加而增加,即任务每一环节的依赖条件数和操作的先后顺序组合数会随任务长度和复杂度的上升而飞速增长。以一个基本的悬挂衣撑任务为例,机器人需要先后执行接近衣撑、抓起衣撑、将衣撑拿到衣挂附近最后将衣撑挂上衣架这一系列操作,其中每一步都是互相依赖的。
对于人而言,在给定一个悬挂衣架的连贯示例并要求我们模仿一遍时,我们会很自然的将上述过程分开考虑:首先尽量模仿到达衣撑的路径,直到成功拿到衣撑,其后模仿移动衣撑的路径,直到成功将衣撑挂在衣架上。期间,人能够很自然的对任务进行阶段划分,并意识到在一个阶段没有完成的情况下不能进行下一个阶段的操作。通过对任务的划分和拆解,人们可以很大程度地简化每个子任务的复杂度,也可以通过对已有的子任务进行重新组合实现新的更复杂的任务需求,而对于机器人来说,目前这种能力却十分欠缺。
3.1 问题建模与分析:
在这个层次化逆模仿学习工作中,我们希望赋予机器人与人相似的任务划分与拆解能力,使得机器人在模仿专家行为之外,同时具备自动地拆解划分任务的能力。为此,我们首先对人的任务拆解方式进行形式化的描述与建模。
将时刻的状态信息输入记为 s ,同一时刻的机器人行为输出记为动作 a ,回想我们小时候学习的事件三要素:起因、经过、结果。操作任务作为一个事件,也满足这样的分割方式:我们用数学记号 O 代表一个事件,任务的起因称为起始状态集合,为一个事件可以发生的条件,如刚刚悬挂衣架任务中,移动衣架的起因可认为是爪中有衣架这个状态;任务的经过为一个事件的内在执行逻辑,我们用任务策略表示,如根据传感器输入信息产生的机器人手臂的动作行为输出;任务的结果可以认定是一个状态的函数,被称之为终止函数,当事件在时刻结束时取值为 1,否则为 0。
以上三个元素共同构成了对任务的描述。这种对任务的建模方式构成了 option 模型,按这种方式得到的一个任务被称为一个 option 。显然地,为了实现一个复杂的长序列任务,不同阶段的子任务需要被整合组织起来。Option 模型也定义了一个顶层调度策略,当一个任务结束后,调度策略用来选出一个合适的新任务,实现接下来的操作。
用数学语言来描述,我们完成整个长周期任务的策略可以表示成顶层调度策略和子任务策略。
特别地,我们采用了单步(one-step)option 模型,也就是在每一步,都要决定下一步应该做什么子任务。注意高层策略决定的下一步子任务可以和当前所在的子任务相同,这样一个子任务就可以持续或长或短的一段时间了。 根据当前所处的子任务和观测到的状态决定采取什么动作。画成概率图模型可以更直观地看出整体的流程:蓝色箭头所指是的决策过程,红色箭头是 的决策,黑色箭头是环境的状态转移。
▲ 图1:单步option模型
3.2 如何学习层次化模型
现在我们有了能把长周期任务表示成多个子任务分阶段执行的 option 模型,下一步就要解决如何训练这个模型,使得学到的策略能复刻演示数据。事实上我们要优化的目标是拉近和。
▲ 式1
可以注意到这个目标其实和 GAIL 所解决的占用率度量(occupancy measurement)匹配问题很像。那么是不是直接套用 GAIL 的算法就结束了呢?这是不行的,因为我们的模型里多出来的 option 在演示数据里是观测不到的 (unobservable)。为此我们提出了 Option-GAIL 算法来解决这个问题,算法的设计思路和 Expectation-Maximization 算法非常类似,分为 Expectation(E)和 Maximization(M)两个步骤。
M 步骤:
假设专家数据中的 option 已知,即 o, o' 已知,我们通过优化和来优化式 1。把 f 散度写成 Jensen-Shannon 散度以后,上述优化目标可以表示成下面这个 min-max 问题:
内层的 max 算子利用演示数据和策略自己和环境交互出来的数据来优化判别器,外层的 min 算子通过学习策略来使得判别器无法区分专家和自己,优化目标写成
在实际操作中,外层算子的优化问题可以由经典的强化学习算法来解:只要把强化学习的单步奖励函数设定为 reward = -c(s, a, o, o') 即可。
交替优化内层和外层算子,我们就可以得到给定专家 option 时最优的策略。
E 步骤:根据已有的,计算可能性最大的 option
到目前为止,我们都假设专家数据的 option 已知,但在实际中这个假设不成立。因此,我们需要想办法从已知的状态 s 和动作 a 中推断出 option。给定一个策略时,我们假设 option 的取值要使得观测到的 s 和a 的可能性最大。于是我们可以用 Viterbi 算法 [3] 来解出所有时刻的 option:
算法流程
Option-GAIL 算法的执行流程如下:给定演示数据和随机初始化的策略,我们交替进行 E-step 和 M-step ,也就是不断从当前策略去更新此时演示数据最可能的 option 情况,再根据推断出的 option 来优化策略,如此迭代。我们还理论证明了该算法收敛的条件,感兴趣的读者可以查阅原文的附录。
实验
我们在常用的机器人移动和操作环境上测试我们的算法。测试任务包括:
1. 控制单足、双足机器人运动,机器人需要在迈腿、弹跳等不同行为模式之间切换才能稳健行走;
2. 蚂蚁机器人走出带障碍物的迷宫,智能体要控制蚂蚁机器人先推开迷宫里的障碍物才能走到终点;
3. 控制机械臂关微波炉门,机械臂要靠近微波炉,准确抓住炉门把手,最后绕门轴旋转到关闭。环境截图见图 2。
为了验证 Option-GAIL 中引入的层次化结构以及在演示数据以外和环境的交互是否能帮助我们的智能体更好地学习长周期任务,我们选择了如下几个基线方法和 Option-GAIL 对比:
1. 纯动作克隆 Supervised Behavior Cloning(BC):只在演示数据上做监督学习,不和环境交互,也没有任何层次化的结构信息;
2. GAIL:有在演示数据之外自己和环境交互,但没有利用长周期任务的结构信息;
3. 层次化动作克隆:hierarchical behavior cloning(H-BC):建模了层次化结构,但自己不和环境交互;
4. GAIL-HRL:我们的方法的简化版,在占用率测度匹配的过程中不考虑 option。
我们给所有方法都提供了同样数量和表现水平的演示数据。从下面的图表可以看出,在四个任务中,Option-GAIL 相比非层次化的方法收敛速度更快,相比不和环境交互的纯模仿学习算法最终的表现更贴近演示数据,取得了最优异的效果。
▲ 图2:测试环境及各种算法的性能曲线
▲ 表:不同算法的表现对比,评价的指标是训练中最好的累积奖励
为了验证 Option-GAIL 是否成功让策略的子任务划分与演示数据一致,我们对比了 Option-GAIL 和 GAIL-HRL 在演示数据和在自主探索中的 option 切换情况(图3)。明显可以看出,我们的方法保证了子任务的切分在专家数据(demo)和自己的策略执行过程(sample)中表现一致,而用 GAIL-HRL 触发子任务的情况就和专家数据有明显的差别。
▲ 图3:子任务触发情况对比
总结
本文提出了 Option-GAIL ,一种结合了层次化任务建模和 occupancy measurement 匹配的模仿学习框架。我们设计了一种 EM 算法来有效地训练该框架。相比其他模仿学习算法,Option-GAIL 能兼顾顶层和底层策略的模仿学习,能更好地学习演示数据中任务的层次化结构,特别对于存在清晰子任务的任务表现优秀。
参考文献
[1] Ho, J. and Ermon, S. Generative adversarial imitation learning. In Proc. Advances in Neural Inf. Process. Syst., 2016.
[2]Sutton, R. S., Precup, D., and Singh, S. Between mdps and semi-mdps: A framework for temporal abstraction in reinforcement learning. Artificial intelligence, 112(1-2): 181–211, 1999.
[3] Viterbi, A. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. IEEE trans- actions on Information Theory, 13(2):260–269, 1967.
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·