全6094文字
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 米グーグルが、ロボットの深層強化学習を1000倍以上に高速化する驚異的な技術を開発した。数時間を要していた学習を、わずか10秒ほどに短縮できる。新しい強化学習のアルゴリズムを考案したという話ではなく、強化学習のすべての分野に影響が及ぶ、よりベーシックなレイヤーで革新を起こした。

 ディープラーニング技術といえば、その学習から推論までGPUのようなアクセラレータ上で動くのが当然と思われるかもしれない。しかし、ディープラーニング技術が全盛の現在でも、未だにGPU上で動かず、CPUの上でシングルスレッドで実装されているところがあった。それが物理演算を行うシミュレータである。

 強化学習では、環境中での試行錯誤を繰り返しながら学習を進めていくが、ロボットのような物理的な動きを伴うケースでは、いきなり実機で試行錯誤を行うと環境やロボットそのものを破損することがあり危険である。このため、当初は物理演算エンジンによるシミュレータ上で試行錯誤を行い、学習が進んで洗練された制御器(エージェント)が出来上がったら、それを実機に移す、いわゆる「sim-to-real」というアプローチを取ることが多い。この物理演算エンジンとなるシミュレータとして、強化学習のコミュニティではCPU実装のものが標準的に使われてきたのである。

 強化学習研究では「OpenAI Gym」というベンチマークがよく使われており、そこでは「MuJoCo」というシミュレータが背後で動くことが多い。これがCPU実装だった。オープンソースのシミュレータ「Bullet」や米NVIDIA社の「PhysX」のように一部の処理をGPUでアクセラレーションするものもあるが、強化学習向けではあまり使われていなかった。

 グーグルは、このCPU実装が主流のシミュレータにメスを入れた。強化学習を実用的なレベルにまで高速化するには、CPU実装では力不足。ディープニューラルネット本体と同じく、シミュレータ側についてもGPUやTPU注1)といったアクセラレータ向けの実装が必須とみて、今回、自ら腰を上げ、スクラッチで新しい物理演算エンジンを実装した(図1)。既存の物理演算エンジンのように、一部の処理のみをGPUやTPUにオフロードするのではなく、物理演算エンジン全体がすべてアクセラレータ上で動くほどの徹底ぶりだ。