本文简单记录文章主要内容,详细内容请看原论文
1 简介
文章目的:
- 形成一个机器人操作问题的学习框架
- 展示代表性的方法
文章章节安排:
- 机器人操作领域的常用概念
- 机器人操作问题的学习框架介绍
- 学习物体和环境的状态表示
- 学习环境转换模型,描述机器人行为对环境的影响
- 学习policy,主要通过强化学习,作为方法的整体或一部分
- 通过运行条件和运行结果刻画skill
- 学习程序和状态抽象
2 学习操作的常用概念
2.1 操作过程为物理系统
操作需要遵循重力、质量、两物体不能空间重叠等物理规则,这些规则使学习算法易于学习。
2.2 操作中的欠驱动、不完整约束和modes
被动运动的物体增加了运动的自由度,自由度和驱动器数量的差异导致欠驱动系统
机器人与物体产生接触和断开接触导致运动mode的改变,mode转换的条件即subgoal,与机器人需要改变或者保持state相对应。mode的微小改变对操作会产生显著的影响,因此机器人需要时刻监视运行情况来防止不需要的mode转换。
2.3 交互感知和验证
交互感知:Interactive Perception,通过机器人与物体的交互确定物体的属性,如通过拉门确定门是否上锁。
相比于被动感知,交互感知有更高的精度,且感知结果可以作为被动感知的ground truth,即自监督学习。
可以与active learning结合,来主动选择采用什么action进行交互来提高学习性能。
与具身智能类似。
2.4 分层任务分解和技能复用
任务分层能加速学习。
机器人自主发现分层结构是一个主要课题。
2.5 物体为中心的泛化性
操作方法能处理同一个任务下物体的属性变化,如形状、重量、外观。
一个有效的方法是能将一类物体的抽象表示一致化,并能进行对应的调整,即使这些物体在像素和特征维度相差巨大。
2.6 发现新的概念和结构
在面对新环境和任务时,能利用以前的知识来扩充技能,即迁移学习。
3 公式化操作学习任务
将一个任务表示为一个马尔科夫决策过程(MDP)。
作者希望将一个操作任务建模为一个MDP集合,以此学习一个policy,能处理task family,而不是一个单一的任务。
reward:机器人相关的cost function(在不同任务中共享),加任务相关的reward
state:机器人状态,加环境状态;环境状态包括通用环境状态、任务相关的物体状态。这种因式分解的建模方式有助于提高面对物体的泛化性,因为面向独立物体的policy和model可以在包含相似物体的新环境中复用。
状态转移:机器人只能改变一部分物体和一部分state,为了捕获操作任务的欠驱动特性,将任务建模为分段连续动力系统,每一段称为一个mode,当机器人进入 guard regions(机器人与物体产生或断开接触)时,mode切换。
action:higher-level actions 称为skills。这些技能通过分层学习框架建模,即options。每个option包含初始状态、目标状态、policy。
处理task family的关键是,将单一任务中的functions/skill迁移到task family。
context vector:可以使用state之外的信息辅助迁移,如物体重量、尺寸等,但这种信息在任务中不会变化,因此不属于state,称为context vector。与state类似,可以整体使用或分解使用。
根据上面对操作任务的建模,操作的学习问题可以分为以下五个大类:
- 学习状态空间:每个物体的状态特征和自由度。
- 学习环境的转换模型:机器人action对任务状态的影响,以及产生的后台成本。
- 学习motor skill:学习motor控制策略来直接到达goal,包括特定任务的policy、可解决task family的policy、作为motor policy一部分的skill。
- 学习描述motor skill:学习
可用于skill成功运行的环境的描述
,学习skill造成的环境状态的变化模型 - 学习分层结构:学习模块化的motor skill,
学习skill operation的模型来构建任务的更抽象表示
。
4 学习物体和环境表示(state、context)
两块内容:
- 如何定义和学习object-based state和context space
- 通过被动和交互感知来发现和估计物体的属性,选择任务相关的。
4.1 物体表示
4.1.1 物体变量的类型
位姿、形状(尺寸)、材料属性(密度、摩擦系数等)、交互属性(机器人-物体、物体-物体)
4.1.2 object representation 层级
物体可以从point-level、part-level、object-level三个层级表示,细节逐级降低,抽象逐级增加,且可用于不同类型的泛化。
几何属性表示point.part.object在哪,非几何属性表示这些元素的信息。
每级的表示可以是物体内部固有的,也可以是语义或任务相关的;可以是单独物体的,也可以是交互物体之间的。
point-level:point cloud, pixel, voxel。每个点可能有对应的其他属性,如颜色、材料属性;交互可以被建模为接触点;机器人可以通过检测关键点,或者通过非刚体配准或几何变换来确定新物体的点与基准物体上点集的对应关系
。
part-level:每个part一般与特定类型的操作有关,如马克杯可以被划分为开口、容器、把手、底,分别用于倒水、装水、抓、放置,每个part包含形状、姿态、颜色、材料、类型、表面属性等特征。part-level可用于物体之间的任务泛化,因为很多物体具有相似的part,如硬币和平口螺丝刀都可以拧螺丝,不同物体都有把手,可以迁移抓取技能。
object-level:
独立物体:姿态、重量、形状、材料等;
交互物体:相对姿态、力、约束(on, inside)等;
物体组:将其表示为一个整体,机器人为了避免与堆叠的物体或背景产生碰撞,将其表示为可变性物体或分段刚体。
4.2 被动和交互感知
被动感知:机器人不与场景进行交互,场景可以是静态或动态的。
交互感知:机器人通过与周边环境进行交互,来获得环境的更好的估计。如通过推物体来估计物体与其他物体的约束,通过提起物体来估计重量。交互感知需要更多的时间和能量,交互感知可用于监督学习,或为被动感知提供监督信号。
4.3 学习物体及其属性
4.3.1 发现物体
通常是分割问题
,即被动感知
,但物体堆在一起时,会分不清哪些部分属于一个物体,可以使用交互感知
或视角选择
来消除歧义。
4.3.2 发现自由度
只有内部具有关节的物体才有多自由度,如旋转关节、滑动关节等。
4.3.3 估计物体属性
被动感知
一般用来获取物体位姿、形状、材料属性,交互感知
可以获取更精确的这些属性;交互感知
和触觉传感器
用来获取精确的材料和交互属性;探索行为
用来估计动力学属性,如中心、容器内容。
4.4 特征学习和选择
在一个操作任务中,只有一部分的物体属性是需要的。
无监督方法:降维、聚类等。
有监督方法:决策树、神经网络,神经网络可以通过操作环境表示进行序列规划和控制,通过融合多模态数据(视觉、触觉),或融合额外的任务信息完成操作任务。
最好能用类似于自然语言模型的方法来自动选择任务相关的特征。
5 学习转换模型
5.1 表示和学习转换模型
通常是预测一个确定性函数或随机概率分布函数。
连续模型:state或action是连续的。回归方法,如神经网络、高斯过程、线性回归。还可以采用仿真模型与数据驱动结合的方法。
除非采用预训练模型,否则学习特征显著增加训练数据。
离散模型:state和action都是离散的。常用于high-level 任务,或state space被离散化的情况。常用方法为表格模型、有限状态机。
混合模型:state同时包含连续和离散部分。离散部分通常用来捕获高维任务信息,连续部分用来捕获低维任务信息。机器人操作中可使用接触的开始和断开将混合动力学模型划分为多个连续转换过程。
5.2 转换模型中的不确定性
不确定性的两个来源:偶然不确定性,认知不确定性。
偶然不确定性:如,扔出物体,物体落地的确切位置是不确定的。
认知不确定性:由机器人对操作过程的参数未知导致的。如将一个球放到水中,球是扶起还是沉下与密度有关,如果机器人不知道物体密度,则此分类任务的结果就不是确定的值。
5.3 通过自监督和探索学习转换模型
通常采用自监督
的方式学习转换模型。
探索方法:随机采样、主动采样、内部激励采样。
5.4 迁移和复用转换模型
迁移的前提是新任务与旧任务的state、action、context一致,且训练新旧任务的数据分布要有足够的重叠。
covariate shift(协变量转换):两个任务的输入不同
dataset shift(数据集转换):两个任务的输入和输出不同
6 学习skill policy
6.1 action space的类型
action类型:位置、速度、加速度、力矩、扭矩
action坐标系:世界坐标系、机器人坐标系、任务相关的物体坐标系
6.2 policy结构范围
policy结构范围:从高泛化性
(样本效率低)到高约束性
(泛化性差,样本效率高)
非参数化策略:最近邻方法、高斯过程、黎曼运动策略、局部加权回归。
通用型参数尺寸固定的策略:神经网络、决策树、SVM等。
受限的参数化策略:不介绍了。
goal-based 策略:不介绍了。包含goal-conditioned RL。
6.3 强化学习
model-based:优点是在某些领域里model转换模型比最优policy好学,task改变时可以在云端重新规划和学习,可以用于收集真实场景中难以收集的数据。难点是转换模型难以学习,且不准确的模型会在学习过程中引入误差。
model-free:优点是在动力学复杂的环境中,学习policy比转换模型容易;缺点是如果没有额外的经验,难以适用于新的goal,通常需要大量的数据才能学到较好的泛化性。
value-based:优点是方差小、样本效率高、收敛性好。缺点是对噪声和不好的state特征敏感,难以扩展到高维state space(机器人操作空间正是高维的),无法处理连续型action,需要采样。
policy-based:优点是对噪声和不好的state特征鲁棒,且天生能处理连续型action,能扩展到高维state空间。Actor-only方法的缺点是方差大,样本效率低,且只能学到局部最优(不基于梯度的policy方法能学到全局最优,但样本效率更低)。Actor-critic方法弥补了actor-only方法的方差大,样本效率低的缺点。
on-policy VS off-policy:off-policy样本效率高,但当与函数近似一起使用时,在某些条件下会发散。
探索策略:一般的探索策略只能在当前policy附近区域探索,缓解的方法有内部激励,也可以探索与任务相关的空间,也可以通过模仿学习解决探索效率低的问题。
6.4 模仿学习
特点:绕过探索的时间,传达用户对如何完成任务的偏好,描述无法通过reward显式表示的任务。
轨迹获取方式:遥控、跟随、动觉教学、行为捕捉。
不直接从轨迹学习的方式:关键帧演示、虚拟现实演示、视频演示。
行为克隆:监督学习。
reward推理(逆强化学习):先根据轨迹学习reward,再基于reward进行强化学习。优点是reward如果只与环境有关而与agent无关,就可以从人类和机器人中传输,且因为reward是稀疏的,因此只需要少量训练数据就能学习,且reward容易编码。缺点是不同的reward function可能导致相同的最优policy,因此很多研究做确定性reward。
Learning from Observation:没有确切的action和state,只能原始像素数据等。
纠正交互:当机器人下一步行为的风险较高或导致错误后,请求用户提供矫正的演示轨迹。
6.5 技能迁移
直接技能复用:如采用以前学习的权重初始化新任务下的方法,再通过RL微调参数,但必须要求state space有重叠。
参数化技能:可以用于task family。
Meta learning:在学习阶段就学习多种任务促进task family的迁移,而不是学完一个任务之后再迁移到其他任务。metalearning可以优化policy、reward function或其他部分,有多种形式。
域适应(domain adaptation):在high level的任务目标等不变,low level的视觉、视角、纹理、动力学等变化时进行迁移,如sim-to-real。
顺序迁移:以步进网络Progressive Neural Networks为代表的,逐任务学习,每学完一个,固定网络权重,新增一部分网络,并与先前的网络横向连接。
课程学习:逐渐增加任务难度,减少reward稀疏。
6.6 安全和性能保证
不记录了。
7 用precondition和效果来描述skill
precondition:skill运行需要的环境状态
postcondition:skill运行完后的环境状态
在操作任务中,每个skill执行完后的postcondition必须满足下一个skill的precondition。
7.1 pre- 和 post-condition作为。。。
precondition和postcondition一般使用命题
或谓语
形式抽象表达,如命题
:bool类型的AtTableB
表示导航后的结果;谓语
:At(TableB)也可表示导航后的结果。
grounding:低维state和context,与谓语
真值的映射关系。
分类器表示:将grounding建模为二值分类器。
分布式表示:也可建模为概率分布。
模块化和迁移:不介绍了。
7.2 Learning Pre- and Postcondition Groundings
不介绍
7.3 skill监控与结果检测
不介绍
7.4 谓语与技能合成
表示和合成skill参数:举例,在抓取之前先采样置信度高的抓取位姿即获取precondition。其他内容不介绍。
Preconditions and Affordances
8 学习组合式的和分层式的任务结构
8.1 Motor skill 的形式
每个skill包含三要素:起始状态、goal状态、skill policy。
核心问题是如何确定需要的skill,两种解决途径:分割任务轨迹为独立的skill,在学习task时直接将skill作为问题的一部分。
8.2 将演示轨迹分割为组合式skills
一般使用演示轨迹
实现该操作。
基于skill相似性进行分割:通常基于隐马尔可夫模型的变种方法来测量演示轨迹中的skill相似性。可通过对policy、value function、reward function建模来计算相似性。也有方法仅依赖于视频将多步任务分解为基元。
基于特定事件进行分割:可以基于传感器事件,如力的突然变化、位置的变化等。也可以进行mode间的转换,如基于接触的连接和断开进行grasp、lift、place任务。
8.3 在解决任务途中发现skills
成功的方法比分割演示轨迹少很多,因为该思路基础上就更难,特别是无法使用skill相似性测量。
分层强化学习是一个成功方法。
8.4 学习决策抽象
即学习怎么表示输入信息来切换不同的skills,学习该决策有两个好处:提高多任务泛化能力,抽象表示的输入可以由非专家来编辑、更新和解释。目标文献中有两种方法来决策:
学习抽象的policy表示:即学习一个high-level policy。
学习抽象的state space:根据抽象的state和Action构建一个更简单的离散MDP,在该MDP上学习任务模型。
9 结论
依然存在挑战的方向:
- 将学习过程整合进完整的控制系统
- 边学习边使用,现场学习
- 安全学习
- 利用多模态数据,包括人类的提示
- 更好的探索策略,可能是基于明确的假设或因果推理
- 利用常识性物理知识
- 多任务迁移
- 提高算法学习的样本复杂度,同时避免经验性的调整参数