同一のPick&Placeデータセットで学習した2つのPolicyについて、20k〜100kのcheckpointにわたりAction系列とJoint State系列の2階差分(Δ²)を定量化し、実機動画と突き合わせて検証した。
前日(2026-08-12)に実施した実機定性評価では、SmolVLAは20kから80kにかけて徐々にカクつきが減少した一方、80kから100kでは改善がほぼ飽和し、ACT 100kの方が明確に滑らかに見える、という印象が得られていた。
本評価の目的は、この定性的な印象が (a) Action系列、(b) 実際に動いたJoint State系列の双方において、定量指標として再現されるかを確認することである。加えて、CSV・グラフ・実機動画の3種類の証拠を相互参照し、既存の考察(claude_context.txt)を単に要約するのではなく、検証・増補・再構成することを狙いとする。
ACT 100kは非常に滑らか。SmolVLA 100kには細かなカクつきが残る、という目視評価が記録されている。本レポートはこの印象の妥当性を定量データと動画の両面から再検証する。
| Robot | SO-101 |
| Task | Pick & Place |
| Dataset | local/pick_place_150 |
| 比較Policy | ACT / SmolVLA |
| Checkpoint | 20k / 40k / 60k / 80k / 100k |
| Episode数 / checkpoint | 5 |
| 評価対象Joint | shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper |
| 評価対象信号 | action(Policy出力) / observation.state(実機Joint State) |
| LeRobot local dataset root | ~/.cache/huggingface/lerobot/local/ |
| ACT checkpoints | lerobot/outputs/train/act_pick_place/checkpoints/ |
| SmolVLA base model | lerobot/smolvla_base |
各checkpointについて実機Rolloutを収録し、Action / Observation StateからMotion Smoothnessを評価した。動画はACT / SmolVLA × 20k〜100k × front / top の組み合わせで収録されているが、ACTについては動画資産として20kと100kのみが本パッケージに含まれる(CSV上の定量データは20k〜100kの全checkpointが揃っている)。このため、動画による定性比較はACT 20k・ACT 100k・SmolVLA 全checkpointを中心に行う。
各checkpointのEpisode数は n = 5 と少なく、特にP95や標準偏差といった裾を見る統計量は1〜2 Episodeの外れ値の影響を強く受ける。本レポートの数値解釈は、この前提を踏まえて行う必要がある(詳細は §11)。
本評価では2階差分(Δ²、離散近似の加速度に相当)を基本指標とする。Δ²は連続するAction出力・Joint State変化の「切り返しの急峻さ」を捉える指標であり、値が小さいほど滑らかであると解釈する。
| 指標 | 定義 | 解釈 |
|---|---|---|
| Action Δ² Mean | Δ²at = |at+1 − 2at + at−1| の系列平均 | Policyが出力するAction自体の細かな揺れ・切り返しの平均的な大きさ |
| Joint State Δ² Mean | 同上をobservation.stateに適用 | Action上の揺れが実機Physical Motionへどの程度現れているか |
| Action / State Δ² P95 | Δ²系列の95 percentile | 平均は小さくても局所的に急激な変化(跳ね)が起きていないかを検出 |
Meanは「常時のジッタ」、P95は「局所的な瞬間的ジャーク」を捉える指標として役割が異なる。両者が揃って低い場合にのみ「一貫して滑らか」と言え、Meanは低いがP95が高い場合は「普段は滑らかだが、一部の区間・一部のEpisodeで大きく崩れている」ことを示唆する。この区別は §7 のSmolVLA 80k gripper分析で重要になる。
6 Joint(shoulder_pan / shoulder_lift / elbow_flex / wrist_flex / wrist_roll / gripper)平均のΔ²を、Action / Joint State、Mean / P95の4通りで集計した。全ての組み合わせで、ACTがSmolVLAを一貫して下回る。
| 指標 | Policy | 20k | 40k | 60k | 80k | 100k |
|---|---|---|---|---|---|---|
| Action Δ² Mean | ACT | 0.394 | 0.293 | 0.280 | 0.236 | 0.183 |
| SmolVLA | 1.043 | 0.741 | 0.599 | 0.518 | 0.464 | |
| Action Δ² P95 | ACT | 1.581 | 1.193 | 1.071 | 0.959 | 0.828 |
| SmolVLA | 2.908 | 1.929 | 1.707 | 1.540 | 1.347 | |
| State Δ² Mean | ACT | 0.091 | 0.073 | 0.077 | 0.072 | 0.057 |
| SmolVLA | 0.213 | 0.142 | 0.126 | 0.108 | 0.109 | |
| State Δ² P95 | ACT | 0.426 | 0.356 | 0.339 | 0.325 | 0.285 |
| SmolVLA | 0.729 | 0.479 | 0.454 | 0.447 | 0.421 |
出典: analysis/smoothness_master_summary.csv(difference=d2)を joint 方向に平均。単位はJoint値のΔ²(無次元、元データのJoint value scaleに準拠)。
Action側の差がそのまま実機の動きに現れているかを見るため、Joint State側のΔ²も確認する。総じてACTが低いという傾向はActionと同様だが、Action側ほど明確な差にはならないJointも存在する。
gripperのState Δ² Meanは、SmolVLAで 60k: 0.066 → 80k: 0.103 → 100k: 0.062 と非単調に推移する。この80kのスパイクは、Action側のgripper P95にも同時に現れており(4-3参照)、単一Jointの計測誤差ではなく、80k checkpointの一部Episodeで実際に発生した現象であると考えられる。詳細はEpisode単位の分析(§7)で扱う。
「ACTの方が収束が早く、最終的なSmoothnessも高い」という既存の解釈を、SmolVLA/ACT比(値の比率)で検証する。単純な差ではなく比をとることで、両Policyの収束ダイナミクスの違いがより明確になる。
| SmolVLA / ACT 比 | 20k | 40k | 60k | 80k | 100k |
|---|---|---|---|---|---|
| Action Δ² Mean | 2.65× | 2.53× | 2.14× | 2.20× | 2.53× |
| Action Δ² P95 | 1.84× | 1.62× | 1.59× | 1.61× | 1.63× |
| State Δ² Mean | 2.34× | 1.95× | 1.64× | 1.50× | 1.91× |
| State Δ² P95 | 1.71× | 1.35× | 1.34× | 1.37× | 1.48× |
相対ギャップは単調に縮小しない。 Action Δ² MeanでのSmolVLA/ACT比は 20k: 2.65× → 60k: 2.14×(最小)→ 100k: 2.53× と、いったん縮小した後に再び拡大する。State Δ² Meanでも同様に 80k: 1.50×(最小)→ 100k: 1.91× と再拡大する。これは「両者の差が学習とともに単調に縮まっていく」という単純な図式ではなく、ACTが60k以降も改善を続ける一方でSmolVLAが80k〜100kで頭打ちになるため、相対的な差が再び開くという非単調なダイナミクスを示している。元のcontextにある「収束が早く最終的にも高品質」という結論は数値的に支持されるが、その内実は「差が徐々に縮む」のではなく「一度縮んでから再拡大する」という、より詳細な形として補強できる。
| Checkpoint | ACT | SmolVLA |
|---|---|---|
| 20k | 動画上も揺れが大きいが、既にSmolVLAより低いΔ² | Action Δ²が全指標で最大。動画では動作の停滞・ためらいも観察される |
| 40k | Mean/P95ともに明確に改善 | 20k比で40〜45%程度改善するJointが多い、最も改善幅が大きい区間 |
| 60k | 改善は継続するが傾きはやや緩やか(一部Jointでわずかな停滞) | ACTとの相対ギャップが最小になる区間。Motion Stabilityの学習が概ね完了 |
| 80k | 改善が再加速するJointが多い | gripperでAction/State双方に一時的なスパイク(§7参照)。全体としては改善飽和域 |
| 100k | 多くのJointで最小値。動画上も最も滑らか | 80kからの改善幅は小さい。一部Joint(gripper state, wrist_flex等)でほぼ横ばい |
front / top 2視点の動画をcheckpoint横断で比較した。以下は動画から直接観察できる事実(Observation)であり、Policy内部の原因についての推測は §8 で明示的に「仮説」として分離する。
Grasp直前・直後の区間(0.2秒間隔でサンプリングしたフレーム列)を比較すると、ACTは 20k時点で既に Grasp動作が単一の連続した弧を描いており、指の開閉やアームの姿勢遷移に不連続な飛びが見られない。100kではこの傾向がさらに洗練され、動作全体の軌道がより短く、より直線的になる。
ここで見るべき点: 学習初期のcheckpointにもかかわらず、Grasp直前のアーム下降・指の閉じ動作が単調で滑らか。切り返し時の微振動がSmolVLA 20kと比べて明確に少ない。
ここで見るべき点: 一連の動作がより短い時間で完了し、Approach→Grasp→Placeの各フェーズの境界がなめらかに連続している。停止時のオーバーシュートもほぼ見られない。
SmolVLA 20kのfront視点を等間隔でサンプリングすると、他のcheckpointと比べて同一姿勢に近い状態が長く続く区間が観察される。これはΔ²が捉える「高周波の揺れ」というより、動作決定のタイミングが遅い・迷いがあるように見える現象であり、指標上はAction Δ² Meanの高さとして現れているものの、動画から受ける印象は「ガタつき」よりも「ぎこちない静止」に近い。
ここで見るべき点: アームが持ち上がった姿勢のまま小刻みな微動を続け、次の動作(下降・Grasp)への移行が遅れる区間がある。定量指標上のAction Δ²の高さは、この「移行の遅さ・迷い」も反映している可能性がある。
ここで見るべき点: 20kと比べて動作の停滞は大きく減少し、Approach〜Graspの流れが連続的になる。ACT Δ²との相対ギャップが最小になるcheckpoint(§5)であり、動画の印象とも整合する。
ここが本レポートで最も注意すべき点である。Action Δ² P95・State Δ² MeanはSmolVLA 80kでgripperを中心に再上昇するが(§4-4)、front/top動画を単純に眺めるだけでは、この再上昇に対応する明確な「見た目の崩れ」を全Episodeで一貫して確認することは難しい。多くの区間では動作は視覚的に妥当に見え、指標上の悪化はごく一部のEpisode・ごく短い時間帯に集中している(§7で詳述)。
定量指標では差が観測されるが、動画を通しで見ただけでは明確な差として確認しづらいケースが存在する。これは「指標が誤検知している」ということではなく、集計統計量(P95やMean)は数秒間の局所的な事象に強く影響される一方、人間の目視評価は動画全体の印象に引っ張られやすいためと考えられる。すなわち、稀だが大きな失敗(§7のEpisode 4・5)が定量指標を押し上げていても、動画を通しで見た際の「全体的な滑らかさ」の印象にはそれほど強く反映されない、という非対称性がありうる。
ここで見るべき点: 通しで見ると多くの区間は滑らかだが、一部Episodeでgripperの開閉が繰り返され、Placeの終盤で軌道が乱れる場面がある(§7のEpisode 4・5に対応)。
ここで見るべき点: 全体的な滑らかさはACT 100kに近づくが、Grasp直後や停止時に細かい修正動作(micro-correction)が残り、これが定量指標上のΔ² Meanの下げ止まりに対応していると考えられる。
ここで見るべき点: 上方から見た手先の水平移動軌道がほぼ直線的で、Pick後の旋回もオーバーシュートなく目標姿勢へ収束する。
ここで見るべき点: 大まかな軌道はACTと似た経路を辿るが、目標姿勢近傍での微調整(小さな往復運動)がACTより多く観察される。
§4-4で確認したSmolVLA 80kのgripper Δ²再上昇の内実を、Episode単位のAction/State比較で掘り下げる。これは今回の相互参照分析で得られた最も具体的な新知見である。
| Episode | Action Δ² Mean | Action Δ² P95 | State Δ² Mean | State Δ² P95 | 動画からの様子 |
|---|---|---|---|---|---|
| 1 | 0.533 | 2.125 | 0.076 | 0.481 | Action/Stateの追従が明瞭。単純なopen→close遷移 |
| 2 | 0.517 | 1.818 | 0.077 | 0.481 | 同上。5 Episode中最も低いΔ² |
| 3 | 0.604 | 2.175 | 0.120 | 0.619 | 終盤にかけて開閉を繰り返し、ばらつきが増加 |
| 4 | 0.738 | 2.908 | 0.145 | 0.756 | t≈15-19sで乱高下、t≈20s以降Actionが物理域外まで発散 |
| 5 | 0.605 | 2.035 | 0.097 | 0.550 | Episode 4と同様の終盤発散パターン |
出典: analysis/smoothness_master_per_episode.csv(policy=SmolVLA, checkpoint_k=80, joint=gripper, difference=d2)
Episode 4・5に共通するのは、「Stateが機構的な可動域の下限で飽和した後も、Actionが実現不可能な値を出力し続け、振動する」というパターンである。これはグリッパーが完全に閉じきった(あるいは対象物との接触で機械的に動けなくなった)状態で、Policyがそれでもなお閉じ続けようとする、あるいは開閉を迷うようなAction系列を出し続けていることを示唆する。State側はハードウェアの限界で自然にクリップされるため見た目上のΔ²は限定的だが、Action側はクリップされないためΔ²・P95ともに大きく跳ね上がる。
§4-4で確認した「SmolVLA 80kでgripper State Δ² Meanが再上昇する」現象は、このEpisode 4・5のような飽和直前・直後の振動的な追従動作が寄与している可能性がある。ただし、Stateの再上昇(0.066→0.103)に対してAction側の暴れがどの程度寄与しているかを分離するには、飽和区間を除外した再集計、またはEpisode単位のばらつき分解が必要であり、現時点のCSVだけでは寄与度を定量的に切り分けられない。
「ACTが良い/SmolVLAが悪い」という単純な優劣比較ではなく、なぜ差が生じうるのかを、Policy architecture・Action generation・Chunking・Flow Matching・Temporal execution・Servo tracking・Checkpoint convergence・Episode variabilityの観点から検討する。ここで述べる内容のうち、今回の実験データから直接確認できるものは「観測事実」、一般的な設計原理から導かれる説明は「仮説」として明示する。
[観測事実] 20kという学習初期のcheckpointでも、ACTのAction Δ² MeanはSmolVLAの約38%(1/2.65)に留まる。
[仮説] ACTは学習時にAction Chunkに対するTemporal Ensembling(重複するchunk予測の指数重み付き平均)を推論時に適用する設計が一般的であり、これは 設計上 Chunk間の不連続を平滑化する効果を持つ(§9参照)。学習が浅い段階でもこの平滑化機構自体は機能するため、Policyの「巧拙」以前に、アーキテクチャ由来の平滑化バイアスが20k時点の差に寄与している可能性がある。ただし、本パッケージにはTemporal Ensemblingの設定値(有効/無効、重みm)が含まれておらず、今回のロールアウトで実際にどう効いていたかは確認できない。
[観測事実] Action Δ² Meanの6 Joint平均は 20k:1.043 → 40k:0.741 → 60k:0.599(20k比 42.6%減)に対し、60k→100kでは 0.599 → 0.464(22.5%減)と改善率が鈍化する。
[仮説・複数の可能性]
いずれも本実験データのみでは検証できず、Loss curveやAction Expertの内部出力分布などの追加情報が必要である。
[既存研究からの知見] Flow Matching自体は、1つのAction Chunk内部では滑らかで連続的な軌道を生成するように学習される生成モデルである。しかし実機での滑らかさは、以下のような複数の実行系レイヤーを経由して初めて実現される。
したがって「Flow Matchingで生成されたAction列が滑らか」であることと「実機の軌跡が滑らか」であることの間には、Chunk実行・Servo追従という複数の変換段階が存在し、両者は同義ではない。
[既存研究からの知見] SmolVLAが採用する非同期推論は、現在のChunkを実行しながら次のChunkを並行して生成し、生成が完了次第切り替える方式である。この方式はレイテンシによる待ち時間("wait-for-inference" lag)を解消する一方、新しいChunkが直前の実行軌道と滑らかに接続する保証を作り込まない限り、Chunk境界で分布外的な「Jerk(急な切り返し)」が生じうることが、SmolVLA以降の関連研究(Real-Time Chunking等)で指摘されている。
[本実験に対する示唆・仮説] 今回のP95が示す「局所的な大きな跳ね」は、こうしたChunk境界に対応している可能性がある。ただし、本パッケージのCSVにはChunk境界のタイムスタンプが含まれていないため、Δ²のピークとChunk切り替えタイミングを直接対応付けることはできない。これは重要な追加検証ポイントである(§12 提案実験1)。
[観測事実] Action Δ² MeanのSmolVLA/ACT比(20k: 2.65×)に対し、State Δ² Meanの比は20kで2.34×とやや小さい。同様にAction P95比(20k: 1.84×)に対しState P95比は1.71×とやや小さい。この関係は他のcheckpointでも概ね同じ方向(State側の比がAction側の比よりわずかに小さい)で観察される。
[解釈] Action側の揺れの一部は、Servo制御・Actuatorの物理的な応答特性(ローパスフィルタ的な効果)によって減衰した上でState側に反映されていると考えられる。すなわちAction側の揺れが100%そのままState側の揺れになるわけではなく、実機側で部分的に平滑化されている。ただし§7で見たように、Actuatorが機構的限界(飽和)に達した場合には逆にAction-State間の乖離が拡大するケースもあり、「常に減衰する」という単純なモデルでは説明しきれない。
[観測事実] Episode間のAction Δ² Meanの標準偏差(6 Joint平均・Action、抜粋)は、SmolVLA 20kで大きく(gripperで0.233)、checkpointが進むにつれて縮小するJointが多いが、単調ではない(例: elbow_flexは20k:0.122→60k:0.024→100k:0.124と、100kで再びばらつきが増える)。
[解釈] §7のEpisode 4・5のような「終盤でgripperが機構的限界に達し発散する」パターンは、Task progression(把持後にPlaceへ正しく移行できたか)に強く依存する事象であり、Perception(対象物やゴール位置の認識誤差)やInitial condition(毎Episodeで物体位置が微妙に異なる)が引き金となった可能性がある。一方、Episode 1・2のような滑らかな追従は、同一Policy・同一checkpointでも初期条件や認識結果が良好であれば十分に達成可能であることを示しており、Policy instability単独ではなく、Task progressionの失敗がAction側の異常な揺れを誘発しているという説明との整合性が高い。ただし、Perception起因かAction execution起因かを切り分けるための情報(カメラ画像、認識結果)は本パッケージに含まれておらず、断定はできない。
§7で詳述した通り、5 Episode中2つ(Episode 1・2)は正常な単調遷移を示し、2つ(Episode 4・5)は終盤でState飽和後にActionが発散するパターンを示し、残り1つ(Episode 3)はその中間的な挙動を示す。[解釈] これは同一checkpoint・同一タスクであっても、Rolloutごとに「うまくいく試行」と「grasp後の処理でPolicyが迷走する試行」が混在していることを意味し、80k checkpointにおけるSmolVLAの安定性が、平均的には改善していても分散として残存していることを示す一次的な証拠である。
本節で挙げた仮説(Chunk境界起因説、飽和後発散説、Task progression起因説)は、いずれも今回のCSV・動画のみでは確定的な検証ができない。§12でこれらを個別に検証するための追加実験を具体的に提案する。
ここでは、ACT・SmolVLAのアーキテクチャに関する一般的な技術的知見を、一次資料・公式実装の調査に基づいて整理する。これらは「既存研究から得られる一般的知見」であり、「今回の実験で観測した事実」とは明確に区別する。
[既存研究] ACT(Zhao et al., 2023, "Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware")は、Conditional VAEとTransformerを組み合わせ、単一timestepではなくk個先までのAction列(Chunk)をまとめて予測する。推論時にはオプションとしてTemporal Ensemblingを適用でき、これは毎timestepでPolicyを呼び出して重複するChunk予測群を得た上で、指数重み付き平均(新しい予測ほど重みが大きい)によって最終的なActionを合成する手法である。原論文および追試研究では、この手法が「Jitter(揺れ)を緩和し、滑らかで正確な動作を生む」ことに寄与すると報告されている。
[既存研究] SmolVLA(Hugging Face, 2025)は、軽量なVision-Language Model(SmolVLM-2)と、約100MパラメータのCompact Transformer + Flow Matching目的関数で学習されるAction Expertを組み合わせたVLA(Vision-Language-Action)モデルである。Flow Matchingは、ノイズからAction Chunkへの連続的な変換(ベクトル場)を学習する生成モデルの枠組みであり、単一のAction Chunk内部では滑らかで連続的な軌道を生成するように設計されている。
[既存研究] SmolVLAは推論効率化のため、Policy側の推論とRobot側のAction実行を分離する非同期推論(Asynchronous Inference)を採用しており、現在のChunkを実行しながら次のChunkの計算をバックグラウンドで進める設計になっている。
[既存研究] Flow Matching系のAction Expertを非同期実行する場合、新しいChunkが生成されるたびに、それが直前まで実行していたChunkの続きと滑らかに接続する保証が設計上組み込まれていなければ、Chunk境界で分布外的な「Jerk」が生じうることが、SmolVLA以降の複数の研究(例: Real-Time Chunking/RTC、および関連するChunk融合手法の提案研究)で明示的に課題として指摘されている。これらの研究は、SmolVLA自身の標準的な非同期実行方式が、Chunk間の不連続性の問題を積極的には解いていないことを指摘し、その解決策(初期ノイズの選択、Chunk融合、Prefix一致制約など)を別途提案している。
[既存研究とACTとの対比] 一方、ACTのTemporal Ensemblingは、毎timestepでPolicyを呼び出し重複するChunk予測を重み付き平均するという、設計思想として異なるアプローチでChunk境界問題に対処しており、原理的にはChunk単位の急な切り替えそのものが発生しにくい構造になっている。
本実験のログ(claude_context.txt)にはSmolVLAの推論方式(同期/非同期、chunk_size等のパラメータ)が明記されていない。したがって、上記の「Chunk境界のJerk」という一般的な既知の課題が、今回観測されたSmolVLAのAction Δ² P95の高さや、§7で見た局所的な発散に実際に寄与しているかどうかは、本レポートの範囲では確認できない。これは一般的な設計原理から導かれる仮説であり、今回のデータのみで原因と断定してはならない。
別途検討中のComposable Physical AI構成では、SLM/VLM Planner → Skill Selection → Task-specific Policy → Low-level Motionという形で、Reasoning/PlanningとLow-level Motion Generationを分離することが検討されている。
| SLM / VLM Planner |
| ↓ Skill Selection |
| Task-specific Policy |
| ↓ |
| Low-level Motion |
今回の単一Pick&PlaceタスクにおいてはACTがMotion Smoothnessで一貫して優位だった。この結果は、次のような設計上の示唆を与えうる。
この示唆は、あくまで単一Dataset・単一Task・単一Robotという条件下でのMotion Smoothness差から導かれるものであり、Task成功率・汎化性能・言語指示追従性など、Composable Physical AIの設計に関わる他の重要な軸については、本評価の対象外である。
今回の結果は、以下の限定条件下での比較であり、ACTとVLA一般の性能差を示すものではない。
§8・§11で挙げた仮説を個別に切り分けるため、以下の追加実験を優先度順に提案する。
今回の定量評価は、前日の定性評価(「ACT 100kは滑らか、SmolVLA 100kには細かなカクつきが残る」)を、Action系列・Joint State系列双方のΔ²指標において支持する結果を示した。ACTは20kという学習初期の段階から一貫してSmolVLAより低いΔ²を示し、この差は100kまで縮小しつつも消えることはなかった。
一方で、CSV・グラフ・動画を相互参照したことで、単純な要約では見えてこない以下の知見が得られた。
これらの知見はいずれも、単一Dataset・単一Task・単一Robotという限定条件下のものであり、ACTとVLA一般の優劣を主張するものではない。§12で提案した追加実験(特にChunk境界の記録とTemporal Ensembling感度分析)は、本レポートで「仮説」として留保した論点を「観測事実」へ格上げするために必要な、次の具体的なステップである。