SAC 算法引擎SAC 是SERL 算法底座是整个系统的引擎。SACSoft Actor-Critic之所以在机器人领域如 SERL 论文中如此强大是因为它解决了强化学习中最头疼的问题之一如何在探索寻找新方案和利用优化已知方案之间取得完美平衡。—————————————————————————————————————————————————————————— 基础来源Soft Actor-Critic (SAC) SAC 目标函数J(π) E[ Σ ( r(s_t,a_t) α·H(π(·|s_t)) ) ] 其中 H(π) -log π(a|s) 为策略熵鼓励探索 | | SERL 在此基础增加 | v SERL 改进目标函数J_SERL(π) J_SAC(π) λ · E[ Q_exp(s, a) ] 即在 SAC 基础上增加专家Q函数 Q_exp 作为额外奖励/正则项 ——————————————————————————————————————————————————————————5.2 人类干预SpaceMouse 硬切换人类干预相关的工作流程如下机器人执行当前策略 π(a|s)人类观察执行过程判断是否需要介入若需要 - 人类通过遥操作接管提供纠正动作 a_human纠正数据 (s, a_human, r, s) 存入回放缓冲区 D_HIL人类可随时退出机器人继续自主执行人类干预的执行逻辑出奇简单# SpacemouseIntervention.action() norm(expert_a) 0.001? ├─ YES → return expert_a, intervenedTrue └─ NO → return policy_a, intervenedFalse info[intervene_action] actual_action (if intervened)当人类推动 SpaceMouse 超过阈值0.001策略动作被直接替换为人类动作。干预后的 transition 通过intvn_data_store独立传输到 Learner 端。关键细节RelativeFrame会将被干预的动作从 base-frame 转换回 end-effector frame确保 replay buffer 中的所有动作无论是策略产出还是人工产出都在同一坐标系下。另外SERL 和 HIL-SERL 两个系统在 SpaceMouse 的实现方式上有所不同维度SERLHIL-SERL实现方式threading.Thread (daemon)multiprocessing.Process (daemon)共享状态self.latest_data实例属性Manager ().dict ()跨进程共享内存读取方式self.latest_data 直接读self.latest_data [action] 读共享字典HIL-SERL 改用子进程是因为 SpaceMouse 驱动的 pyspacemouse.read_all() 是阻塞调用放在线程中可能因 GIL影响主循环的步进节奏。子进程完全独立不受 GIL 约束。5.3 RLPD 混合采样样本效率的发动机RLPDReplay-Lagging Policy Distribution是样本效率的核心。它有两个关键设计50/50 混合采样每步训练从replay_buf在线数据和demo_buf干预数据 离线演示各取一半。这种混合保证了在线数据提供最新的状态覆盖让 Critic 学习到当前策略分布下的价值干预数据提供高价值 recovery 轨迹防止 Critic 忘记专家先验High UTDUpdate-To-Data ratio每采集一步数据Learner 执行多次策略更新典型 UTD2。这种异步更新倍数放大了样本效率使得 1–2.5 小时的训练就能收敛。混合经验回放缓冲区如下—————————————————————————————————————————————————————————————— 基础来源Experience Replay (DQN) Offline-Online RL 混合训练 缓冲区组成 D D_exp ∪ D_RL ∪ D_HIL ├─ D_exp : 离线专家演示数据 ├─ D_RL : 在线RL自主探索收集的数据 └─ D_HIL : 人类纠正数据 ——————————————————————————————————————————————————————————————5.4 奖励分类器为什么用视觉分类器而非手工奖励手工设计稠密奖励函数需要针对每个任务精细调整——对于 USB 插入和 RAM 装配奖励函数的物理含义完全不同。HIL-SERL 的做法是采集200 张成功1000 张失败的前摄像头图像约 5 分钟训练一个 ResNet-10 二分类器冻结 backbone只训练分类头在step()中用分类器输出替换环境奖励reward classifier(obs)为什么只靠二元成功信号也能学因为 RLPD 的高 UTD 和 50/50 采样让模型可以从稀疏信号中高效学习——Critic 借助 Bellman 方程将端点的成功信号倒流回历史动作。多阶段任务怎么办对于先抓取再插入这类多阶段任务HIL-SERL 支持多个分类器串联每个阶段有自己的成功判定条件。5.6 专家 Q 函数Q_exp冷启动引导在训练启动阶段Critic 是随机初始化的没有任何价值判断能力。HIL-SERL 的解法是在 20-30 条离线演示数据上预训练一个专家 Q 函数 Q_exp(s, a)作为策略探索的初始化引导。Q_exp 通过在离线演示数据上执行标准 Bellman Backup 训练Qexp(s,a)←rγ⋅Ea′∼πexp[Qexp(s′,a′)]训练好的 Q_exp 被用来初始化 Critic让在线训练不是从零开始而是从一个已经知道动作好坏的起点出发。这解决了稀疏奖励下冷启动探索的盲目性。5.7 混合动作空间SAC DQN这是一个不动声色的工程改进但影响很大。夹爪控制本质上是离散的——开、关、保持三种状态。如果用 SAC 的连续输出去拟合这个离散空间不仅容易产生中间态夹爪半开半合浪费动作还增加了策略网络的学习负担。HIL-SERL 的做法是连续动作空间6D 位姿控制用 SAC离散动作空间夹爪用 DQNGraspCritic。两者共享同一个视觉编码器但输出层分离。夹爪的 DQN 还带有一个grasp_penalty默认 -0.1对频繁切换夹爪的动作施加惩罚减少机械磨损。5.8 各组件解决什么 / 遗留什么总览表组件/算法解决的核心问题基础/来源未解决 改进方向SAC探索效率低、训练不稳定最大熵 RL Off-policy高精度任务仍需大量样本 → 引入更好的先验(即Q_exp)Q_exp (专家Q函数)稀疏奖励冷启动、探索方向盲目纯模仿学习无法自我改进Offline RL (BCQ/BEAR/CQL) Bellman Backup泛化性差、OOD动作评估不准→ Ensemble不确定性估计→ 结合模型预测补充HIL (人类介入纠正)分布偏移后无法自行恢复离线数据无法覆盖失败状态完整专家演示成本太高DAgger 遥操作 Interactive Learning介入频率高、纠正质量不一致→ 主动请求介入(Active Learning)→ 纠正数据质量过滤/加权→ 渐进式减少介入(Fade-out)混合回放缓冲区纯在线样本效率低纯离线无法超越专家离线-在线切换时分布偏移Experience Replay (DQN) Offline-Online混合训练数据比例平衡问题→ 优先级采样 数据衰减机制→ 统一价值度量不同数据源奖励函数RL缺乏学习信号手工Reward Shaping每任务需重新设计、难以泛化→ 视觉语言奖励/偏好学习→ 与DPO/RLHF思路结合0x06 训练生命周期训练流程大体如下选择任务相关相机并裁剪/缩放图像到模型输入尺寸采集成功/失败图像训练 binary reward classifier采集 20–30 条 human demonstrations初始化 demo buffer启动在线 RL 训练策略自主执行人类在必要时用 SpaceMouse 纠偏干预数据进入 buffer与自主数据一起用于 off-policy RL 更新随着策略成功率提升、cycle time 下降人类干预频率逐步减少我们可以把整个训练过程划分为四个阶段阶段一离线准备人类遥操作 → 收集 200 正/1000 负图像 → 训练 Reward Classifier~5分钟 人类遥操作 → 收集 20~30 条成功演示 → 初始化 Demo Buffer ↓ 在离线演示数据上预训练 Q_exp → 用于初始化 Critic这个阶段的核心是让系统在开始在线 RL 之前就已经有了两个先验知识什么算成功分类器以及成功的动作大致长什么样Q_exp。阶段二在线训练启动Learner 进程启动后初始化 Replay Buffer在线 200K和 Demo Buffer干预 200K。Actor 进程启动后加载初始策略开始自主交互。阶段三干预与自主交替这是 HIL-SERL 的核心循环关键设计干预频率随策略提升自然下降。初始阶段策略经常犯错人类需要频繁干预随着策略在干预数据上不断学习自主成功率上升干预频率逐步趋近于零。阶段四切换逻辑if done or truncated: if reward: # 任务成功 成功 → reset → 继续当前任务 else: # 任务失败 失败 → reset → 重试同一任务失败时不切换任务reset 后重试。成功的 episode 结束后 reset 进入下一轮。这种简单逻辑避免了复杂的任务调度。0x07 SERL vs HIL-SERL 系统级对比HIL-SERL与SERL不同之处HIL-SERL在训练 RL 策略时融合了人类演示与修正而SERL仅依赖于人类演示。SERL 和 HIL-SERL 在系统编排层面几乎一样 — 都是手工启动、无中控、无容错的研究原型。差异不在 系统管理而在数据流设计SERL 把干预数据当普通经验混入单通道HIL-SERL 把干预数据当高质量 demo 独立传输双通道。SERL 的特色是仿真支持 tmux 一键启动 FWBW 双策略HIL-SERL 的特色是干预双通道 统一配置 混合动作空间。这种设计差异反映了两个系统不同的定位SERL 更偏向学术研究验证样本高效 RL 的可行性HIL-SERL 更偏向工程实践强调人类干预的效率和数据质量的管理。而 LWD 则在这两者基础上进一步向通用化、规模化方向发展将真机 RL 的思想扩展到 VLA 架构和车队级部署场景。这个演进路线清晰地展示了从研究原型到工业级应用的技术路径。7.1 系统角度对比维度SERLHIL-SERL定位研究框架多算法、多编码器、仿真支持工程系统专注真实机器人部署Agent 类型4 种SAC/DrQ/VICE/BC3 种SAC/SAC_Hybrid/BC编码器3 种Small/ResNet/MobileNet1 种ResNet-pretrained only动作空间纯连续连续 离散混合数据增强DrQ Agent 独立实现SAC 内置 augmentation_function 回调奖励学习VICE Agent内嵌分类器Wrapper 外挂分类器Critic 类型标准 Distributional Contrastive标准 Ensemble2 个7.2 业务角度对比维度SERLHIL-SERL人类干预基础支持单 buffer深度支持双 buffer 统计 HG-DAgger干预数据地位与在线数据混合独立 demo buffer50/50 采样权重训练范式仅 RLPDRLPD HG-DAgger 双范式双臂任务不支持支持SAC_Hybrid_Dual夹爪控制连续输出离散 DQN开 / 关 / 保持奖励设计环境奖励 / VICE分类器 Wrapper 多阶段 reward_bias任务类型单臂 拾取单臂 双臂 交接 翻转部署就绪度需要组装开箱即用统一配置迭代效率高仿真 SmallEncoder 快速验证低必须真实机器人数据效率中高预训练编码器 50/50 采样 干预数据7.3 核心设计取舍总结SERL 的取舍灵活性 易用性 └ 保留多算法、多种编码器、仿真、分布式 Critic └ 代价用户需要自己组装per-task 脚本维护成本高 HIL-SERL 的取舍实用性 灵活性 └ 保留人类干预闭环、混合动作空间、统一配置、多阶段奖励 └ 代价砍掉了研究性组件编码器选择受限无仿真支持 └ HIL-SERL 在 SERL 基础上增强的特色包括 └ 干预双通道独立管理干预数据和在线探索数据 └ 统一配置系统通过配置类管理多种训练模式 └ 混合动作空间支持更复杂的动作组合 └ 更强的实时性能通过子进程实现 SpaceMouse 输入一句话总结SERL 是一个强化学习研究工具箱HIL-SERL是一个人类干预机器人学习工程系统。前者追求算法广度后者追求部署深度。0x08 从 HIL-SERL 到 LWD范式如何继续演进8.1 HIL-SERL 的本质贡献HIL-SERL 的核心贡献不只是用 SpaceMouse 控制机器人而是把人类纠偏变成了一个可以被 off-policy RL 消化的高质量数据源。它解决了三个关键问题纯 RL 探索不到成功 → 人类纠偏提供高价值恢复轨迹纯 BC 遇到错误状态不会自救 → 干预数据正好覆盖这些 OOD 状态真机训练不稳定 → 预训练视觉 backbone RLPD 低层控制器 稀疏视觉奖励共同提高稳定性如果说 SERL 证明了真机 RL 可以在工程上跑起来那么 HIL-SERL 进一步证明了当人类纠偏被系统性纳入训练数据流后真实机器人可以在 1–2.5 小时内学会一系列过去难以直接用 RL 训练的精密、动态和双臂操作任务。8.2 HIL-SERL 的五个局限性HIL-SERL 很强但它仍然不是最终的通用机器人学习系统1. 人类导师仍然是规模化瓶颈。一个实验室内一台机器人配一个专家可行但成千上万台机器人在工厂、家庭和商店部署时不可能为每台配一个高水平导师。HIL-SERL 更像是师徒制的高效学习而不是车队级自动进化。2. 任务孤岛效应。HIL-SERL 本质上仍是单任务优化器。引入新任务通常需要重新采集演示、重新训练分类器、重新干预学习。它无法像 VLA 模型那样通过 language conditioning 直接实现技能迁移。3. 干预数据质量依赖人类。机器人策略动作与人类纠偏动作之间存在跳变会导致 Q 函数在学习中出现数值震荡。人类导师水平不稳定时系统在计算 Advantage 时会产生混乱。4. 数据分布的不连续性。当人类接手再放开时控制信号从人类动作跳变回策略动作这种不连续性对时序建模不利。5. 系统仍是研究原型。HIL-SERL 对软硬件环境要求苛刻——FCI 高频接口、Real-time Linux 内核、SpaceMouse 驱动等多组件依赖使得部署维护成本高昂。8.3 如何升级到 LWD从 HIL-SERL 走向 LWDLearning while Deploying需要五个关键升级从单任务到多任务引入 VLA 和 language conditioning让一个模型处理多种任务从人工纠偏到规模化数据飞轮把干预、失败、恢复、自主成功统一纳入大规模 replay从高斯 SAC 到生成式动作模型用 Flow Matching / Diffusion 表达多峰、长程动作分布从普通策略更新到 QAM用 critic gradient adjoint matching 稳定优化生成式动作头从单机实验到分布式底座让多机器人部署数据持续回流云端 learner