Behavioral Cloning
了解行为克隆如何驱动 AI 模仿学习。探索关键应用、挑战以及如何将其与 Ultralytics YOLO26 集成。
行为克隆是模仿学习中的一项基础技术,其中AI agent通过严格模仿专家演示的数据集来学习执行任务。模型不依赖复杂的奖励系统,而是将顺序决策视为一个标准的监督学习问题。通过摄取数以千计的状态-动作对(例如人类操作员的视觉反馈及其对应的操纵杆动作),智能体可以学习到一种直接将新观察结果映射到预测动作的策略。
Link to this section行为克隆与强化学习的区别#
虽然强化学习要求智能体与环境交互,并通过试错来最大化奖励信号进行学习,但行为克隆完全依赖静态的预录制数据集。由于它无需环境交互或显式奖励函数即可运行,因此避免了制定马尔可夫决策过程的复杂性。然而,这种简单性意味着智能体无法发现超出专家表现的新颖解决方案。最近的离线强化学习方法通常将行为克隆用作稳健的起点,以在通过奖励进一步优化之前稳定初始的模型训练。
Link to this section实际应用#
行为克隆广泛部署在那些设计数学奖励函数极其困难,但收集人类演示数据相对容易的领域。
- 自动驾驶: 现代自动驾驶系统,如 NVIDIA DRIVE,大量使用端到端行为克隆。通过对数千小时的人类驾驶数据进行训练,模型学会了直接根据传入的计算机视觉数据输出转向角度和加速指令。
- 机器人操作: 远程操作的机械臂使用行为克隆来学习复杂的物理任务,例如分拣包裹、组装制造零件或折叠衣物。通过记录人类演示的精确关节角度和视觉状态,模型可以高精度地复制精细运动技能。
Link to this section累积误差问题#
该技术最显著的局限性是协变量偏移,通常被称为累积误差。在训练期间,智能体仅从完美的专家轨迹中学习。在现实世界的闭环执行中,微小的初始错误会将智能体推向训练数据中不存在的陌生状态。由于缺乏恢复知识,后续动作会迅速恶化,导致任务完全失败。减轻此问题需要海量、多样化的数据集和有针对性的数据增强。
Link to this section最新进展:扩散策略与动作分块#
为了克服传统局限性,现代深度学习架构正在集成生成技术。扩散策略利用扩散模型的数学框架来表示极其复杂的多模态动作分布,使智能体能够优雅地处理模糊场景,这一概念在机器人研究中得到了深入探讨。同时,动作分块允许智能体预测一系列未来动作,而不是单一步骤,从而最大限度地减少反应性错误的频率并确保更平稳的执行。
Link to this section基于计算机视觉的实际实现#
In practice, behavioral cloning relies on a strong perception backbone to extract environmental states before passing them to the policy network. Using the Ultralytics Platform to manage datasets, developers often pair high-speed object detection models with neural network libraries like PyTorch or specialized control packages like 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 等组织的研究向物理智能基础模型推进,行为克隆仍将是教导机器解释和导航复杂现实环境的基石。






