上篇聊了模仿学习,核心是从专家示范中直接学习策略。但模仿学习有个根本问题:它只学了"怎么做",没学"为什么这么做"。如果任务环境变了,学到的策略可能完全失效,因为它不理解任务的目标。

逆强化学习(Inverse Reinforcement Learning, IRL)换了一个思路:不从示范中学策略,而是从示范中学奖励函数。学会了"为什么",再用标准RL去优化策略。这样即使环境变了,只要目标没变,学到的奖励函数仍然有效。

逆强化学习的直觉

想象你在观察一个老司机开车。你看到他在城市道路上平稳行驶,遇到红灯停车,变道时打转向灯。模仿学习的做法是:直接学他的操作——看到红灯就踩刹车,看到前车就打方向。

逆强化学习的做法不同:先推断他想要什么——安全到达目的地、遵守交通规则、乘坐舒适。学会了这些目标后,即使道路条件变了(比如下雨天),你仍然知道该怎么开车,因为你的目标没变。

这就是逆强化学习的核心:从观察到的行为中反推奖励函数。数学上,这是一个"逆"最优控制问题——正向问题是给定奖励函数求最优策略,逆向问题是给定最优策略求奖励函数。

最大边际逆强化学习

最大边际逆强化学习(Maximum Margin IRL)是2008年Ratliiff提出的。它的思路是:找到一个奖励函数,使得专家示范的累积回报严格高于任何其他策略的累积回报。

这里有个前提假设:奖励函数是特征的线性组合,R(s,a) = w·φ(s,a)。w是权重向量,φ是特征函数。学习奖励函数就变成了学习权重w。

特征函数φ的设计非常关键。它把每个状态-动作对映射到一组特征值。比如在导航任务中,特征可以是:到目标的距离、离障碍物的距离、当前速度、道路类型等。特征越丰富,奖励函数的表达能力越强,但学习难度也越大。

# 最大边际IRL的核心思想
# 找到权重w,使得:
# w · φ(expert_demo) > w · φ(any_other_policy)
# 其中φ是特征映射,把状态-动作对映射到特征空间
# 优化目标: max_w min_policy w·(φ_expert - φ_policy)
# 约束: ||w|| <= 1
# 这是一个类似SVM的max-min优化问题

这个方法的问题在于计算量大。每次迭代都需要解一个正向RL问题(计算当前奖励函数下的最优策略),而正向RL本身就很耗时。对于高维状态空间,这个方法基本不可行。而且特征函数的设计严重依赖领域知识——如果你不知道哪些特征对任务重要,就很难设计出好的φ。

后来出现了基于最大熵的IRL(Maximum Entropy IRL, Ziebart 2008),它假设专家的行为不是完全最优的,而是按照Boltzmann分布来选择动作——好的动作概率高,但差的也有一定概率。这个假设更符合实际情况(人类专家也会犯错),而且优化问题更容易求解。最大熵IRL后来成为了很多现代IRL方法的基础。

GAIL和AIRL:对抗式逆强化学习

上篇提到的GAIL其实就是一种逆强化学习——它的判别器学到的就是一个奖励函数。AIRL(Adversarial Inverse Reinforcement Learning)是GAIL的改进版,专门设计了一个可迁移的奖励函数结构。

AIRL把奖励函数分解为两部分:f(s, a, s') = Φ(s') - γΦ(s) + c·ψ(s, a)。第一项Φ是状态势能的差,保证了奖励函数的物理意义(类似势能场)。第二项ψ是状态-动作的即时奖励。这种分解让学到的奖励函数具有更好的可迁移性——即使环境动态变了(比如机器人负载变了),奖励函数仍然有效。

