ロボット学習についてGoogleのブログ記事をまとめてみました

割引あり

はじめに

以前、仮想環境で現実世界をシミュレートした世界を作り、そこでロボットを学習させるとロボットの学習がうまくいくのではないかという内容の文章を書きました。この文章は、その続きとなります。このような話題については、Googleのブログに関連内容が多数掲載されています。その内容は非常に興味深く、専門家はもちろん、最新のAI研究動向に関心のあるビジネス関連の方にもおすすめします。ただし、ブログの記事は英語であり、記事数も多いため、読むのは少々大変かもしれません。この文章では、そのブログ記事の中からロボティクスや強化学習に関するものを抜粋し、全体の流れを理解しやすい形で紹介することを目指しています。ただ、データサイエンスやAI等の基礎的な知識を説明無しに使用している箇所や記事内容の誤解等、いろいろ読みにくいところもあるかと思いますが、ご容赦いただけると幸いです。


全体の流れ

ロボット学習について考える上での一つの起点として、2013年にDeepMindがDQNを発表したことが挙げられます。そして、翌2014年にそのDeepmindがGoogleに買収されます。Google AI Blogが始まった2016年頃から、記事を通じてGoogleがロボット学習の研究を先導しようとしていることが伺えます。当初、ロボットは現実の環境での学習が中心でしたが、2017年からは仮想環境での学習に関する記事が増えてきました。その2016年頃の記事ではロボットは仮想環境でなく現実世界でロボット学習を行っていました。そして、2017年頃から仮想環境で学習させる取り組みについての記事が掲載され始めました。そして、仮想環境で使用するオブジェクトの自動生成や、仮想と現実の環境を行き来しながらの学習に関する実験などの記事が続々と掲載されました。また、2017年にはロボット学習のための会議であるConference on Robot Learning (CoRL) の初開催が報じられました。この頃、AIの研究は画像認識技術が主流となっており、その技術をロボットに適用する動きが活発でした。さらに、階層型強化学習(HRL)や模倣学習(IL)といった手法も注目されてきました。2021年以降は、仮想環境での物理エンジンの公開や仮想空間でのオブジェクトの公開といった記事が掲載されれます。その後は、仮想環境での学習技術そのものではなく、それをどのような場面で応用したのかといった応用に関する話題の記事が増加します。同時期には、柔らかい物体を扱うベンチマークや仮想環境の性能評価ベンチマークなどが公開されました。さらに、TensorFlow 3Dのリリースやビデオ学習ツールの公開、有料の物理エンジンの無料公開など、ロボット学習に関するさまざまなツールの標準化や公開が進められています。そして、2022年後半から2023年前半の現在にかけては言語モデルの発展を背景にそれらを有効に活用させることでロボット学習の更に発展させていくようなトピックの記事が多数掲載されます。

ロボット学習における強化学習の役割

強化学習は、エージェントが環境と相互作用しながら行動を選択し、その結果として得られる報酬を基に学習する手法です。この「試行錯誤」のアプローチは、自然界の学習プロセスに似ており、多次元の行動空間で直接的でない目標に向けてロボットを制御する際に、ロボット学習に有益と考えられてきました。しかし、伝統的な強化学習アルゴリズムには、状態空間が大きい場合や状態が連続的な値を取る場合に計算が難しくなるという課題がありました。また、高次元の視覚データなどの複雑な入力を直接取り扱うのは困難であり、多くの場合、手作業で特徴量の設計が求められていました。しかし、2013年にDeepMindが開発したDeep Q Learningは、強化学習と深層学習を組み合わせたもので、高次元視覚入力を基に最適な行動を直接学習することを実現しました。このときの研究の題材はビデオゲームでしたが、DQNの登場は、ロボット学習の進む方向性を大きく影響させるものとなりました。

ロボットを現実環境で学習させる取り組み

ロボット学習の研究の初期段階では、ロボットを仮想環境ではなく現実世界での学習が主に取り組まれていました。「Deep Learning for Robots: Learning from Large-Scale Interaction」という記事では、14台のロボットアームが並列で学習を行い、多くの試行回数を実現する試みが紹介されています。別の記事「How Robots Can Acquire New Skills from Their Shared Experience」では、ロボット同士が学習結果ではなく、直接経験を共有し、より効率的にタスクを学習する手法が取り上げられています。これらの記事は2016年にGoogle AI Blogで公開されたもので、共通して並列学習について述べられています。これに基づき、2016年以前のロボット学習研究では、十分な学習回数の確保が課題であり、その解決策として並列学習が注目されていたことが推測されます。ロボット学習では、実際にロボットを動かすことで学習が行われるため、時間の制約、ロボットの損傷リスク、研究者のセットアップの手間などが考慮される必要があります。これにより、学習の施行回数が限られ、結果としてデータの量や多様性が制限されることが予想されます。そのため、十分な学習回数を確保する目的で、並列学習が研究されていたのでしょう。しかし、仮想空間での学習は、学習回数を確保する上で、並列学習よりもさらに効果的な手段として捉えられるため、後に仮想環境での学習が主流となったのは自然な進展と言えるでしょう。

仮想環境でロボット学習させるためのオブジェクトの生成

ただし、仮想環境でロボットを学習させるのは容易ではありません。ゲーム内での3次元空間上のアクションを作成するには、大量の人的リソースが必要とされると言われています。ロボットを様々な環境で学習させるには、そのための多様な仮想空間が求められます。しかし、3次元空間を人力で一つ一つコーディングして構築するのは非現実的です。ゲーム業界では、開発の労力を減少させるための取り組みとして、共用の3Dオブジェクトが公開されることもあります。しかし、これらのオブジェクトはゲーム専用で、ロボット学習には適していません。

