新闻资讯

简述基于行为克隆的模仿学习

详解行为克隆的模仿学习的算法
综上所述 —— 无论是分类问题还是回归问题,在最大似然估计的监督学习框架下,都可以形式化为以下问题:

 
其中X 代表样本数据,在模仿学习中为专家示教的状态集合。Y 代表样本标签,在模仿学习中为专家示教的动作集合。Pθ(y|x)为θ-参数化的分类器/回归器,本质上是利用极大似然估计对条件概率分布进行学习。
 
在模型学习中我们相应的需要学习一个参数化的策略πθ (a|s),因此可以直接套用上述的监督学习框架,得到行为克隆算法的基本数学形式如下:

 
对于基于极大似然估计的监督学习框架,在标签离散的情况下,当我们使用类别分布(Categorical distribution)作为分类器的先验分布时,上式即转化为标准的基于交叉熵成本函数的监督学习问题。类似的,在标签连续的情况下,当我们使用高斯分布(Gaussian distribution)作为回归器的先验时,上式即转化为基于均方误差函数(Mean Squre Error,MSE)的监督学习问题。由此可以套用一般的基于梯度的方法对参数化的策略模型进行优化。当然,当使用线性模型时亦可直接得到闭式的最优参数解。
 
基于行为克隆的模仿学习整体上思路简单清晰,实现方便。在学习策略的效果上,由于属于一般监督学习的范畴,其泛化性会受到样本数量的限制,亦即会受到归纳偏差(inductive bias)的影响。由于大部分序列决策任务都需要在复杂的世界环境中进行测试,如自动驾驶等,这就使得基于行为克隆的方法表现出的归纳偏差更加明显。探究原因,从本质上讲这主要是源于样本分布的差异。
 
在行为克隆算法中,我们使用专家示教上的状态的边际分布q(s)训练了一个条件分布p(a|s),因此根据监督学习的原理,该条件分布只能保证在q(s)上取得较好的泛化性能。而实际上专家示教上的边际分布q(s)受限于样本数量的大小,无法很好的覆盖整个状态空间。尤其是在开放世界中,得到一个能覆盖所有环境下的状态分布几乎是不可能的。这就导致了基于行为克隆的模仿学习方法势必会在某些情况下无法达到令人满意的泛化性能。这样的泛化误差我们称为组合误差(compounding error)。图1展示了一个由行为克隆算法学习出的策略上发生组合误差的例子。
 
图1 组合误差的一个例子。在驾驶策略的行为克隆学习中,一旦车辆进入示教轨迹之外的状态,
就难以执行合适的动作以返回正常的轨迹上来,从而导致错误的控制
 
针对基于行为克隆的模仿学习算法泛化性差的问题,目前有两种主流的解决方案。一种是对MDP 中的状态进行抽象(State abstraction),通过将高维的状态压缩成相对低维度的表示,从而极大的减小物理世界中状态分布的复杂性。进一步的,可以证明进行状态抽象后,达到目标泛化误差所需的样本数量也会明显减少。另一种方法为示教扩充(Dataset Aggregation,DAgger),这种算法的思路是使用在线学习的思想,在使用行为克隆算法训练策略的同时在测试环境执行当前的策略采集新的状态样本,然后由专家来给这些样本进行动作标注,得到扩充的示教后进行下一轮的行为克隆。相比于纯粹的行为克隆算法,DAgger 很好的考虑了示教中状态分布和测试状态分布间的差异,并以此为依据动态的扩充示教以覆盖这些未探索过的状态分布,因此可以取得远超一般行为克隆算法的泛化性能。在图2中,我们分别对这两种方法的主要思想和流程进行了形象的阐述。
 


图2 两种方法的主要思想和流程示意图
 
然而DAgger 算法也有明显的缺陷。由于采用了在线学习的机制,需要长时间持续的请求专家补充示教标记。这就带来了极大的工作负担,也给这类算法在真实环境下的应用带来了困难。事实上,DAgger 算法与一般的行为克隆算法并没有本质的差异,它们都不曾脱离使用样本作为模仿学习的监督信号,因而始终受限于需要大量的样本才能达到良好的监督效果。直观地,如果能试图从样本中学习出一个规则,并用该规则作为新的监督信号,那么所需的样本数量就能大大减少。 

获得更多产品支持与培训

加入WELINKIRT

是否有任何疑问?

世界各地的WELINKIRT代表可以随时为您提供支持,满足您的视觉和工业读码需求。

联系我们