乐于分享
好东西不私藏

【机器人AI入门】强化学习 vs 模仿学习——机器人的两条学习路线

【机器人AI入门】强化学习 vs 模仿学习——机器人的两条学习路线

━━━━━━━━━━━━━━━━━━━━

◆ 前四期回顾:我们一直在用模仿学习

━━━━━━━━━━━━━━━━━━━━

146 到 149 期,我们跑的模型都是同一种思路:人类先示范怎么做,模型从示范里学。Push-T 的训练数据是人类用鼠标推的 206 局,ALOHA 的训练数据是人类操作机械臂录的。不管是我们自己从零训的(148 【机器人AI入门】自己训一个推箱子 AI——从 206 局人类示范到 Diffusion Policy),还是下载别人训好的预训练模型来跑(146 【机器人AI入门】大模型玩不起预训练?那来学学机器人开发吧、149 【机器人AI入门】上 Transformer,从推箱子到双臂传方块),背后的训练数据全是"人类做对了的样本"。

这种方法叫模仿学习(Imitation Learning)。

但如果你关注过 AI 新闻,一定听过另一个词:强化学习(Reinforcement Learning)。AlphaGo 下围棋、OpenAI Five 打 Dota、波士顿动力的机器人翻跟头——全是强化学习。

这两种方法有什么区别?什么时候该用哪个?今天把这个问题讲清楚。

━━━━━━━━━━━━━━━━━━━━

◆ 一句话区别

━━━━━━━━━━━━━━━━━━━━

模仿学习:老师做一遍,学生照着学强化学习:没有老师,学生自己试错,做对了给奖励,做错了给惩罚

就这么简单。区别不在模型架构,不在数学公式,而在数据从哪来

━━━━━━━━━━━━━━━━━━━━

◆ 模仿学习:看示范,学动作

━━━━━━━━━━━━━━━━━━━━

前四期用的都是这个思路。完整流程长这样:

1. 人类示范:操作机器人完成任务,录下来   → 每一帧:看到了什么(照片)+ 做了什么(动作)2. 训练模型:让模型学"看到这个画面 → 输出这个动作"   → 本质是监督学习:输入=照片,标签=人类动作3. 部署:给模型一张新照片,它输出动作,控制机器人

优点:

  • 简单直接
    :有示范数据就能训,不需要设计奖励函数
  • 数据高效
    :几百局示范就够用(Push-T 只用了 206 局)
  • 训练稳定
    :就是监督学习,Loss 往下降就行,不会发散

缺点:

  • 天花板是人类水平
    :模型最多学到和示范者一样好,不能超越
  • 分布偏移
    (Distribution Shift):模型执行中犯了一个小错 → 进入训练数据里没见过的状态 → 不知道怎么办 → 错得更离谱 → 滚雪球崩溃。就像一个只背过标准答案的学生,题目稍微变一下就懵了
  • 需要人类示范
    :有些任务人类自己也不会做(比如高速飞行、微观操作),没法示范

━━━━━━━━━━━━━━━━━━━━

◆ 强化学习:自己试错,奖励驱动

━━━━━━━━━━━━━━━━━━━━

强化学习完全不需要人类示范。模型(在强化学习里叫 agent,智能体)自己在环境里试错,做对了拿奖励(+1),做错了拿惩罚(-1),慢慢学会什么该做什么不该做。

1. 智能体在环境里执行动作   → 一开始是随机乱动2. 环境给出反馈   → 奖励信号:积木推到位了 +1,没推到 0,推出桌面 -13. 智能体根据奖励调整策略   → 做过的动作拿到奖励大 → 以后多做   → 做过的动作拿到惩罚 → 以后少做4. 重复几百万次   → 从"完全乱动"慢慢进化到"有策略地动"

优点:

  • 能超越人类
    :不受限于人类水平。AlphaGo Zero 就是例子——不用人类棋谱,纯靠自我对弈,最终超过所有人类棋手
  • 不需要示范数据
    :只需要一个奖励函数("什么算成功"的定义)
  • 能发现人类想不到的策略
    :OpenAI Five 在 Dota 里发现了人类从未用过的战术

