空飛ぶAIに「一歩ずつ」を教える:DreamFlyが示す記憶と計画の新しいかたち

「千里の道も一歩から」という古い言葉があります。

遠くの目的地に着くには、まず目の前の一歩を確実に踏むこと。

これは、空を飛ぶAIエージェントの行動計画にも、そのまま通じる考え方のようです。

今回取り上げるのは、最新の研究「DreamFly: Causal Memory and Receding-Horizon Diffusion Planning for Aerial Vision-Language Navigation」です。

名前が長いので、ここでは DreamFly と呼ばせてもらいます。

空を飛ぶドローンや小型の飛行体が、人間の言葉による指示、たとえば「赤い屋根の家を通り過ぎたら左に曲がって、庭のテーブルの上に着陸して」といった命令を理解し、自分で周囲を見て判断しながら目的地まで移動する技術、それが空中視覚言語ナビゲーション(Aerial VLN)です。

地上のロボットと違い、空は上下左右どこへでも動ける分、得られる視界も刻々と変わります。

目印を見失うこともあれば、似た景色に惑わされることもある。

そんな状況で、AIエージェントは限られたカメラ映像と位置情報を手がかりに、今どこにいて、次にどこへ向かうべきかを自分で決めなければなりません。

空のナビゲーションはなぜ難しいのか

地上を走るロボットの場合、動き回れる範囲は平面に限られます。

ところが空を飛ぶエージェントは、前後左右に加えて高度も自由に変えられます。

この自由度の高さは、嬉しいようでいて判断を複雑にします。

さらに、機体に載せられるカメラは限られており、見える景色の一部しか観測できません。

つまり「部分観測」の状態で、自分が本当にどこにいるのかを推測し続ける必要があるのです。

従来の手法では、過去の映像をある程度は記憶するものの、その記憶が現在の判断にうまく活かされていなかったり、将来の行動を短い範囲でしか計画できなかったり、あるいは「ここが目的地だ」と明確に止まる判断が苦手だったりしました。

DreamFlyは、この三つの難しさに正面から取り組んでいます。

過去を順番に覚える「因果的記憶」

DreamFlyの最初の工夫は、過去の観測を因果の順序に沿って記憶することです。

ここでいう因果的とは、時間の流れを逆さまにしない、という意味です。

AIが現在の判断をするとき、未来の情報をこっそり使ってしまうと、実世界ではありえない「答えを知っているカンニング」が起きてしまいます。

DreamFlyでは、現在の一歩手前までの観測だけを使って、現在の視覚表現を補強します。

過去に見た景色をただ積み重ねるのではなく、正しい時間の順序で整理して覚えておく。

そうすることで、エージェントは「さっきあの交差点を曲がったから、今はこのあたりにいるはずだ」といった時間的な推論ができるようになります。

先を読んで一歩だけ進む「後退地平線計画」

二つ目の工夫は、行動の計画方法です。

DreamFlyは、拡散モデルと呼ばれる生成技術を使い、将来の行動列をまとめて予測します。

たとえば「これから5手先までの動き」を一気に思い描くのです。

ただし、実際に実行するのは、そのうちの最初の1手だけ。

一歩動いたら、新しい観測を取り込んで、また残りの計画を描き直します。

これを「K歩計画して1歩実行」と呼びます。

この方法の利点は、計画の段階では未来の行動を補助的な目標として使える一方、実行の段階では常に最新の視覚フィードバックを反映できることです。

いわば、地図を広げて大まかな道筋を決めておき、実際の交差点では目の前の様子を見て微調整する、そんな進み方です。

千里の道も一歩から、という言葉が、そのままアルゴリズムになっているのが面白いところです。

「ここだ」と自分で言える終了判断

三つ目は、目的地に着いたことをはっきり判断する仕組みです。

従来のモデルでは、行動を生成する流れの中で「止まる」という動作を選ぶことがありましたが、それが曖昧で、通り過ぎてしまったり、手前で止まりすぎたりすることがありました。

DreamFlyでは、LiteStopという部品を導入し、行動の候補を生成する前に、初期状態から「ここで止まる確率」を直接見積もります。

これにより、行動の生成と終了の判断が分離され、より明確に「ここが目的地だ」と言えるようになります。

数字が示す進歩と、これから

研究チームは、OpenFlyという空中ナビゲーションの公開ベンチマークで実験を行いました。

その結果、テストの既知環境では成功率32.04%、未知環境では29.46%と、比較された既存手法をすべて上回りました。

同時に、経路の効率を示す指標でも最高値を記録し、ナビゲーションエラーも最小だったとのことです。

まだ成功率が3割前後というと、実用には遠いように感じるかもしれません。

しかし、空を飛ぶエージェントが、過去の記憶と将来の計画と終了判断をバランスよく統合したことで、着実に前へ進んでいることが伝わってきます。

個人的には、未来を多めに計画しても、実行は一歩だけにとどめる、という発想がとても好ましく感じました。

ロボットに限らず、私たちも完璧な計画を立ててから動くより、まず一歩踏み出して、その結果を見てまた考えるほうが、複雑な環境ではうまくいくことがあります。

空の上でも同じなのかもしれません。

次にこの技術がどんな空を見せてくれるのか、楽しみに待ちたいと思います。

記事一覧