【强化学习】GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》

本文深入探讨了强化学习中的模仿学习,特别是生成对抗模仿学习(GAIL)的概念。通过对《Generative adversarial imitation learning》的解析,阐述了行为克隆、逆向强化学习(IRL)和GAIL的区别与联系。GAIL通过模拟专家轨迹,绕过IRL的复杂步骤,直接学习策略。文中还涉及熵正则化、示性正则化和GAIL的优化目标,以及如何利用生成对抗网络来逼近专家策略的占用率度量,实现更高效的学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前文是一些针对IRL,IL综述性的解释,后文是针对《Generative adversarial imitation learning》文章的理解及公式的推导。

  1. 通过深度强化学习,我们能够让机器人针对一个任务实现从0到1的学习,但是需要我们定义出reward函数,在很多复杂任务,例如无人驾驶中,很难根据状态特征来建立一个科学合理的reward。
  2. 人类学习新东西有一个重要的方法就是模仿学习,通过观察别人的动作来模仿学习,不需要知道任务的reward函数。模仿学习就是希望机器能够通过观察模仿专家的行为来进行学习。
  3. OpenAI,DeepMind,Google Brain目前都在向这方面发展。

[1] Model-Free Imitation Learning with Policy Optimization, OpenAI, 2016

[2] Generative Adversarial Imitation Learning, OpenAI, 2016

[3] One-Shot Imitation Learning, OpenAI, 2017

[4] Third-Person Imitation Learning, OpenAI, 2017

[5] Learning human behaviors from motion capture by adversarial imitation, DeepMind, 2017

[6] Robust Imitation of Diverse Behaviors, DeepMind, 2017

[7] Unsupervised Perceptual Rewards for Imitation Learning, Google Brain, 2017

[8] Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation, Google Brain, 2017

[9] Imitation from Observation/ Learning to Imitate Behaviors from Raw Video via Context Translation, OpenAI, 2017

[10] One Shot Visual Imitation Learning, OpenAI, 2017

模仿学习

  1. 从给定的专家轨迹中进行学习。
  2. 机器在学习过程中能够跟环境交互,到那时不能直接获得reward。
  3. 在任务中很难定义合理的reward(自动驾驶中撞人reward,撞车reward,红绿灯reward),人工定义的reward可能会导致失控行为(让agent考试,目标为考100分,但是reward可能通过作弊的方式)。
  4. 三种方法:
    a. 行为克隆(Behavior Cloning)
    b. 逆向强化学习(Inverse Reinforcement Learning)
    c. GAN引入IL(Generative Adversarial Imitation Learning)
  5. 行为克隆
    有监督的学习,通过大量数据,学习一个状态s到动作a的映射。
    在这里插入图片描述
    但是专家轨迹给定的数据集是有限的,无法覆盖所有可能的情况。如果更换数据集可能效果会不好。则只能不断增加训练数据集,尽量覆盖所有可能发生的状态。但是并不实际,在很多危险状态采集数据成本非常高。
  6. 逆向强化学习
    RL是通过agent不断与environment交互获取reward来进行策略的调整,最终得到一个optimal policy。但IRL计算量较大,在每一个内循环中都跑了一遍RL算法。
    在这里插入图片描述
    IRL不同之处在于,无法获取真实的reward函数,但是具有根据专家策略得到的一系列轨迹。假设专家策略是真实reward函数下的最优策略,IRL学习专家轨迹,反推出reward函数。
    在这里插入图片描述
    得到复原的reward函数后,再进行策略函数的估计。
    RL算法:
    在这里插入图片描述
    IRL算法:
    在这里插入图片描述
    在给定的专家策略后(expert policy),不断寻找reward function来使专家策略是最优的。(解释专家行为,explaining expert behaviors)。具体流程图如下:
    在这里插入图片描述
  7. 生成对抗模仿学习(GAN for Imitation Learning)
    我们可以假设专家轨迹是属于某一分布(distribution),我们想让我们的模型也去预测一个分布,并且使这两个分布尽可能的接近。
    在这里插入图片描述
    算法流程如下:
    在这里插入图片描述
    Discriminator:尽可能的区分轨迹是由expert生成还是Generator生成。
    在这里插入图片描述
    Generator(Actor):产生出一个轨迹,使其与专家轨迹尽可能相近,使Discriminator无法区分轨迹是expert生成的还是Generator生成的。
    在这里插入图片描述
    其算法可以写为:
    在这里插入图片描述