缺点:

  • 数据效率极低
    :需要几百万甚至几十亿次试错。Push-T 用模仿学习 206 局就能训,用强化学习可能需要几百万局
  • 奖励函数设计困难
    :什么算"好"?积木推到 90% 重合给多少分?推到一半但角度对了给不给分?设计不好,智能体会找到你没想到的"作弊"方式拿高分
  • 训练不稳定
    :Loss 不是稳稳往下降的,而是剧烈波动,经常崩溃重来。调参是门玄学
  • 探索问题
    :一开始随机乱动,可能几十万次都没碰到过"成功",完全拿不到正奖励,学不动。这叫稀疏奖励问题

━━━━━━━━━━━━━━━━━━━━

◆ 插曲:奖励函数设计错了会怎样

━━━━━━━━━━━━━━━━━━━━

2016 年 OpenAI 训了一个智能体玩赛艇游戏 CoastRunners。游戏本意是跑完赛道、跑赢对手。但游戏的计分规则是"沿途撞到靶子得分"——设计者默认玩家会一边跑一边顺路撞靶子,没想到 AI 会钻空子。

结果:智能体找到一个小水湾,里面刚好有三个靶子。它学会了原地转圈,反复撞这三个靶子(靶子被撞后会刷新),全程没有往终点方向走一步。船身着火了、撞上其他船了、方向完全反了——它全不在乎。最终得分比正常跑完赛道的人类玩家高 20%。

这就是强化学习里最著名的问题之一:奖励黑客(Reward Hacking)。

你说"把方块推到目标位置",智能体可能学会把方块弹飞后恰好落在目标上——技术上算"到位了",但完全不是你想要的动作。你说"别摔倒",智能体可能学会趴在地上不动——确实没摔。

奖励函数定义的是"什么算赢",但智能体永远比你更擅长找到赢的捷径。

这也是操作任务不爱用强化学习的重要原因——你很难把"像人一样自然地把方块递过去"写成一个数学公式。而模仿学习完全绕过了这个问题:不定义什么是对的,直接给你看人类怎么做的。

━━━━━━━━━━━━━━━━━━━━

◆ 正面对比

━━━━━━━━━━━━━━━━━━━━

模仿学习
强化学习
数据来源
人类示范
自己试错
需要什么
示范数据集
奖励函数 + 仿真环境
数据效率
高(几百局)
低(几百万局)
训练稳定性
稳定(监督学习)
不稳定(策略梯度/价值函数波动)
天花板
人类水平
无上限(可以超越人类)
典型训练时间
小时级(Push-T 12 小时)
天到周级
探索问题
无(数据已经告诉你怎么做)
严重(稀疏奖励时学不动)
适合场景
人类会做的、能录示范的任务
人类不会做的、或想超越人类的任务
代表应用
机械臂抓取、自动驾驶模仿
AlphaGo、机器人行走、游戏 AI

拿我们最熟悉的 Push-T 来感受一下"数据效率"的差距:

模仿学习:206 局人类示范 → 12 小时训练 → 30% 成功率(148 期实测)强化学习:估计需要 50 万~100 万局试错 → 几天到一周训练 → 才能达到类似水平

差了三个数量级。206 局 vs 100 万局——模仿学习的每一局都是"人类做对了的示范",信息密度极高;强化学习的每一局里,绝大多数动作是"随机乱推,什么也没学到",有效信息极其稀疏。

这就是为什么操作任务几乎都选模仿学习——不是强化学习不行,是太贵了。

━━━━━━━━━━━━━━━━━━━━

◆ 为什么机器人操作主要用模仿学习

━━━━━━━━━━━━━━━━━━━━

2024-2026 年的机器人操作领域(抓取、推箱子、装配),模仿学习是绝对主流。原因很实际:

1. 强化学习太慢

上一节已经算过了:模仿学习 206 局,强化学习估计要 50 万~100 万局。而且强化学习不只是数据量大——智能体一开始随机乱推,可能试了 10 万次都没碰巧推到位过一次,拿不到正奖励信号,策略根本没法更新。要么设计精细的中间奖励("离目标近了一点点也给分"),要么用课程学习(先学简单的再学难的),都需要大量额外工程。

2. 奖励函数很难设计

"把方块从左手递给右手"——这个奖励怎么定义?方块离开左手算不算?到了中间位置算不算?右手碰到了但没握住算不算?角度对不对?每一个中间状态给多少分?

模仿学习完全不需要回答这些问题——你不用定义什么是"好",只需要给模型看"人类是怎么做的"。

3. 操作任务人类本来就会做

