「赤いカップを棚の一番上に置いて」――そんなことばのゴールと、いま目の前をとらえたカメラ画像。この2つだけを手がかりに、「今、そのゴールをどれだけ達成できているか」を 0〜1 のスコアで測る。それが 動的価値関数(Dynamic Value Function) です。単なる点数ではなく、「何が足りないか」「次に何をすべきか」まで一緒に返し、プロンプト(ことば)が変われば価値関数そのものが即座に組み替わります。
デモ映像
コンセプト: 「今の世界は、ゴールをどれだけ達成しているか」
やりたいことは、とてもシンプルです。
- 入力: 画像(現在の観測) + ゴール文(例:「コーヒーカプセルをマシンに入れ、フタを閉め、カップを注ぎ口の下に置いて」)
- 出力: 達成度 V ∈ [0, 1](0.0 まったく違う → 0.5 半分達成 → 1.0 完了)
ポイントは、これが単なるスコアではないことです。達成度と同時に、次の2つも生成します。
- 残差(何が不足しているか) ― 例:「カプセル未挿入」「カップの位置を調整中」
- 次の行動候補 ― 例:「カップを注ぎ口の下へ」
そして最大の特徴が動的性。プロンプト(ことば)が変われば、同じ画像に対しても価値関数が即座に再構築されます。
なぜ「画像とことばの類似度」だけでは測れないのか
素朴に考えると、「画像」と「ゴール文」の意味的な近さ(画像×文の類似度)を測ればよさそうに思えます。しかし、これは実際にはうまくいきません。
- 状態の判定に弱い ― 「片付いた部屋(a tidy room)」という文は、散らかった部屋の写真とも高く一致してしまいます。文との類似度だけでは「片付いているか」を判定できず、ときには逆相関にすらなります。
- 多段のタスクを追えない ― コーヒーを淹れるような複数ステップの作業では、途中経過と文の類似度がほとんど動かず、進捗を反映しません。
だからこそ、ゴールを「構造」として捉え、画像の中身と照らし合わせる仕組みが必要になります。
しくみ: 実行時に価値関数を「組み立てる」
本手法は、あらかじめ用意した「ゴール画像」を使いません。画像とプロンプトだけから、その場で価値関数を組み立てます。
- ゴール文を分解する ― 「〜の下に置く」「〜に入れる」「〜を拭き取る」「〜を洗う」といった指示を、検証可能な小さなサブゴールに分解します(例: カップ ─under─▶ 注ぎ口 / カプセル ─in─▶ マシン / こぼれたワインの“不在” / 「洗う」という“活動”)。
- 画像を構造化する ― ゼロショット物体検出(OWLv2)で、画像内の物体を位置(ボックス)と信頼度つきに洗い出します。
- 空間関係を採点する ― 「入っている(in)=包含」「下にある(under)=上下の重なり」「近い(near)=近接」などを幾何的に採点し、達成度と「不足しているもの」「次の行動」を導きます。
- 学習した“進捗ヘッド”で補う ― 幾何では測りにくい活動(「洗う」など)や微小な対象は、学習済みの進捗推定が担当します。
- 信頼度でゲートして融合する ― 「幾何がしっかり見えているときだけ、幾何を信じる」。観測の信頼度に応じて、幾何ベースと学習ベースを混ぜ合わせます。
達成度は、進捗とともに上がる
実機ロボットの「コーヒー淹れ」を例に、作業の進行に沿って達成度がどう動くかを見たものが下図です。序盤は低く、カプセル投入・カップ配置と進むにつれて滑らかに立ち上がり、完了時には 0.8 前後に達します。
結果: プロンプトだけで進捗を追える
実機の双腕ロボットによる家事デモ3種(フライパン洗い/ワイン拭き/コーヒー淹れ)を、学習に使っていないエピソード(ホールドアウト)で評価しました。
| タスク | 文だけの類似度 | 本手法(融合) |
|---|---|---|
| フライパン洗い | +0.53 | +0.98 |
| ワイン拭き | +0.21 | +0.95 |
| コーヒー淹れ | +0.07 | +0.97 |
数値は進捗との順位相関(Spearman ρ、+1 が理想=進捗どおりに上がる)。
- 全タスクで ρ ≥ +0.95 ― 文だけの類似度(特にコーヒー淹れは ρ=+0.07 でほぼ無相関)では追えない進捗を、本手法は安定して追えます。
- 「開始 < ゴール」の判別は全タスク 100% ― 最終状態が開始状態より必ず高いスコアになります。
- しかもこれらは、ゴール画像を一切使わず、プロンプト(ことば)だけで達成した精度です。
開発で見えた3つの工夫
一筋縄ではいかず、初回は幾何ベースがほとんど機能しませんでした。効いたのは次の3点です。
- 物体永続性 ― カップが注ぎ口の下に入ると、遮蔽で検出が消え、達成度が誤って急落してしまう。→「接近後の消失は“挿入/遮蔽”」とみなし、直前までの最良スコアを保持する。
- 活動型は幾何で測れない ―「洗う」は物の位置関係が変わらない“状態変化”で、ボックスでは原理的に判定できない。→「活動」と分類し、学習ヘッドに委ねる。
- 固定重みの融合は劣化する ― 幾何と学習を固定比で混ぜると、幾何の失敗がそのまま全体を汚す。→ 観測の信頼度でゲートし、「見えているときだけ幾何を信じる」ことで精度が回復した。
まとめと今後
- 画像とことばだけで、ゴール達成度を測れる ― 0〜1 のスコアに加え、「何が足りないか」「次に何をすべきか」を構造的に出力。
- プロンプトだけで進捗を追える ― ゴール画像なしで、実機の家事デモを高精度に追跡(融合で ρ ≥ +0.95)。
- 動的 ― プロンプトが変われば、価値関数が即座に組み替わる。
今後は、「洗う・混ぜる」といった活動型の状態判定を VLM で補強すること、ゴールの分解をより柔軟な言語モデルへ置き換えること、未知のタスクへの汎化の検証などに取り組んでいきます。ロボットが「あと何をすればゴールか」をことばから理解して測れるようになることは、指示だけで多様な作業をこなす自律ロボットに向けた重要な一歩です。