生成对抗模仿学习(Generative Adversarial Imitation Learning)

GAIL能够直接从专家轨迹中学得策略,绕过很多IRL的中间步骤。

逆向强化学习(IRL)

假定cost function的集合为C\mathcal{C}CπE\pi_EπE为专家策略。带有正则化项ψ\psiψ最大熵逆向强化学习是想找到一个cost function似的专家策略的效果优于其余所有策略(cost越小越优):
IRLψ(πE)=arg⁡maxc∈C−ψ(c)+(min⁡π∈Π−H(π)+Eπ[c(s,a)])−EπE[c(s,a)] \rm{IRL}_{\psi}(\pi_E) = \arg max_{c\in\mathcal{C}} -\psi(c)+(\min_{\pi \in \Pi}- \it {H}(\pi) + \mathbb E_\pi[c(s,a)]) - \mathbb E_{\pi_E}[c(s,a)] IRLψ(πE)=argmaxcCψ(c)+(πΠminH(π)+Eπ[c(s,a)])EπE[c(s,a)]
其中Eπ[c(s,a)]=E[∑t=0∞γtc(st,at)]\mathbb E_\pi[c(s,a)]=\mathbb E[\sum\limits_{t=0}^\infty \gamma^tc(s_t,a_t)]Eπ[c(s,a)]=E[t=0γtc(st,at)]H(π)=Eπ[−log⁡π(a∣s)]H(\pi)=\mathbb E_\pi[-\log \pi(a|s)]H(π)=Eπ[logπ(as)]是一个γ\gammaγ折扣累积熵。IRL过程中包含一个RL过程:
RL(c)=arg⁡minπ∈Π−H(π)+Eπ[c(s,a)] \rm{RL}(c) = \arg min_{\pi \in \Pi} -\it H(\pi)+\mathbb E_\pi [c(s,a)] RL(c)=argminπΠH(π)+Eπ[c(s,a)]

Defination 1.

对于一个策略π\piπ,定义其占用率度量(occupancy measure)ρπ:S×A→R\rho_\pi:\mathcal{S}\times\mathcal{A}\to \mathbb Rρπ:S×AR
ρπ(s,a)=π(a∣s)∑t=0∞γtP(st=s∣π) \rho_\pi(s,a) = \pi(a|s)\sum\limits_{t=0}^\infty\gamma^tP(s_t=s|\pi) ρπ(s,a)=π(as)t=0γtP(st=sπ)
占用率度量可以近似看做是使用策略π\piπ时,状态-动作对的分布。D\mathcal DD是有效的占用率度量的集合。
[1] U. Syed, M. Bowling, and R. E. Schapire. Apprenticeship learning using linear programming. In
Proceedings of the 25th International Conference on Machine Learning, pages 1032–1039, 2008. 证明π∈Π\pi \in \PiπΠρ∈D\rho\in\mathcal DρD是一一对应关系。

Lemma 3.1.

ρ∈D\rho\in\mathcal DρD,则ρ\rhoρ是策略πρ=ρ(s,a)/∑a′ρ(s,a′)\pi_{\rho}=\rho(s,a)/\sum\limits_{a'}\rho(s,a')πρ=ρ(s,a)/aρ(s,a)的占用率度量,并且πρ\pi_{\rho}πρ是唯一的。

根据Definition 1,可以将γ\gammaγ折累计代价写为
Eπ[c(s,a)]=∑s,aρπ(s,a)c(s,a) \mathbb E_\pi[c(s,a)]=\sum\limits_{s,a}\rho_\pi(s,a)c(s,a) Eπ[c(s,a)]=s,aρπ(s,a)c(s,a)

Lemma 3.2.

H(π)=Eπ[−log⁡π(a∣s)]H(\pi)=\mathbb E_\pi[-\log\pi(a|s)]H(π)=Eπ[logπ(as)],

