Behavioral Cloning
了解行为克隆如何驱动 AI 模仿学习。探索其关键应用、挑战,以及如何将其与 Ultralytics YOLO26 集成。
行为克隆是模仿学习中的一项基础技术,其中AI 代理通过严格模仿专家示范数据集来学习执行任务。模型不依赖复杂的奖励系统,而是将序列决策视为标准的监督学习问题。通过摄取成千上万个状态—动作对(例如人类操作员的视觉画面及其对应的操纵杆动作),代理学会一种策略,将新的观测直接映射为预测动作。
行为克隆与强化学习的区别#
强化学习要求代理与环境交互,并通过试错来学习,从而最大化奖励信号;而行为克隆完全依赖静态的预先录制数据集。由于无需与环境交互或使用显式奖励函数,它避开了构建马尔可夫决策过程的复杂性。然而,这种简单性也意味着代理无法发现超越专家表现的新解决方案。近期的离线强化学习方法通常将行为克隆作为稳健的起点,以稳定初始的模型训练,然后再利用奖励进行进一步优化。
实际应用#
行为克隆广泛应用于这样的领域:设计数学奖励函数极其困难,但收集人类示范数据相对容易。
- 自动驾驶: 现代自动驾驶系统(例如NVIDIA DRIVE)大量采用端到端行为克隆。通过使用数千小时的人类驾驶数据进行训练,模型学会直接根据传入的计算机视觉画面输出转向角度和加速指令。
- 机器人操作: 远程操控的机械臂使用行为克隆来学习复杂的物理任务,例如分拣包裹、组装制造零件或折叠衣物。通过记录人类示范中的精确关节角度和视觉状态,模型可以高精度地复现精细的运动技能。
误差累积问题#
该技术最显著的局限性是协变量偏移,通常也称为误差累积。训练期间,代理只能从完美的专家轨迹中学习。在现实世界的闭环执行中,一个微小的初始错误就会将代理带入训练数据中不存在的陌生状态。由于缺乏恢复能力,后续动作会迅速恶化,最终导致任务完全失败。缓解这一问题需要规模庞大且多样化的数据集,以及针对性的数据增强。
最新进展:扩散策略与动作分块#
为了克服传统方法的局限性,现代深度学习架构正在整合生成式技术。扩散策略利用扩散模型的数学框架来表示高度复杂的多模态动作分布,使代理能够从容应对模糊场景;这一概念在近期机器人研究中得到了深入探索。与此同时,动作分块允许代理预测一系列未来动作,而不是单个步骤,从而减少反应式错误的发生频率,并确保执行更加平稳。
使用计算机视觉的实际实现#
在实践中,行为克隆依赖强大的感知骨干网络来提取环境状态,然后将其传递给策略网络。开发者使用Ultralytics Platform管理数据集时,通常会将高速的目标检测模型与PyTorch等神经网络库或TorchRL等专用控制软件包结合使用。
下面的 Python 代码片段演示了Ultralytics YOLO26如何充当感知层,提取空间坐标并将其输入基础的 PyTorch 行为克隆策略,以预测转向动作。
import torch
import torch.nn as nn
from ultralytics import YOLO
# Load an Ultralytics YOLO26 model as the perception layer
perception_model = YOLO("yolo26n.pt")
results = perception_model("robot_camera_feed.jpg")
# Extract the bounding box center to define the current environmental state
if len(results[0].boxes) > 0:
box = results[0].boxes[0].xywh.squeeze()
state = torch.tensor([box[0], box[1]]) # x, y center coordinates
# A simplified PyTorch Behavioral Cloning policy mapping states to actions
bc_policy = nn.Linear(in_features=2, out_features=1)
# Predict the expert-cloned action (e.g., a steering angle)
predicted_action = bc_policy(state)
print(f"Predicted cloned action: {predicted_action.item()}")随着OpenAI和Anthropic等组织推动面向物理智能的基础模型发展,行为克隆仍将是教会机器理解和驾驭复杂现实环境的基石。