为什么势能差的分解这么重要?假设原始奖励函数是R(s,a),对应的最优价值函数是V*(s)。可以证明,R(s,a) = Q*(s,a) - γV*(s') + V*(s),其中Q是最优动作价值函数。AIRL的分解正好对应了这个关系:Φ ≈ V,ψ ≈ Q* - V*。用神经网络来学习Φ和ψ,就能恢复出原始奖励函数的结构。

训练过程跟GAIL类似:判别器区分专家数据和策略数据,策略试图骗过判别器。但AIRL的判别器输出的是奖励值而不是概率,用这个奖励值训练策略(通过RL算法如PPO)。每轮迭代中,策略用当前奖励函数训练一段时间,然后判别器更新。交替进行直到收敛。

AIRL在跨任务迁移上表现很好。比如在一个导航任务中学到的奖励函数("靠近目标"),可以迁移到目标位置不同的新场景中,不需要重新学习。实验表明,AIRL学到的奖励函数在迁移后的表现比直接用GAIL好很多,因为GAIL的奖励函数没有这种结构化的分解。

在机器人中的应用

逆强化学习在机器人中有几个典型的应用场景。

人机协作是一个重要方向。在人机协作中,机器人需要理解人的意图。通过观察人的操作,IRL可以推断出人想要达到什么目标(比如把人送到某个位置、帮人拿某个东西),然后据此调整自己的行为。

技能迁移也很有价值。一个在仿真中学到的奖励函数,可以迁移到真实机器人上。因为奖励函数描述的是"目标"而不是"动作",它对环境的微小变化更鲁棒。

自动驾驶中,IRL被用来学习人类驾驶员的驾驶风格。不同的司机有不同的偏好——有人喜欢激进,有人喜欢保守。通过IRL可以从不同司机的数据中学到不同的奖励函数,然后让自动驾驶系统模拟特定的驾驶风格。比如从激进司机的数据中学到的奖励函数可能更重视到达速度,从保守司机学到的则更重视安全和舒适。

医疗机器人也是一个有前景的应用方向。手术机器人的操作数据来自经验丰富的外科医生,通过IRL可以推断出手术操作的"目标函数"——哪些组织要避免接触、什么样的力度是安全的、缝合的间距应该多大。这些学到的奖励函数可以用来训练新的机器人或者辅助新手医生的培训。

IRL面临的挑战也不小。第一个是奖励函数的模糊性(ambiguity)——同一个行为可能对应多个不同的奖励函数。比如一个人每天去健身房,可能是为了健康,也可能是为了社交。仅从行为数据很难区分。第二个是维度问题——高维状态空间下,奖励函数的参数化非常困难。用神经网络来参数化奖励函数是一个方向,但训练不稳定。第三个是评估困难——怎么评价学到的奖励函数好不好?通常的做法是用学到的奖励函数重新训练策略,看策略的表现是否接近专家。

面试要点

逆强化学习和模仿学习的区别。模仿学习直接学策略π(a|s),逆强化学习先学奖励函数R(s,a),再用RL学策略。逆强化学习的优势是可迁移性和可解释性——你知道机器人追求什么目标,而不只是知道它做什么动作。

可迁移性的含义。学到的奖励函数在环境变化后仍然有效。比如机器人学会了"保持平衡"的奖励函数,即使它的负载变了(比如抓了一个重物),奖励函数仍然指导它保持平衡。但如果用模仿学习直接学策略,负载变了策略可能就失效了。

计算复杂度的挑战。IRL的核心困难在于它是一个双层优化问题——外层优化奖励函数,内层解正向RL。每次奖励函数更新都要重新解RL,计算量非常大。GAIL和AIRL用对抗训练把这个双层问题简化成了单层,但训练仍然不稳定。实际项目中,IRL的计算成本通常是模仿学习的10到100倍,这也是为什么很多团队直接用BC或者GAIL而不是更复杂的IRL方法。

IRL和BC的选择逻辑。如果你的任务环境可能变化(比如不同的目标位置、不同的障碍物布局),用IRL学到的奖励函数更鲁棒。如果环境固定不变,直接用BC更简单高效。在面试中能根据具体场景分析选择哪种方法,会展示你的工程判断力。

最近的研究趋势是用大语言模型(LLM)来辅助奖励设计。LLM对自然语言描述的奖励函数有很好的理解能力,可以自动把"安全、高效、舒适地驾驶"这样的语言描述转化为可优化的奖励函数。这种方式结合了人类直觉和机器优化的优势,是IRL领域的一个新方向。

给你的建议

逆强化学习的理论性比较强,建议先理解最大边际IRL的数学框架,再去看GAIL和AIRL。Sutton的教材和Pieter Abbeel的论文是很好的参考。

实践方面,可以试一下用GAIL在一个简单的机器人任务上做逆强化学习。Stable-Baselines3配合imitation库可以快速搭建实验。重点观察学到的奖励函数是否合理,以及策略在环境变化后的表现。对比BC和GAIL在环境变化后的表现差异,你会对IRL的可迁移性优势有直观的感受。

面试时聊IRL,核心要展示的是你对"为什么从行为中学奖励函数比直接学策略更好"这个核心问题的理解。能讲清楚IRL的优势(可迁移性、可解释性)和劣势(计算复杂度、奖励模糊性),面试官会认为你对这个领域有全面的认识。


上一篇:第307篇 模仿学习——从示范中学习

下一篇预告:第309篇 VLA模型——视觉-语言-动作的统一

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