この背景を踏まえ、Googleは「Closing the Simulation-to-Reality Gap for Deep Robotic Learning」において、GANを用いたGraspGANという生成モデルを使い、仮想空間上のオブジェクトを生成する方法を提案しました。さらに、「Toward Generalized Sim-to-Real Transfer for Robot Learning」の記事では、この技術の進化版としてRL-CycleGANとRetinaGANの2つの手法が紹介されています。RL-CycleGANは、定期的に実際の環境でのテストを通じて、仮想と現実の間の学習結果のギャップを縮小します。RetinaGANは、オブジェクトのテクスチャや照明のリアリティを強調して、ロボットアームが掴みやすいオブジェクトを生成します。これらの研究成果をもとに、1000以上の3Dスキャンされた家庭用品のデータセットが公開されることとなり、「Scanned Objects by Google Research: A Dataset of 3D-Scanned Common Household Items」という記事で詳しく述べられています。

これらの取り組みにより、仮想空間内のオブジェクトの質や量が向上しています。しかし、仮想空間にオブジェクトが存在するだけではシミュレーションは成立しません。それらのオブジェクトが仮想空間内で動作することで、初めてシミュレーションが可能となります。このような動作を再現するためには、物理エンジンが不可欠です。

仮想環境でのロボット学習のための物理エンジン

Googleは物理エンジンの改善も進めています。一般的に、物理エンジンはゲーム用と学術計算用の2種類に大別されます。ゲーム用の物理エンジンは、実行速度やゲームの滑らかさを重視し、インタラクティブな環境で使用されるため、一部の計算は近似的に行われます。この計算はユーザー体験を最優先し、GPUを活用したリアルタイム計算に焦点が当てられています。一方、学術計算用の物理エンジンはより複雑なシミュレーションを必要とし、特定の物理学の法則を高精度で計算することが要求されるため、CPU、GPU、あるいはスーパーコンピューター等用途に応じて様々な端末で実行されます。

ロボット学習には、高速でインタラクティブな動作が求められる一方、ゲームのような近似計算ではなく、高い物理的精度も必要です。しかし、それは長時間先の物理現象を予測する精度よりも、直近の計算の精度といった特性が求められます。ロボット学習は主にGPU上で行われるため、物理計算もGPU上で効率的に実行できると、計算速度が向上するでしょう。

Googleの取り組みにおいては、「Learning an Accurate Physics Simulator via Adversarial Reinforcement Learning」という記事で、物理エンジンを深層学習で構築する試みが紹介されています。この研究では、シミュレーションで生成された軌道と実際のロボットで収集した軌道の誤差を縮小するためにGANを使用しています。「Speeding Up Reinforcement Learning with a New Physics Simulation Engine」という記事では、GPU対応の物理エンジン「Brax」が公開されています。また、Googleの関連会社DeepMindはロボット学習用の物理エンジンMujocoを買収し、無料で提供しています。MujocoはゲームエンジンのUnityとの連携が考慮されており、Unityを使用するエンジニアがロボット学習にも比較的簡単に取り組めるようになりました。

Sim-to-Real Gap

仮想環境でオブジェクトが生成できて、それを物理法則にそって動かすことが出来ても、それが現実を忠実に再現できているとは限りません。。仮想環境上の計算と現実世界とのギャップ(Sim to Real Gap)は避けられません。それでも、仮想環境で学習したロボットを現実世界で動作させるためには、この問題への取り組みが必要です。Google AI Blogでは、このような問題へのアプローチが紹介されています。例えば、「Scalable Deep Reinforcement Learning for Robotic Manipulation」という記事では、QT-Optというアルゴリズムが紹介されています。仮想環境で学習する場合であっても、現実世界とのズレがある以上、現実世界でのテストも避けられません。QT-Optは、仮想空間での学習と現実世界でのテスト、そして、仮想空間で再学習という手続きを一般化させたアルゴリズムです。「Exploring Evolutionary Meta-Learning in Robotics」では、仮想空間でのズレを軽減するための適切な学習環境の選定を、進化戦略を用いて行う手法が紹介されています。さらに、「A Simulation Suite for Tackling Applied Reinforcement Learning Challenges」という記事では、仮想環境で学習したロボットが現実で直面する9つの課題(例:センサーのノイズ、システムの遅延、コントローラーの摩耗等)に対して、それらの課題を仮想空間で効果的にテストするためのシステムを公開し、研究を促進する試みが述べられています。「Table Tennis: A Research Platform for Agile Robotics」では卓球のラリーという人間とロボットの相互作用が必要なシチュエーションで、仮想環境での学習方法が紹介されています。

仮想環境で学習させたロボットの応用させる

Googleは、仮想環境でのロボット学習を現実の応用フェーズに移行しています。「Robotic deep RL at scale: Sorting waste and recyclables with a fleet of robots」という記事では、仮想環境で学習させたロボットを用いてGoogle社内で実際にゴミの分別に利用している様子が紹介されています。記事内では、さまざまなタスクへの対応にはより高性能なモデルが必要だと触れられているものの、ゴミの分別にはすでに一定の成功を収めていることが述べられています。また、「IndoorSim-to-OutdoorReal: Learning to navigate outdoors without any outdoor experience」という記事では、屋内とそれを模した仮想環境で学習を経た4足歩行ロボットがトレーニングされていない屋外環境でどのように活動を行うことができるかとう課題について取り上げられています。このような取り組みを行う時点で、屋内での活動に一定の成果があったことが伺えます。

ここから先は

4,788字

この記事が気に入ったらサポートをしてみませんか?