Behavioral Cloning
ビヘイビアクローニングがどのようにAIの模倣学習を支えているかを学びましょう。主要なアプリケーションや課題、そしてそれをUltralytics YOLO26と統合する方法について解説します。
行動クローニングは、模倣学習における基本的な手法であり、AIエージェントが専門家の実演データセットを厳密に模倣することでタスクを実行する方法を学習します。複雑な報酬システムに依存するのではなく、モデルは順次的な意思決定を標準的な教師あり学習の問題として扱います。人間のオペレーターによる映像フィードとそれに対応するジョイスティックの動きなど、数千の「状態と行動」のペアを取り込むことで、エージェントは新しい観測結果を予測された行動に直接マッピングするポリシーを学習します。
Link to this section行動クローニングと強化学習の違い#
強化学習では、エージェントが環境と対話し、試行錯誤を通じて報酬シグナルを最大化する必要がありますが、行動クローニングは完全に静的な事前記録済みデータセットに依存します。環境との対話や明示的な報酬関数なしで動作するため、マルコフ決定過程を定式化する複雑さを回避できます。しかし、この単純さゆえに、エージェントは専門家のパフォーマンスを超えるような斬新な解決策を見つけることはできません。最近のオフライン強化学習手法では、報酬を用いたさらなる最適化の前に、初期のモデルトレーニングを安定させるための堅牢な出発点として、行動クローニングが利用されることがよくあります。
Link to this section実社会での応用#
行動クローニングは、数学的な報酬関数の設計が非常に困難である一方、人間の実演データを収集することが比較的容易な領域で広く展開されています。
- 自動運転: NVIDIA DRIVEのような現代の自動運転システムでは、エンドツーエンドの行動クローニングが多用されています。数千時間に及ぶ人間の運転データでトレーニングを行うことで、モデルは入ってくるコンピュータビジョンフィードから、ステアリングの角度や加速コマンドを直接出力できるようになります。
- ロボットマニピュレーション: 遠隔操作ロボットアームは、行動クローニングを使用して、荷物の仕分け、工業部品の組み立て、洗濯物の折り畳みといった複雑な物理的タスクを学習します。人間の実演による正確な関節角度と視覚的状態を記録することで、モデルは微細な運動能力を高精度で再現できます。
Link to this section累積誤差の問題#
この手法の最大の制限は、一般的に累積誤差として知られる共変量シフトです。トレーニング中、エージェントは完璧な専門家の軌跡からのみ学習します。実際の閉ループ実行では、わずかな初期のミスがエージェントをトレーニングデータには存在しない未知の状態へとシフトさせてしまいます。リカバリーする知識が不足しているため、その後の行動は急速に劣化し、タスクの完全な失敗につながります。この問題を軽減するには、大規模で多様なデータセットと、ターゲットを絞ったデータ拡張が必要です。
Link to this section最近の進歩:拡散ポリシーとアクションチャンキング#
従来の限界を克服するため、現代のディープラーニングアーキテクチャでは生成技術が統合されています。拡散ポリシーは、拡散モデルの数学的フレームワークを活用して非常に複雑でマルチモーダルな行動分布を表現します。これにより、エージェントは曖昧なシナリオにも適切に対応できるようになり、このコンセプトは近年のロボット工学研究でも深く探求されています。同時に、アクションチャンキングにより、エージェントは単一のステップではなく将来の行動シーケンスを予測できるようになり、反応的なエラーの頻度を最小限に抑え、よりスムーズな実行を保証します。
Link to this sectionコンピュータビジョンによる実践的な実装#
実用面では、行動クローニングは環境状態を抽出する強力な認識バックボーンに依存しており、その後にポリシーネットワークへと渡されます。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のような組織の研究が物理的知能のための基盤モデルに向かう中、行動クローニングは機械に複雑な現実世界の環境を解釈し、移動する方法を教えるための礎として残り続けるでしょう。






