【VLN】VLN Paradigm Alg:模仿学习及其细节(3)

这里写自定义目录标题

    • [1. VLN Paradigm](#1. VLN Paradigm)
    • [2. VLN Paradigm Alg](#2. VLN Paradigm Alg)
    • [3. 模仿学习](#3. 模仿学习)
    • [3.1 Teacher-forcing 与 Student-forcing 的异同点与搭配使用](#3.1 Teacher-forcing 与 Student-forcing 的异同点与搭配使用)
      • [3.1.1 核心定义(一句话区分)](#3.1.1 核心定义(一句话区分))
      • [3.1.2 Teacher-forcing(教师强制 · 离线演示)](#3.1.2 Teacher-forcing(教师强制 · 离线演示))
      • [3.1.3 使用方式(训练流程)](#3.1.3 使用方式(训练流程))
      • [3.1.4 本质](#3.1.4 本质)
      • [3.1.5 优点](#3.1.5 优点)
      • [3.1.6 致命缺陷:暴露偏差(Exposure Bias)](#3.1.6 致命缺陷:暴露偏差(Exposure Bias))
    • [3.2 Student-forcing(学生强制 · 交互式演示)](#3.2 Student-forcing(学生强制 · 交互式演示))
      • [3.2.1 使用方式(训练流程)](#3.2.1 使用方式(训练流程))
      • [3.2.2 本质](#3.2.2 本质)
      • [3.2.3 优点](#3.2.3 优点)
      • [3.2.4 缺陷](#3.2.4 缺陷)
    • [3.3 能否搭配使用?](#3.3 能否搭配使用?)
      • [3.3.1 搭配的核心逻辑(互补)](#3.3.1 搭配的核心逻辑(互补))
    • [3.4 主流搭配使用方案(工程&学术标准)](#3.4 主流搭配使用方案(工程&学术标准))
    • [3.5 搭配后为什么更"合理"?](#3.5 搭配后为什么更“合理”?)
    • [3.6 总结(极简版)](#3.6 总结(极简版))

1. VLN Paradigm

极简一句话总结

Auxiliary Loss = 训练时的 "额外小老师",用额外监督信号帮模型学得更好、更稳,推理时直接下课,不影响最终模型。

2. VLN Paradigm Alg

英文 中文
Behavior cloning (imitation learning) 行为克隆(模仿学习)
- Teacher-forcing: Offline demonstrator 教师强制:离线演示者
- Student-forcing: Interactive demonstrator 学生强制:交互式演示者
Reinforcement Learning 强化学习

Teacher-forcing: Offline demonstrator

Student-forcing: Interactive demonstrator

compare

VLN Paradigm -- Behavior Cloning

模仿学习(尤其是行为克隆 BC)中,Teacher-forcing、Student-forcing 是两种轨迹状态输入来源 的核心训练策略,二者完全可以搭配使用,也是解决单一策略缺陷、构建更稳定、泛化更强训练流程的主流方案。

下面分三部分详细说明:

1)两者的定义、训练流程与优缺点

2)能否搭配 + 为什么搭配更合理

3)具体搭配范式(含经典算法 DAgger)


3. 模仿学习

3.1 Teacher-forcing 与 Student-forcing 的异同点与搭配使用

3.1.1 核心定义(一句话区分)

  • Teacher-forcing(教师强制) :每一步输入 = 专家演示的真实历史状态(离线、监督式)
  • Student-forcing(学生强制) :每一步输入 = 模型自己上一步动作产生的新状态(在线、闭环交互)

共同目标:让模型输出动作逼近专家动作;

核心差异:状态从哪来,决定训练分布与测试分布是否一致。


3.1.2 Teacher-forcing(教师强制 · 离线演示)

3.1.3 使用方式(训练流程)

适用于:纯离线行为克隆 ,预先收集好专家轨迹数据集:
τ ∗ = { ( s 0 ∗ , a 0 ∗ ) , ( s 1 ∗ , a 1 ∗ ) , ... , ( s T ∗ , a T ∗ ) } \tau^* = \{(s_0^*,a_0^*),\ (s_1^*,a_1^*),\dots,(s_T^*,a_T^*)\} τ∗={(s0∗,a0∗), (s1∗,a1∗),...,(sT∗,aT∗)}

训练步骤:

  1. 逐时间步取 专家真实状态 s t ∗ s_t^* st∗作为模型输入
  2. 模型输出动作 a ^ t \hat{a}_t a^t
  3. 损失: L = Loss ( a ^ t , a t ∗ ) \mathcal{L} = \text{Loss}(\hat{a}_t,\ a_t^*) L=Loss(a^t, at∗)(MSE/交叉熵)
  4. 全程不与环境交互,只在离线数据集上做监督学习

3.1.4 本质

用专家轨迹"强行纠正"每一步输入,让模型始终看到标准分布的状态

3.1.5 优点

  • 训练极稳定、收敛快、不易崩
  • 完全利用离线专家数据,无需环境交互
  • 初期策略学习效率极高

3.1.6 致命缺陷:暴露偏差(Exposure Bias)

  • 训练分布 = 专家状态分布
  • 测试/部署分布 = 模型自己走出来的状态分布
    → 模型从未见过自己犯错后的状态,一步错 → 步步错 → 轨迹快速偏离崩溃(复合误差累积)。

3.2 Student-forcing(学生强制 · 交互式演示)

3.2.1 使用方式(训练流程)

适用于:在线/闭环模仿学习,必须与环境实时交互:

训练步骤:

  1. 从初始状态 (s_0) 开始
  2. 模型输入当前状态 (s_t)(由模型上一步动作与环境交互得到
  3. 输出 (\hat{a}t),进入环境得到 (s{t+1})
  4. 损失依旧对齐专家动作(或专家示范)
  5. 全程轨迹由模型自主生成,而非来自数据集

3.2.2 本质

让模型在"自己会遇到的真实分布"上训练,与部署环境一致。

3.2.3 优点

  • 完美解决 暴露偏差 / 复合误差累积
  • 测试性能与训练性能一致
  • 闭环泛化极强

3.2.4 缺陷

  • 冷启动极不稳定:初始模型很差 → 轨迹极差 → 训练崩溃
  • 收敛慢、需要大量在线交互
  • 容易陷入局部最优、噪声敏感

3.3 能否搭配使用?

可以,且是模仿学习最经典、最合理的训练范式

3.3.1 搭配的核心逻辑(互补)

  • Teacher-forcing 负责:稳定初始化、快速收敛、提供高质量监督
  • Student-forcing 负责:修正分布偏移、适应闭环部署、消除暴露偏差

单独用任何一个都有明显短板,混合/交替/迭代使用 才能得到:
稳定训练 + 真实分布对齐 + 强泛化 的完整流程。


3.4 主流搭配使用方案(工程&学术标准)

方案1:分阶段训练(最常用、最简单)

阶段1:纯 Teacher-forcing(预热/预训练)
  • 只用离线专家数据,快速学到基础策略
  • 让模型达到中等以上性能,避免冷启动崩溃
阶段2:纯 Student-forcing(精调/闭环优化)
  • 切换到模型自生成轨迹,在线交互微调
  • 让模型适应自身误差与真实部署分布

效果:前期稳、后期准,完美解决双缺陷。


方案2:动态混合式强制(每步随机选择)

每一步训练中,以概率 (p) 用 Teacher,(1-p) 用 Student:

  • 训练开始:(p \approx 1)(几乎全 Teacher)
  • 训练后期:(p \rightarrow 0)(几乎全 Student)

也可自适应调整:模型准确率越高,越少用 Teacher。


方案3:DAgger(Dataset Aggregation)------ 模仿学习经典标杆

DAgger 就是 Teacher-forcing + Student-forcing 最标准的结合算法,专门解决暴露偏差。

流程:

  1. Teacher 阶段:用专家离线数据训练初始模型 (\pi_1)
  2. Student 阶段 :用 (\pi_1) 与环境交互,收集模型自生成状态 (S_{\text{model}})
  3. Teacher 再标注:让专家对 (S_{\text{model}}) 标注最优动作
  4. 混合训练:新标注数据 + 原始专家数据 → 继续 Teacher-forcing 训练 (\pi_2)
  5. 迭代多次,直到轨迹分布收敛
本质
  • Student-forcing 提供 真实部署的状态分布
  • Teacher-forcing 提供 高质量监督信号
    → 既稳定又无分布偏移。

方案4:部分序列混合(长视距任务)

  • 前 k 步:用专家状态(Teacher)保证起点正确
  • k 步之后:切换为模型自生成状态(Student)
    逐步增加模型自主控制长度,实现平滑过渡。

3.5 搭配后为什么更"合理"?

单一策略的训练过程都存在本质矛盾:

  • Teacher:训练简单,但训练-测试分布不一致(部署必崩)
  • Student:分布一致,但训练难收敛、易崩溃

搭配后实现:

  1. 训练稳定性 ↑:前期靠 Teacher 避免发散
  2. 泛化能力 ↑:后期靠 Student 对齐真实闭环分布
  3. 数据效率 ↑:离线数据 + 少量在线交互,无需海量演示
  4. 部署一致性 ↑:模型在训练中就见过自己的错误,不会突然崩盘

3.6 总结(极简版)

策略 输入状态来源 优势 缺陷
Teacher-forcing 专家离线演示 稳定、快收敛 暴露偏差、测试崩
Student-forcing 模型自生成+环境 无偏差、泛化强 冷启动不稳、慢
搭配使用 混合/交替/迭代 稳定 + 泛化 + 一致 工程稍复杂

结论

Teacher-forcing 与 Student-forcing 不仅可以搭配,而且必须搭配 ,才能在模仿学习中得到稳定、高效、部署可靠 的训练过程。其中 DAgger 是最成熟、最常用的官方级组合方案。

相关推荐
九.九12 小时前
ops-transformer:AI 处理器上的高性能 Transformer 算子库
人工智能·深度学习·transformer
春日见12 小时前
拉取与合并:如何让个人分支既包含你昨天的修改,也包含 develop 最新更新
大数据·人工智能·深度学习·elasticsearch·搜索引擎
恋猫de小郭12 小时前
AI 在提高你工作效率的同时,也一直在增加你的疲惫和焦虑
前端·人工智能·ai编程
寻寻觅觅☆12 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
YJlio12 小时前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
deephub12 小时前
Agent Lightning:微软开源的框架无关 Agent 训练方案,LangChain/AutoGen 都能用
人工智能·microsoft·langchain·大语言模型·agent·强化学习
偷吃的耗子12 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
l1t12 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
大模型RAG和Agent技术实践12 小时前
从零构建本地AI合同审查系统:架构设计与流式交互实战(完整源代码)
人工智能·交互·智能合同审核
今天只学一颗糖12 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构