注意書きなど
本記事の説明はかなり簡略化してる為、論文の本質と若干異なる可能性があります。流し読み用としてご利用くださいませ。
RT-1とは
RT-1って何?
Google Researchが考案した様々なタスクに対応したロボット制御モデル
RT-1って何がすごいの?
- 画像 + 言語指令(マルチモーダル)でロボットアームを動かせるよ
- ばかでかデータセットで学習させてるよ
- 様々なタスクを高精度で実行できたよ
- リアルタイムで推論できるよ
RT-1が含まれているOpen X-Embodiment: Robotic Learning Datasets and RT-Xという論文は最近行われたICRA2024でIEEE ICRA Best Conference Paper Awardを受賞
Supplementary video for RT-1: Robotics Transformer for Real-World Control at Scaleより引用
700個のタスクを13種類のロボットで13万回って…😇
仕組み
RT-1は以下の要素を組み合わせてできています:
- Universal Sentence Encoder
- EfficientNet
- Feature-wise Linear Modulation (FiLM)
- TokenLearner
- Positional Encoding
- Transformer
それぞれ超ざっくり解説していきます。
Universal Sentence Encoder
RT-1は言語指令を取り扱うため、自然言語を処理(ベクトル化)するエンコーダというものが必要になります。
Universal Sentence Encoder (USE)って何?
Googleが作った強いエンコーダ(雑)
- 様々な言語を同じように処理できるよ
EfficientNet
RT-1は画像入力も取り扱うため、画像を処理(特徴摘出)するCNNアーキテクチャというものが必要になります。
EfficientNetって何?
Googleが作った強いCNNアーキテクチャ(雑)
- ばかでかデータセット(ImageNet)で事前学習させたものを使用
- 少ないパラメータ数と比較的シンプルな構造ですごいパフォーマンスを叩き出してるよ
Feature-wise Linear Modulation (FiLM)
RT-1は画像と言語を統合するためにFiLMというものを使っています。
FiLMって何?
外部の情報を元に特徴をいじる(線形変調)手法
- RT-1ではEfficientNetで摘出した画像の特徴をUSEで処理した言語情報を元にいじってるよ
- 画像から言語指令に関連した特徴を摘出するようにいじってるイメージ?
- CNNアーキテクチャの中間層にFiLMをぶち込むだけでマルチモーダル(RT-1の場合だと画像+言語)にできるよ
TokenLearner
RT-1はリアルタイムで推論したいため 、TokenLearnerという手法を使って計算コスト減らしています。
TokenLearnerって何?
重要なトークン(画像や言語を単位に分割したもの)だけを選別してトークン数を減少・圧縮する手法
- RT-1ではFiLM Conditioned EfficientNet(画像処理に言語情報盛り込んだもの)が出力した特徴をトークン化したもの(Vision-Language Tokens)を圧縮しているよ
Positional Encoding
RT-1の一部であるTransformer(次に解説するもの)はPositional Encodingという入力の前処理が必要になります。
Positional Encodingって何?
トークンに位置/順序情報を盛り込む手法
-
位置情報が無いと以下のようなことが起こりうる:
- 「勉強楽しい」をトークン化したものを「勉強」「楽しい」だとすると「勉強楽しい」と「楽しい勉強」では表現が違うのに同じ特徴が得られてしまう
-
RT-1ではTokenLearnerで圧縮されたトークンをTransformer(次に紹介するもの)に渡すが、その前に必ずpositional encodingでトークンに位置/順序情報を与えないといけない
- Transformerは位置情報を犠牲にしているため(RNNのようにトークンの順序を処理する仕組みが無い)
Transformer
後は摘出した画像言語トークン(TokenLearnerで圧縮したもの)をロボット指令に変換する方法が必要になります。
Transformerって何?
系列の依存関係を見つけて意味や文脈を学習するすごいモデル
-
一般的なTransformerはエンコーダ+デコーダで構成されているよ
- エンコーダ部分が入力シーケンスの依存関係を学習
- デコーダ部分はエンコーダ部分の出力を元に新しいシーケンスを推論/生成
-
RT-1はデコーダ部分だけを使用
-
RT-1は画像言語情報(TokenLearnerで圧縮したもの)をデコーダに渡してロボット指令(系列)に変換してるよ
全体像を見てみよう
RT-1全体の流れ
- 言語指令がUSEで処理(ベクトル化)される
- 6枚の入力画像をそれぞれ違うEfficientNetにぶち込む
- FilMを使ってEfficientNetが出力する画像特徴を処理された言語指令を元にいじる(EfficientNetが画像言語情報を出力するように)
- FilMを適用したEfficientNetが出力する画像言語特徴をトークン化し、それをTokenLearnerで圧縮
- それぞれのTokenLearnerが出力したものを一つにまとめる(FiLMを適用したEfficientNetとTokenLearnerのセットが画像(計6枚)ごとにあるため、計6層用意している)
- まとめられた画像言語トークンに位置/順序情報を付与
- 位置情報付き画像言語トークンをTransformerデコーダにぶち込むとロボット指令が出力される
流れのまとめ
まとめ
- Robotics Transformer 1 (RT-1)はGoogle Researchが考案した様々なタスクを高精度で遂行できるマルチモーダル(言語+画像)ロボット制御モデルだよ
- USEで言語処理、EfficientNetで画像処理、FiLMで統合、TokenLearnerでトークン圧縮、Transformerでロボット指令出してるよ
最後に
模倣学習はやはり面白い。
次回はLearning Fine-Grained Bimanual Manipulation with Low-Cost Hardwareという論文にある Action Chunking with Transformersという模倣学習方をざっくり解説しようと考えてます。スタンフォードのALOHAロボットで使われてるやつです。
参考文献
- https://2024.ieee-icra.org/awards-and-finalists/
- https://www.youtube.com/watch?v=UuKAp9a6wMs
- https://arxiv.org/abs/1803.11175
- https://arxiv.org/abs/1905.11946
- https://arxiv.org/abs/1709.07871
- https://arxiv.org/abs/2106.11297
- https://machinelearningmastery.com/a-gentle-introduction-to-positional-encoding-in-transformer-models-part-1/
- https://qiita.com/omiita/items/83643f78baabfa210ab1