<think>嗯,用户想了解VLA、模仿学习强化学习的详细使用方法、算法实现和应用场景。首先,我需要先明确这几个概念的定义和它们之间的关系。VLA是视觉语言动作模型,结合了视觉、语言理解和动作生成,这在机器人领域应用较多。模仿学习强化学习都属于机器学习的分支,但方法不同。用户可能希望知道它们各自的原理、如何实现,以及在实际中的应用。 首先,关于VLA,根据引用[1],OpenVLA是一个开源项目,使用了大量真实机器人数据和先进模型架构,比如Llama-2语言模型和双视觉编码器。需要详细解释VLA的组成部分,比如视觉处理、语言理解和动作生成模块。然后说明其实现步骤,包括数据收集、模型训练和多模态融合。应用场景可能包括工业机器人、家庭服务机器人等。 接着是模仿学习,引用[2]提到逆强化学习属于模仿学习的一种,通过专家示范反推奖励函数,再用强化学习找最优策略。需要区分模仿学习的类型,比如行为克隆和逆强化学习。行为克隆直接复制专家行为,而逆强化学习学习奖励函数。实现方式上,行为克隆用监督学习,逆强化学习则需要结合强化学习框架。应用场景如自动驾驶、机器人操作等。 强化学习部分,用户可能已经知道基本概念,但需要详细说明算法,如DQN、PPO,实现步骤包括环境建模、奖励设计、策略优化。应用场景如游戏AI、资源管理等。 用户的问题还提到了机器学习算法和实现方式,可能需要简要概述这些方法在整体中的位置。需要注意各部分之间的关联,比如VLA可能结合了模仿学习强化学习的方法。此外,确保回答结构清晰,分点解释,引用提供的资料,并在末尾生成相关问题。需要检查是否有遗漏的关键点,比如VLA的具体技术细节,SigLIP和DinoV2的作用,以及实验效果。最后,生成的三个问题要围绕主题,帮助用户深入理解。</think>### VLA(视觉语言动作模型)使用详解 #### 1. VLA技术架构 VLA通过融合视觉输入、语言指令和动作输出构建多模态系统,核心技术包括: - **视觉处理**:使用$SigLIP+DinoV2$双视觉编码器处理RGB图像和深度数据[^1] - **语言理解**:基于$Llama-2$语言模型解析自然语言指令 - **动作生成**:通过Transformer架构输出机械臂关节角度或移动轨迹 #### 2. 实现步骤 ```python # 伪代码示例 class VLA(nn.Module): def forward(self, image, text): visual_feat = self.vision_encoder(image) # SigLIP+DinoV2 text_feat = self.llama(text) fused_feat = self.cross_attn(visual_feat, text_feat) return self.action_decoder(fused_feat) ``` 训练过程需使用包含$97$万条真实机器人演示的数据集,通过对比学习优化跨模态对齐[^1] ### 模仿学习方法论 #### 1. 核心范式 $$ \pi^*(a|s) = \arg\max_{\pi} \mathbb{E}_{\tau \sim \pi}[\sum R(s,a)] $$ 但$R(s,a)$未知,需从专家轨迹$\tau_E$反推奖励函数: ```python def inverse_rl(expert_demos): initialize reward_model() for demo in expert_demos: update reward_model(demo.state, demo.action) # 最大化专家动作概率 return reward_model ``` #### 2. 实现对比 | 方法 | 数据需求 | 泛化能力 | |-------------|----------|----------| | 行为克隆 | 专家轨迹 | 低 | | 逆强化学习 | 轨迹+环境 | 高 | ### 强化学习技术体系 #### 1. 算法演进 $$ Q(s,a) \leftarrow Q(s,a) + \alpha[r + \gamma \max_{a'}Q(s',a') - Q(s,a)] $$ 主流算法包括: - **DQN**:使用经验回放和固定目标网络 - **PPO**:通过重要性采样优化策略梯度 #### 2. 实现框架 ```python class PPO: def update(self, states, actions, rewards): advantages = compute_gae(rewards) for _ in range(epochs): actor_loss = -torch.min(ratio * advantages, clip_ratio * advantages) critic_loss = (value_pred - returns)^2 total_loss = actor_loss + 0.5*critic_loss optimizer.step() ``` ### 应用场景对比 | 领域 | VLA适用性 | 模仿学习适用性 | 强化学习适用性 | |--------------|-----------|----------------|----------------| | 工业装配 | ★★★★ | ★★★☆ | ★★☆☆ | | 服务机器人 | ★★★★★ | ★★★★☆ | ★★★☆☆ | | 自动驾驶 | ★★☆☆☆ | ★★★★★ | ★★★★☆ |
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值