【机器学习基础】第七十八课:[强化学习]模仿学习

直接模仿学习,逆强化学习

Posted by x-jeff on July 1, 2026

【机器学习基础】系列博客为参考周志华老师的《机器学习》一书,自己所做的读书笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。

1.模仿学习

在强化学习的经典任务设置中,机器所能获得的反馈信息仅有多步决策后的累积奖赏,但在现实任务中,往往能得到人类专家的决策过程范例,例如在种瓜任务上能得到农业专家的种植过程范例。从这样的范例中学习,称为“模仿学习”(imitation learning)。

亦称“学徒学习”(apprenticeship learning),“示范学习”(learning from demonstration),“观察学习”(learning by watching);与机器学习早期的“示教学习”有直接联系。

2.直接模仿学习

强化学习任务中多步决策的搜索空间巨大,基于累积奖赏来学习很多步之前的合适决策非常困难,而直接模仿人类专家的“状态-动作对”可显著缓解这一困难,我们称其为“直接模仿学习”。

假定我们获得了一批人类专家的决策轨迹数据$\{ \tau_1,\tau_2,…,\tau_m \}$,每条轨迹包含状态和动作序列:

\[\tau_i = \langle s_1^i, a_1^i, s_2^i,a_2^i,...,s_{n_i + 1}^i \rangle\]

其中$n_i$为第$i$条轨迹中的转移次数。

有了这样的数据,就相当于告诉机器在什么状态下应选择什么动作,于是可利用监督学习来学得符合人类专家决策轨迹数据的策略。

我们可将所有轨迹上的所有“状态-动作对”抽取出来,构造出一个新的数据集合:

\[D = \{ (s_1,a_1),(s_2,a_2),...,(s_{\sum_{i=1}^m n_i} , a_{\sum_{i=1}^m n_i}) \}\]

即把状态作为特征,动作作为标记;然后,对这个新构造出的数据集合$D$使用分类(对于离散动作)或回归(对于连续动作)算法即可学得策略模型。学得的这个策略模型可作为机器进行强化学习的初始策略,再通过强化学习方法基于环境反馈进行改进,从而获得更好的策略。

3.逆强化学习

在很多任务中,设计奖赏函数往往相当困难,从人类专家提供的范例数据中反推出奖赏函数有助于解决该问题,这就是逆强化学习(inverse reinforcement learning)。

在逆强化学习中,我们知道状态空间$X$、动作空间$A$,并且与直接模仿学习类似,有一个决策轨迹数据集$\{ \tau_1,\tau_2,…,\tau_m \}$。逆强化学习的基本思想是:欲使机器做出与范例一致的行为,等价于在某个奖赏函数的环境中求解最优策略,该最优策略所产生的轨迹与范例数据一致。换言之,我们要寻找某种奖赏函数使得范例数据是最优的,然后即可使用这个奖赏函数来训练强化学习策略。

不妨假设奖赏函数能表达为状态特征的线性函数,即$R(\mathbf{x}) = \mathbf{w}^T \mathbf{x}$。于是,策略$\pi$的累积奖赏可写为:

\[\begin{align*} \rho^{\pi} &= \mathbb{E} \left[ \sum_{t=0}^{+ \infty} \gamma^t R(\mathbf{x}_t) \mid \pi \right] = \mathbb{E} \left[ \sum_{t=0}^{+\infty} \gamma^t \mathbf{w}^T \mathbf{x}_t \mid \pi \right] \\&= \mathbf{w}^T \mathbb{E} \left[ \sum_{t=0}^{+\infty} \gamma^t \mathbf{x}_t \mid \pi \right] \end{align*} \tag{1}\]

个人注解:式子中的$t$指的是时间步。

即状态向量加权和的期望与系数$\mathbf{w}$的内积。

将状态向量的期望$\mathbb{E} \left[ \sum_{t=0}^{+\infty} \gamma^t \mathbf{x}_t \mid \pi \right]$简写为$\bar{\mathbf{x}}^{\pi}$。注意到获得$\bar{\mathbf{x}}^{\pi}$需求取期望。我们可使用蒙特卡罗方法通过采样来近似期望,而范例轨迹数据集恰可看作最优策略的一个采样,于是,可将每条范例轨迹上的状态加权求和再平均,记为$\bar{\mathbf{x}}^{*}$,对于最优奖赏函数$R(\mathbf{x}) = \mathbf{w}^{* T} \mathbf{x}$和任意其他策略产生的$\bar{\mathbf{x}}^{\pi}$,有:

\[\mathbf{w}^{*T} \bar{\mathbf{x}}^* - \mathbf{w}^{*T} \bar{\mathbf{x}}^{\pi} = \mathbf{w}^{*T} (\bar{\mathbf{x}}^* - \bar{\mathbf{x}}^{\pi}) \geqslant 0 \tag{2}\]

若能对所有策略计算出$(\bar{\mathbf{x}}^{*}-\bar{\mathbf{x}}^{\pi})$,即可解出:

\[\begin{align*} \mathbf{w}^* &= \underset{\mathbf{w}}{\text{arg max}} \ \underset{\pi}{\text{min}} \ \mathbf{w}^T (\bar{\mathbf{x}}^* - \bar{\mathbf{x}}^{\pi}) \\& \text{s.t.} \quad \parallel \mathbf{w} \parallel \leqslant 1 \end{align*} \tag{3}\]

这里解释下式(3)。内层的$\underset{\pi}{\text{min}}$是在寻找和专家策略最接近的那个策略,也就是寻找专家优势最小的那个策略。那么在专家策略面对最强的竞争策略时,通过外层的$\underset{\mathbf{w}}{\text{arg max}}$来寻找一组最合适的奖赏权重,使专家策略面对这个最强竞争策略时,表现仍尽可能地好,也就是让专家策略相对于最强竞争者地优势最大。如果没有$\parallel \mathbf{w} \parallel \leqslant 1$这个约束,通过将$\mathbf{w}$放大若干倍,$\mathbf{w}^T (\bar{\mathbf{x}}^{*}-\bar{\mathbf{x}}^{\pi})$也会成倍扩大,优化将没有意义。

显然,我们难以获得所有策略,一个较好的办法是从随机策略开始,迭代地求解更好的奖赏函数,基于奖赏函数获得更好的策略,直至最终获得最符合范例轨迹数据集的奖赏函数和策略,如图16.15算法所示。注意在求解更好的奖赏函数时,需将式(16.39)中对所有策略求最小改为对之前学得的策略求最小。