はじめに: トークンの終わりから始まる物語
前の記事で、VLAモデルはロボットの行動を離散トークンに変換し、言語モデルのように次のトークンを予測すると述べました。この方式は優雅ですが、二つの負担を抱えています。第一に、連続値を区間に切ってトークン化すると量子化誤差が生じます。第二に、トークンを一つずつ自己回帰で取り出すと推論が遅くなり、速い制御が難しくなります。
ロボットの手がコップに向かって滑らかに近づき、正確に握るには、行動が滑らかで一貫しており、十分速く更新される必要があります。そこで、行動を「次のトークン」ではなく「連続的な軌道そのもの」として生成しようとする流れが現れます。本稿では、その代表的な二つの担い手であるDiffusion Policyとπ0(パイ・ゼロ)を見ていきます。
核心的なメッセージはこうです。行動を分類(どのトークンか)問題ではなく生成(どの連続軌道か)問題として捉えると、多峰性(複数の正しいやり方)と滑らかさを自然に扱える、ということです。
Diffusion Policy: 行動をデノイジングで生成する
核心的な直観
Diffusion Policyは、画像生成で大きな成功を収めた拡散(diffusion)モデルの考え方を行動生成に持ち込みます。画像拡散モデルは純粋なノイズから出発し、少しずつノイズを除去(denoising)してもっともらしい画像を作り出します。Diffusion Policyは同じ手順を「画像」ではなく「未来の行動シーケンス」に適用します。
┌──────────────────────────────────────────────────────────┐
│ Diffusion Policy の行動生成の手順 │
└──────────────────────────────────────────────────────────┘
観測(画像・状態) o_t ──┐ (条件)
│
純粋なノイズ ▼
A_K ──▶ A_{K-1} ──▶ ... ──▶ A_1 ──▶ A_0
(ランダム)デノイジング デノイジング きれいな行動シーケンス
ステップ ステップ
(o_tで条件づけられた神経網がノイズを予測)
A_0 = [a_t, a_{t+1}, ..., a_{t+H-1}] ← 未来Hステップの行動(チャンク)
ここで重要な点が二つあります。
- **条件付き生成**: デノイジング神経網は現在の観測 o_t を条件として受け取り、「この状況でもっともらしい行動軌道」へノイズを精錬します。
- **行動チャンク(action chunk)**: 一ステップの行動ではなく、未来Hステップの行動シーケンスを一度に生成します。こうすると時間的に一貫した滑らかな軌道が得られ、毎ステップ再計画する負担を減らせます。
なぜ拡散が有利か: 多峰性
模倣学習の根深い難点は多峰性(multimodality)です。同じ状況で、人はコップを左から回って取ることも、右から回って取ることもあります。両方の実演とも正しいです。単純な回帰(平均を出力)は、二つのモードの平均である「真ん中を直進」という誤った行動を出しやすいです。
多峰の状況での出力の比較
可能な正しい軌道: ╲ ╱
╲ (左) ╱ (右)
╲ ╱
●─────● 目標
回帰(平均)の出力: ↓ (真ん中を直進 → 衝突・失敗)
拡散の出力: 分布からサンプル → 左か右のどちらかを
一貫して辿る(モードを平均しない)
拡散モデルは行動の確率分布を学習し、そこからサンプリングするので、複数のモードのうち一つを一貫して選べます。これがDiffusion Policyが精密マニピュレーションで安定して動作する核心的な理由です。
学習目標
学習は通常、ノイズ予測の形で行われます。きれいな行動シーケンスに既知のノイズを加えた後、神経網がそのノイズを当てるように訓練します。
概念的な擬似コード: Diffusion Policy 学習の1ステップ
(実際の実装は拡散スケジューラ・U-Net/Transformerバックボーンを使う)
def training_step(obs, action_chunk):
action_chunk: [H, action_dim] 未来Hステップのきれいな行動
k = sample_diffusion_step() # デノイジング段階kを無作為に選択
noise = gaussian_like(action_chunk) # 標準正規ノイズ
noisy = add_noise(action_chunk, noise, k) # スケジュールに従いノイズを注入
神経網がobsと段階kで条件づけられノイズを予測
pred_noise = denoiser(noisy, k, cond=obs)
loss = mse(pred_noise, noise) # 予測ノイズと実際のノイズの差
return loss
推論時には純粋なノイズから始め、上の神経網で複数回デノイジングして行動チャンクを得ます。デノイジングのステップ数は品質と速度のバランスを定め、少ないステップで速く作る手法(例: DDIM系のサンプラ)も併用されます。
制御ループと行動チャンク
Diffusion Policyは通常、次のように運用されます。
┌──────────────────────────────────────────────────────┐
│ 行動チャンクに基づく制御ループ(概略) │
└──────────────────────────────────────────────────────┘
1) 観測 o_t を取得
2) 拡散で未来Hステップの行動チャンク A_0 を生成
3) そのうち前方の一部(例: 最初の数ステップ)を実際に実行
4) 一定周期ごとに再観測し(1)へ戻り再計画
receding horizon: 長く計画しつつ短く実行し頻繁に更新
→ 一貫性(長い計画)と反応性(頻繁な更新)のバランス
チャンクを長くするほど滑らかですが環境変化に鈍くなり、短く頻繁に更新するほど反応的ですが計画の一貫性が下がります。この折り合いは作業の性質に合わせて調整します。
π0: flow-matchingで高周波の連続行動
背景と位置づけ
π0(Physical Intelligence)は、VLAの汎化能力と連続行動生成の滑らかさを結合しようとするモデルです。大きく見ると、ウェブで学習したビジョン・言語バックボーン(意味理解)に、連続行動を速く生成する「アクションエキスパート(action expert)」を結合した構造です。行動は離散トークンではなく連続値で、しかも高周波で生成することを目標とします。
┌────────────────────────────────────────────────────────────┐
│ π0 の構造(概略的な理解) │
└────────────────────────────────────────────────────────────┘
画像・言語の指示
│
▼
┌───────────────────┐
│ VLM バックボーン │ ← ウェブ事前学習された意味理解
│ (ビジョン-言語表現)│
└─────────┬─────────┘
│ 条件(文脈)の表現
▼
┌───────────────────┐
│ アクションエキスパート│ ← flow-matchingで連続行動を生成
│ (action expert) │ 高周波の連続チャンクを出力
└─────────┬─────────┘
▼
連続行動チャンク a_{t..t+H} ──▶ 高周波制御で実行
flow-matchingとは
flow-matchingは拡散と親戚関係にある生成手法です。直観的には、単純な分布(例: ガウシアンノイズ)から目標分布(正しい行動軌道)へ「流れていく」連続的なベクトル場(velocity field)を学習します。推論時にはノイズのサンプルをこのベクトル場に沿って積分(統合)し、目標分布のサンプルへ移します。
flow-matching の直観
ノイズ x_0 ── 学習した速度場 v(x, τ) に沿って積分 ──▶ x_1
(単純な分布) τ: 0 → 1 (行動分布)
v(x, τ): 時刻τで点xがどこへ流れるべきか(速度)を教える
ODE積分: dx/dτ = v(x, τ) を τ=0 から 1 まで解くとサンプル完成
拡散がノイズを段階的に除去するマルコフ連鎖だとすれば、flow-matchingは連続時間のODEの流れで同じことを行います。適切に設計すれば、少ない積分ステップでも滑らかな連続出力を速く生成でき、高周波の制御に有利です。
高周波制御とアクションエキスパート
π0が強調する点は「高周波の連続行動」です。精密で速いマニピュレーション(例: 服をたたむ、物を滑らかにはめ込む)には、毎秒数十回程度の滑らかな行動更新が役立ちます。離散トークンを一つずつ自己回帰で取り出す方式では、このような周波数を出すのは難しいです。flow-matchingベースのアクションエキスパートは連続行動チャンクを一度に生成するので、VLMバックボーンの意味理解を保ちつつ速い制御ループを回せます。
制御周波数の直観(概念的)
離散トークン自己回帰: トークン → トークン → トークン ... (一次元ずつ、遅い)
速い反応が難しい
連続チャンク生成: [a_t, a_{t+1}, ..., a_{t+H}] を一度に
滑らかで速い更新が可能
※ 正確な制御周波数はハードウェア・実装・作業によって異なる場合があります。
離散トークン vs 連続行動の比較
| 項目 | 離散行動トークン (RT-2, OpenVLA) | 連続行動生成 (Diffusion Policy, π0) |
| --- | --- | --- |
| 行動表現 | 量子化された整数トークン | 連続値の軌道・チャンク |
| 生成方式 | 自己回帰の次トークン予測 | デノイジング / flow-matching |
| 多峰性 | 分布をトークン確率で表現 | 分布から直接サンプル |
| 滑らかさ | 量子化誤差の可能性 | 滑らかな連続出力に有利 |
| 制御周波数 | トークン逐次生成で遅くなり得る | チャンク一括生成で高周波に有利 |
| 言語モデル再利用 | 語彙に統合しそのまま再利用 | 別途アクションヘッド・エキスパートを設計 |
| 主な強み | 単純・意味的汎化 | 精密・滑らかさ・反応性 |
表の詳細は実装やバージョンによって異なる場合があります。二つのアプローチは排他的ではなく、VLMの意味理解の上に連続行動生成を載せる折り合い(π0の方向)が活発に探究されています。
さらに深く: ノイズスケジュールとサンプリング
ノイズスケジュールとは
拡散モデルにおける「デノイジングステップ」は漠然とした段階ではなく、ノイズをどれだけ加えて引くかを定めるスケジュールによって精密に定義されます。スケジュールは各段階kでの信号とノイズの比率を定めます。初期の段階(kが大きい)はほぼ純粋なノイズで、終わりの段階(kが0に近い)はほぼきれいな行動です。
ノイズスケジュールの直観
k: K(ノイズ多い) ───────────────▶ 0(ノイズなし)
│ │
信号比率: 低い ──────────────────▶ 高い
ノイズ比率: 高い ──────────────────▶ 低い
各デノイジングステップで神経網は「この段階のノイズ」を予測して除去
→ 複数のステップを経て純粋なノイズがきれいな行動へ収束
スケジュールの形(線形、コサインなど)は学習の安定性とサンプル品質に影響します。行動生成では次元が小さく(7次元程度)系列が短いため、画像生成より少ないステップでも十分な場合が多いです。
推論ステップと速度-品質のトレードオフ
推論時のデノイジングステップ数は、速度と品質を分ける核心的なつまみです。
ステップ数によるトレードオフ(概念)
多いステップ(例: 数十~数百)
+ より正確な行動分布
- 推論が遅い → 制御周波数が低くなる
少ないステップ(例: 一桁)
+ 速い推論 → 高周波の制御が可能
- 分布の近似が粗くなり得る
DDIM系の決定論的サンプラや蒸留(distillation)で
少ないステップでも品質を保つ手法が活発に研究される
ロボット制御では速い更新が重要なので、少ないステップでも良い行動を出すサンプラの選択が実用性を左右します。この点こそ、flow-matchingが強調される理由とつながっています。flow-matchingは適切に設計すれば少ない積分ステップで滑らかな連続出力を出せ、高周波の制御に有利です。
拡散とflow-matchingの関係
拡散とflow-matchingは深いレベルでつながっています。どちらも単純な分布から複雑な目標分布への変換を学習します。拡散は離散的なデノイジングの連鎖で、flow-matchingは連続時間ODEの速度場で、同じ目標に近づきます。
二つの生成パラダイムの対応(概念)
拡散(DDPM): 離散マルコフ連鎖、段階ごとのノイズ除去
決定論サンプル(DDIM): 拡散をODEと見る決定論的積分
flow-matching: 最初からODE速度場を直接学習
共通点: ノイズ → 目標分布への「流れ」を学習
差異: 連鎖の長さ・決定論性・学習目標の形式
実務的には「どの方式が少ないステップで滑らかかつ正確な行動を速く出すか」が選択基準になります。Diffusion Policyは精密マニピュレーションで検証された安定性を、π0系は高周波の連続制御とVLM結合を強みとして掲げます。
実務の視点: いつ何を使うか
作業の性格による選択
意思決定ガイド(概念、絶対のルールではない)
┌─ 精密・多峰のマニピュレーション、データ豊富
│ → Diffusion Policy 系が安定
│
├─ 高周波の連続制御が必要(速い手の動き、滑らかさ)
│ → flow-matching ベース(π0 の方向)
│
├─ 強い意味的汎化・新しい指示への対応が最優先
│ → VLM バックボーンの VLA(離散トークンまたは連続結合)
│
└─ 単純・反復作業、速いプロトタイピング
→ 軽い方策から始め、必要なら拡張
このガイドは絶対のルールではなく出発点です。実際には、データ量、ハードウェアの制約、制御周波数の要求、安全要件を併せて考えて決定します。
学習時のよくある失敗
- **データの多様性不足**: 限られた実演だけを使うと、モデルが特定の配置・照明に過適合します。多様な初期条件と妨害要素を含めるべきです。
- **行動チャンク長の誤設定**: 長すぎると環境変化に鈍く、短すぎると一貫性が不足します。作業特性に合わせて調整します。
- **観測同期のエラー**: 観測と行動のタイムスタンプがずれると因果が壊れ、学習が崩れます。
- **サンプラ未調整**: 推論ステップ数とサンプラを調整しないと、遅いか粗い行動が出ます。
学習-推論チェックリスト(概念)
[ ] 実演データの初期条件・物体・背景が十分に多様か
[ ] 観測 ↔ 行動 のタイムスタンプ整列が正確か
[ ] 行動チャンク長が作業周期と合っているか
[ ] 推論ステップ・サンプラが速度-品質のバランスを満たすか
[ ] 安全制限(速度・トルク・作業空間)が低レベルにあるか
こうした点検は、モデル構造の選択と同じくらい実際の成功率に大きく影響します。連続行動生成の利点は、データ・パイプラインが堅固なときにはじめて発揮されます。
長所と限界
Diffusion Policy
- 長所: 多峰の行動を自然に扱い、精密マニピュレーションで安定します。行動チャンクで時間的一貫性を確保します。
- 限界: デノイジングのステップが多いと推論が遅くなり得ます(サンプラ選択で緩和)。実演データの質・多様性に性能が大きく左右されます。
π0 / flow-matching 系
- 長所: VLMの汎化と連続行動の滑らかさ・高周波を結合しようとします。速い制御が必要な精密作業に適した方向です。
- 限界: システムが複雑で、学習・チューニングの難度が高いです。性能や正確な仕様は実装・データ・ハードウェアによって変わり得るため、報告された数値は環境によって異なって再現されることがあります。
共通の留意点
- 実ロボットの評価は再現が難しく、環境に敏感です。
- 安全性(分布外の状況、衝突回避)は依然として核心的な課題です。
- データ収集コストはすべてのアプローチに共通するボトルネックです。
一つの作業のライフサイクルで見る
抽象的な話を具体化するため、「テーブルの上のコップを取って隣の皿に置く」という作業が、連続行動生成の方策でどう流れるのかを追ってみます。
┌──────────────────────────────────────────────────────────┐
│ コップ移動作業の制御ループ(概念的なタイムライン) │
└──────────────────────────────────────────────────────────┘
t0 観測: カメラでコップ・皿・手の位置を把握
│
▼
t0 生成: 未来Hステップの行動チャンク A_0 = [a_t .. a_{t+H-1}]
│ (デノイジングまたはflow-matchingで連続軌道)
▼
t0~ 実行: チャンク前部(数ステップ)をロボットへ送る
│ 手がコップへ滑らかに接近
▼
t1 再観測: コップが少し滑るのを検知
│
▼
t1 再生成: 新しい観測でチャンクを更新 → 経路を補正
│
▼
... 反復: 握る → 持ち上げる → 移す → 下ろす
│
▼
終了: グリッパを開き作業完了を判定
ここで連続行動生成の利点が表れます。コップが滑るという予想外の変化が起きても、方策は次の観測でチャンクを作り直して滑らかに補正します。離散トークンを一つずつ取り出す方式より更新が速く、軌道が滑らかです。
リアルタイムシステムとしてのロボット方策
遅延予算
ロボット制御はリアルタイムシステムです。観測から行動の実行までの全体の遅延(latency)が作業の安定性を左右します。遅延を項目ごとに分けると次のとおりです。
遅延予算の分解(概念)
センサ取得 ──▶ 前処理(画像リサイズなど)
│ │
▼ ▼
モデル推論(生成) ──▶ 後処理(逆変換・安全フィルタ)
│ │
▼ ▼
制御器へ送信 ──▶ 関節の作動
総遅延 = 上の段階の合計
→ どれか一つの段階が遅いと全体の制御周波数が下がる
連続行動チャンクを一度に生成すると、毎ステップ新たに推論する必要がなく、チャンクを消費する間に次のチャンクを準備できるため、遅延の負担を分散できます。これが高周波の制御を可能にする実用的な秘訣の一つです。
非同期推論とチャンクの消費
非同期パイプライン(概念)
生成スレッド: [チャンクA生成] [チャンクB生成]
│ │
▼ ▼
実行スレッド: ▮▮▮▮▮▮▮▮ (Aを消費) ▮▮▮▮▮▮▮▮ (Bを消費)
→ Aを実行する間にBを先に生成 → 途切れのない制御
※ 正確なタイミングはハードウェア・実装によって異なる場合があります。
このような非同期構造は、重い生成モデルを使いながらも制御ループを滑らかに保つのに役立ちます。ただし生成が遅すぎると、実行がチャンクを消費し終えても次のチャンクを待つことになり途切れが生じるため、生成速度とチャンク長のバランスが重要です。
サンプル効率とデータの多様性
連続行動生成モデルは表現力が大きいですが、その分、十分な実演がないと分布を正しく学習できません。サンプル効率を高める実務的な方法はいくつもあります。
サンプル効率を高める戦略(概念)
┌─ 事前学習の活用: VLMバックボーンの意味表現を再利用
├─ データ拡張: 色・切り抜き・視点の変化で実演を拡張
├─ マルチタスク学習: 複数の作業を併せて学習し転移を誘導
└─ 効率的なファインチューニング: LoRAなどで少ない資源に適応
→ 高価な実演の限界を補う方向
特にVLMバックボーンの事前学習された表現を再利用すると、少ないロボットデータでも意味的汎化を保ちながら行動を学べます。これは前の記事で見た共同ファインチューニングの直観と一脈相通じます。結局、連続行動生成の成功は、良い生成手法だけでなく、多様でよく整列したデータと、効率的な適応戦略の結合にかかっています。
おわりに
離散行動トークン化は、言語モデルの強力さをロボットへ直接持ち込む優雅な方法ですが、量子化と制御周波数という代償を払います。Diffusion Policyは行動をデノイジングで生成して多峰性と滑らかさを解決し、π0はflow-matchingで連続行動を速く作り、VLMの意味理解と結合しようとします。
大きな流れは「行動を分類ではなく生成として扱う」ことです。精密で滑らかで速い手の動きが必要な実世界の作業ほど、連続行動生成の利点が明確になります。次の段階は、こうした行動生成器をより大きなバックボーン・より多様なデータ・より複雑な機種(ヒューマノイド)へ拡張することです。
参考資料
- Diffusion Policy: Visuomotor Policy Learning via Action Diffusion, arXiv: [2303.04137](https://arxiv.org/abs/2303.04137)
- π0: A Vision-Language-Action Flow Model for General Robot Control, arXiv: [2410.24164](https://arxiv.org/abs/2410.24164)
- Flow Matching for Generative Modeling, arXiv: [2210.02747](https://arxiv.org/abs/2210.02747)
- Denoising Diffusion Probabilistic Models (DDPM), arXiv: [2006.11239](https://arxiv.org/abs/2006.11239)
- Denoising Diffusion Implicit Models (DDIM), arXiv: [2010.02502](https://arxiv.org/abs/2010.02502)
- OpenVLA: An Open-Source Vision-Language-Action Model, arXiv: [2406.09246](https://arxiv.org/abs/2406.09246)
- RT-2: Vision-Language-Action Models, arXiv: [2307.15818](https://arxiv.org/abs/2307.15818)
- Physical Intelligence ブログ: [physicalintelligence.company](https://www.physicalintelligence.company/)
현재 단락 (1/212)
前の記事で、VLAモデルはロボットの行動を離散トークンに変換し、言語モデルのように次のトークンを予測すると述べました。この方式は優雅ですが、二つの負担を抱えています。第一に、連続値を区間に切ってトーク...