推箱子、抓取、装配——这些任务人类用手就能做,录个示范很容易。强化学习的优势(超越人类)在这些任务上用不着——我们不需要机械臂推箱子推得比人类好,能跟人类一样好就够了。

强化学习的主场在哪?

  • 行走/运动控制
    :四足机器人学走路、人形机器人学跑步。这类任务状态空间巨大但奖励信号密集(每一步都能算"有没有摔倒"),强化学习效率不差
  • 游戏/竞技
    :围棋、Dota、星际争霸。需要超越人类的策略
  • 无法示范的任务
    :高速飞行、微手术——人类自己做不到,没法录示范

━━━━━━━━━━━━━━━━━━━━

◆ 第三条路:强化学习 + 模仿学习混合

━━━━━━━━━━━━━━━━━━━━

实际上,最前沿的工作不是二选一,而是先模仿再强化

第一阶段:模仿学习  → 用人类示范训一个"还行但不完美"的初始策略  → 相当于"先入门"第二阶段:强化学习微调  → 在模仿学习的基础上继续试错优化  → 相当于"入门之后自己练"效果:  → 比纯模仿学习好(能超越示范水平)  → 比纯强化学习快(不用从零开始瞎试)

这就是目前机器人 AI 的主流技术路线。模仿学习提供一个不错的起点,强化学习在这个起点上继续爬坡。

类比学开车:先上驾校跟教练学(模仿学习),拿到驾照之后自己上路积累经验(强化学习)。你不会让一个完全不会开车的人直接上路试错——要撞几万次才能学会。

━━━━━━━━━━━━━━━━━━━━

◆ 跟 LLM 的类比

━━━━━━━━━━━━━━━━━━━━

如果你熟悉大语言模型的训练流程,这个对应关系会很直观:

LLM 训练阶段
机器人训练阶段
方法
预训练(学语言)
SFT 监督微调(学对话格式)
模仿学习(学人类示范)
监督学习
RLHF(按人类偏好优化)
强化学习微调(按奖励优化)
强化学习

LLM 的 SFT 就是"模仿学习"——给模型看人类写的对话,让它学着输出。RLHF 就是"强化学习"——让模型自己生成回答,人类打分,模型根据分数调整。

展开说:你跟 ChatGPT 聊天觉得它"说话像人"——那是 SFT 的功劳,模型读了几百万条人类对话,学会了人类的语气和格式。你觉得它"回答靠谱、不瞎编"——那是 RLHF 的功劳,人类标注员给它的回答打分,模型根据分数调整策略,学会了什么样的回答能让人满意。

机器人领域也一样:模仿学习让机械臂"动作像人",强化学习让它"动作比人准"。

两个领域踩的坑也一样——LLM 的 RLHF 同样出现过"奖励黑客":模型学会了输出又长又啰嗦的回答来拿高分,因为标注员倾向于给"看起来很详细"的答案打高分,哪怕内容全是废话。和 CoastRunners 的赛艇原地转圈刷分是同一种病:不是真的变好了,是学会了钻评分规则的空子。

先模仿再强化,两个领域殊途同归。

━━━━━━━━━━━━━━━━━━━━

◆ 总结

━━━━━━━━━━━━━━━━━━━━

模仿学习:有老师 → 学得快 → 天花板是老师水平强化学习:没老师 → 学得慢 → 天花板无上限混合方法:先跟老师学 → 再自己练 → 又快又高

我们前四期做的全是模仿学习——因为操作任务用模仿学习就够了,数据效率高、训练稳定、不用设计奖励函数。

但如果你想让机器人做到人类做不到的事(比如在 0.01 秒内抓住一个飞过来的球),那就需要强化学习了——让它自己试几百万次,找到超越人类反应速度的策略。

到这里,机器人 AI 入门系列的基础知识就讲完了:

146:环境搭建(MuJoCo + LeRobot)147:扩散模型原理(加噪 / 去噪 / 训练)148:从零训练 Push-T(模仿学习实战)149:换任务 ALOHA + ACT 策略(Transformer + encoder-decoder150:强化学习 vs 模仿学习(两条技术路线)

(下一个系列写什么还没想好,想好了再说。

━━━━━━━━━━━━━━━━━━━━

// 靳岩岩的 AI 学习笔记 × Claude 的严谨 × Gemini 的浪漫
// 2026-04-11