はじめに
こんにちは、ストラテジックアライアンス部データアナリストの野島です。今回は、Kalashnikov et al. の論文「QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation」 [1]について紹介します。この論文では、深層強化学習手法QT-Optを提案し、ロボットアームの把持で96%という高い把持成功率を達成しています。同じ問題を扱った先行研究Levine et. al. [2] の手法では把持成功率は78%となっており、20%近く成功率が向上しています。また、QT-Optでは、過去の経験データ(オフライン経験データ)を用いた学習により、Levine et. al. の手法と比較して、より少ない把持試行によるデータで成功率を向上させています。
最初にロボットへの期待と強化学習について概観したのち、QT-Optの論文、そして関連して行ったオフライン経験データに関する実験についても紹介していきます。
ロボットへの期待
人手不足が社会問題となっている昨今、様々な業界においてロボットの導入による自動化が注目を集めています。以前から、工場など製造業の現場では組み立てなどで産業用ロボットが活躍しており、製造業でのロボット活用は今後も高い需要が見込まれています。また、ロボットは私たちの生活においても、身近な存在になりつつあります。店舗の受付ロボットや、家庭でお掃除ロボットを利用したことがあるという読者の方も多いのではないでしょうか。ALBERTでもそういったロボット技術の需要を見越して、ロボットの把持や、ロボット自体に空間や物体を認識させる研究を進めています。この記事では、これらの需要の中でもロボットの把持を取り上げます。把持は工場などでロボットが部品の移動や組み立てを行うときに、最も基本的な動作の一つです。また、私たちの身近で動作するロボットにも把持能力があれば、散らかった部屋での収納といったより複雑なタスクをロボットに任せることができるようになるでしょう。
さて、ロボットによる把持と一口にいっても、あらかじめ決まった物体だけを把持できればいいのか、それとも多種多様な物体に対して把持を行う必要があるのかでその難しさは変わってきます。後者の意味での把持をロボットが行うことができれば、ロボットの活躍の場はより広がっていくはずです。QT-Optの論文では、こうした多種多様な物体にも通用する把持能力の獲得に対して、強化学習によるアプローチを提案しています。
強化学習とロボット
QT-Optの論文の紹介に入る前に、ここでは、強化学習について簡単にまとめます。強化学習とは
一言でまとめてしまうと、強化学習は、ある目標の達成に向けて、周囲の状況に応じた最適な行動方法を学習する機械学習の一分野です。と言っても、少し分かりにくいので、ゲームを例に強化学習を応用することで何ができるようになるかを説明します。キャラクターを操作して、ゲーム終了時に獲得したトータルのポイントを競うゲームを考えてみます。ゲームの進行中にはプラスポイントをもらえるアイテムや、ぶつかるとマイナスポイントとなる障害物があるとしましょう。このゲームでの目標はもちろん、より高いトータルポイントを稼ぐことです。そのためには、できるだけアイテムは獲得しつつ、障害物は避けていく必要があります。アイテムと障害物の位置関係によっては、アイテムを諦めたり、ポイントがマイナスになっても障害物にあたる戦略が必要になるかもしれません。強化学習を用いることで、複雑にもなり得る最適なプレイ戦略を学習することができます。
強化学習の枠組み
前節では、機械学習分野における強化学習の位置づけとゲームへの応用を紹介しました。後の説明のため、ここでは強化学習の枠組みをもう少しフォーマルにまとめます。強化学習では、ゲームの例でキャラクターにあたる操作対象を「エージェント」と呼び、「行動」選択の方法を学習します。ゲームでは、キャラクターはゲームの世界にいて、キャラクターをとりまく状況に合わせて操作を行っていきます。同じように、エージェントはある「環境」にいるとして、環境の「状態」を観測してから行動を選択します。エージェントの行動により状態が変化することもあり、状態の観測と行動選択を逐次的に繰り返していくという設定を強化学習では扱います。
次に、行動の適切さの指標として、強化学習では「報酬」と呼ばれるスカラー値を用います。報酬は行動の度に発生し、報酬の累積値を高める行動選択を強化学習では学習します。報酬は問題ごとに個別に設計する必要があり、ゲームの例ではポイントが報酬にあたります。
探索と学習
では、エージェントの行動をどのような方法で最適化していくのでしょうか。ここでは、多くの強化学習の手法に見られる「探索」によって得られたデータによる最適化について説明します。強化学習では、教師付き学習と異なり、最初から学習のためのデータがあるわけではなく、環境の中でエージェントが自ら行動することで経験データを集めます。ここで、経験データとは、行動とその行動前後の状態、そしてその時に得られた報酬の組をさします。この経験データを集めるステップは「探索」と呼ばれ、こうして集めた経験データにより行動を最適化、すなわち「学習」を行っていきます。人間が何度もゲームをプレイして、その経験をもとに上達していくことを想像すると分かりやすいと思います。
強化学習の利点
ロボットアームで多種多様な物体の把持を行うときを例に、強化学習の利点を考えてみます。強化学習を用いない場合、把持対象の認識プログラムと把持対象ごとの動作プログラムを組み合わせて把持を実現するというのが一つのやり方です。こうした把持設計では、細かなパラメータの調整を伴うプログラムを複数作成することになり、個別のケースごとに煩雑な作業が必要となります。一方、強化学習を用いる場合、把持対象の認識(状態の観測)とロボットアームの動作(行動)を逐次的に行うことで把持を実現します。把持対象の認識と把持動作をまとめて強化学習に任せてしまうことができるため、それぞれ別個に設計するよりも最適な把持動作を期待できます。さらに、認識を何度も繰り返すため、想定外の状態にも対応可能な把持動作が期待されます。強化学習の課題
強化学習の課題についても取り上げておきましょう。ここでは特に、ロボットに応用する際の課題を取り上げます。強化学習ではエージェントの探索により集めた経験データで学習することに触れましたが、ロボット実機での探索には次のような問題があります。まず、探索には非常に時間がかかるという点です。一般に、強化学習では、満足のいく能力を持ったエージェントを学習するために膨大な経験データが必要となります。例えば、DQNと呼ばれる強化学習手法を提案した論文[3]では、Atariのゲームをプレイするエージェントを学習するのに5,000,000個程度の経験データを用いています。ゲームでは、高速にプレイするためのカスタマイズで探索にかかる時間は短縮できますが、例えばロボットアームによる把持では、一回の把持試行に数秒から数十秒かかってしまいます。さらに、パラメータチューニングのため何度か学習をやり直すことを考えると、強化学習の採用を躊躇してしまうほどの時間が探索には必要となります。また、何度も実機を動かす場合、探索の間にロボットが故障してしまう可能性が高く、ロボット実機による強化学習を困難にしています。
QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation
強化学習の課題を踏まえたうえで、ここからは、本題の一つ、Dmitry Kalashnikov et. al. の論文「QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation」[1]を紹介していきます。論文の概要
前述したように、この論文では、ロボットアームによる多種多様な物体の把持を目指し、QT-Optと呼ばれる深層強化学習の手法を提案しています。ロボットアームに強化学習を応用する際に問題となるのが、前節で触れた探索にまつわるコストです。QT-Optでは、過去の探索時の経験データ(オフライン経験データ)を活用する学習フローを取り入れることで探索の回数を削減します。実際、ロボットアーム実機を用いた実験により、先行研究と比べて少ない経験データ数にもかかわらず、より高い把持成功率を達成したことが報告されています。
以下で、論文の詳細を見ていきましょう。
論文の実験設定
実験では、KUKAのロボットアームと把持対象の物体が置かれているトレイを用意し、トレイ内の物体を把持する問題を考えます(図1左図)。ロボットアームの先端には、グリッパーと呼ばれる2本指が取り付けられており、この指を開いたり閉じたりすることで物を掴みます。ロボットアームの肩にはRGBカメラが取り付けられており、このRGBカメラによってロボットアームはトレイ内を観測できるようになっています。把持を強化学習の問題として扱うために、実験ではRGBカメラから得られた画像をもとに状態を定義しています。効率的な学習のため、画像に加えて、グリッパーが開いているか閉じているかを示すバイナリ値とトレイからの高さの情報も状態に含めています。行動はロボットアームをどのように動かすかを示す制御コマンドで、グリッパーの移動方向と移動量、回転量、グリッパーを開くか閉じるか、そして把持動作を終了するか否かといった命令からなります。最後に、報酬は物体を把持出来たときに1、それ以外は-0.05と設定しています。ここで、-0.05は把持までの行動回数が多くなりすぎないようにするためのペナルティとなっています。
ロボットアームの学習時は、図1右図で示した多様な物体を用いて把持を行って得られた経験データを用います。一方、評価の際には、学習時とは異なる物体を用いることで、把持能力の汎化性能、すなわち未知の物体にも対応できる把持能力を獲得できているかを検証しています。

QT-Optで学習したモデルの性能
ここでは、QT-Optで学習したロボットアームの評価結果を見ていきます。把持成功率は96%という値が達成されています。強化学習を用いないLevine et. al. [2] の手法では、把持成功率は78%であり、QT-Optを用いることで大きく性能が向上しています。また、先に触れたように評価では学習時とは異なる物体を用いているため、この96%という数字からは十分な汎化性能が得られていることも分かります。
把持能力の定性的な評価結果については、公開されている動画にまとめられています。この動画を見ると、ロボットアームがかなり柔軟な行動をできるようになっていることが分かります。この動画の前半では、物体同士が密着しており掴む箇所がない場合に、ロボットアームが物体の位置を一度ずらしてから把持を行う様子を見ることができます。また、動画後半(1:25 ~) では、把持対象のボールを途中で動かし、把持の邪魔をした時の様子が報告されています。ロボットアームは、邪魔をされても、もう一度把持を試みて無事にボールを掴むことに成功しています。把持という目標を設定することで、このような複雑な行動をも学習できてしまうというのは非常に興味深い点で、学習後のロボットアームの性能に感動し、上の動画を何度も再生してしまいました。
オフライン経験データを用いたQT-Optの学習
さて、ここからはQT-Optについての説明をまとめていきます。QT-Optは先行研究に対して、安定性・複雑なタスクへの対応力や並列処理の点で工夫を加えています。ですが、全てを説明するとかなり長くなってしまうので、メインのアイディアとなる「過去の探索時の経験データの利用」に焦点を絞ってまとめていきたいと思います。QT-Optは、深層強化学習の体表的な手法であるDQNを拡張した手法となっています。QT-Optの説明に入る前に、まずはDQN[3]について説明しておきましょう。
DQNは、Q学習と呼ばれる手法をディープニューラルネットワークに一般化した手法です。DQNの大きな特徴の一つに、「経験リプレイ」という仕組みがあります。前に、強化学習では探索により経験データを集めて、その経験データから学習を行うと述べました。Q学習では、探索で集めた経験データを一度学習に用いると、すぐに捨ててしまいますが、DQNでは集めた経験データを一時的なバッファにためておき、学習時はそのバッファからランダムに選んだ経験データで学習を行います。この仕組みが経験リプレイで、多くの深層強化学習手法で経験リプレイやその改良版が用いられています。
さて、QT-Optではこの経験リプレイを、過去の学習時の経験データ(オフライン経験データ)にまで拡張しています。DQNでは、一時的に経験データをためておくだけで、バッファがいっぱいになったら過去の経験データは捨てていき、学習が終わった時にはバッファに残っている経験データを全て捨ててしまいます。一方、QT-Optでは、過去の学習時の経験データを捨てずにストレージにためておき、次の学習時の経験データとして用います。探索を新たに行うのは、学習の最終段階だけで、少量の経験データだけを収集します。
アイディアはとてもシンプルなのですが、探索が高コストなロボットでは、探索したデータを効率的に再利用できるこの仕組みは非常に重要な工夫となります。ここで気になるのが、この仕組みで(1)オフライン経験データを用いた学習が上手くいくのか、そして(2)オフライン経験データはどのように集めるのが良いか、という点です。(1)については、実際に96%という高い把持成功率を達成できていることから、上手く学習できているといえるでしょう。この把持成功率を達成したときの学習の流れはこの後でもう少し詳しく見ていきます。(2)については、続く節にて論文のAppendix C.1について触れようと思います。このAppendixでは過去の経験データの内訳が学習結果に与える影響が考察されています。
それでは、オフライン経験データを用いたQT-Optの学習の流れをまずは見ていきましょう。QT-Optの学習は、大きく2つのフェーズに分かれています。学習の初期には、あらかじめ収集した経験データを用いてオフライン強化学習を行います。96%の把持成功率を達成した最終的な学習では、人間がプログラムした動作から得られた経験データや把持成功率が50%を超えた学習モデルの経験データを用いており、把持試行としては58万回分の経験データを学習に利用しています。学習が一定の段階まで進むと次のフェーズに移り、学習中のエージェントによる探索も行います。ここで新たに集める経験データは、オフライン経験データと区別するためオンライン経験データと呼びます。このフェーズでは、オンライン経験データをオフライン経験データに加えながら学習をさらに進めていきます。オンライン経験データはオフライン経験データと比べて少ないため、学習に使用するオンライン経験データの割合を徐々に上げながら学習を行うことで過学習を防ぎます。最終的な学習では、このフェーズで2.8万回の把持試行を行っています。
さて、QT-Optによるロボットアームの学習ではトータルで60.8万回の把持試行を行っているわけですが、Levine et. al. [2]の手法では、78%の把持成功率を達成するのに90万回分の把持試行データを必要としています。Levine et. al. の手法と比べると、QT-Optは必要な把持試行回数を削減したうえで把持成功率を向上させることに成功しています。とはいえ、60.8万回というのは極端に少ない数字というわけではなく、経験データの収集には7台のロボットアームを用いて、4か月という時間がかかっています。経験データ数を削減できているとはいえ、まだまだ長大な時間がかかっている点は今後の課題のように感じます。
オフライン経験データの内訳と性能への影響
さて、オフライン経験データを用いることで、必要な探索回数を減らせるというのがQT-Optの重要なポイントですが、このオフライン経験データはどんなものでも良いと言うわけではなさそうです。論文のAppendix C.1 では、シミュレーション環境を用いた実験で、オフライン経験データの内訳の違いが学習結果に与える影響が考察されています。この実験では二つのエージェント\pi_{scripted}と\pi_{eval}を用いて、経験データを収集し、それらでオフライン強化学習を行ったときの把持成功率を比較しています。\pi_{scripted}は人がプログラムしたエージェントで、xy方向に対してランダムにグリッパーを動かし、開いたままのグリッパーをトレイのある下側に移動させて、グリッパーを閉じ、元の高さまでグリッパーを戻すというエージェントです。\pi_{eval}はQT-Opt による学習で得られたエージェントを表します。ただし、\pi_{eval} はQT-Optで完全に学習したものではなく、この実験に用いられたエージェントはどちらも30%程度の把持成功率となっています。実験結果は表1のようになっています。ここで、D_{scripted}とD_{explore}はそれぞれ、\pi_{scripted}と\pi_{eval}を用いて収集したオフライン経験データを表しており、使用する経験データ数に応じて4パターンの学習を行っています。

表1の1段目と2段目が、D_{scripted}とD_{explore} のそれぞれで、30 万個のオフライン経験データを利用した場合の把持成功率です。3段目と4段目が、2種類のオフライン経験データをミックスした場合の結果となっています。この結果を見ると、1つのエージェントで収集したオフライン経験データのみで学習した時(1段目と2段目)と比べ、2つのエージェントで収集したオフライン経験データで学習した場合の把持成功率が大きく向上していることが分かります。また、3段目と4段目を比較すると、オフライン経験データ数が多いほど把持成功率が高くなっています。
この実験結果からは、異なる性質を持つ複数のエージェントで収集したオフライン経験データを用いることが把持成功率の向上に役立つことが示唆されます。もう少し掘り下げて、論文では次のような考察がされています。\pi_{scripted} はある程度のランダム性は持つものの、グリッパーを閉じるまでは常にトレイのある下側にグリッパーを移動させるため、このエージェントによって集められる経験データは偏ったものになります。一方、\pi_{eval}はベストな性能ではないものの、トレイと逆方向にもグリッパーを移動でき、より多様な経験データを収集することが可能です。このAppendixでの実験結果と、前節で説明した学習フローによる結果を踏まえ、低い把持成功率のエージェントを用いた経験データからスタートしても、学習とデータ収集を繰り返していくことで、高い精度の把持成功率を得るのに十分な多様性を持つオフライン経験データセットが得られるだろうと述べられています。
実験
ここでは、QT-Optの論文、特に最後に紹介したAppendix C.1を踏まえて行った実験とその結果を紹介します。これまでにも述べたように、ロボット実機による探索は高コストであり、ロボットに強化学習を応用する際には、必要な経験データ数を抑える必要があります。その方法の一つが、QT-Optの論文で提案されたオフライン経験データを使用した学習法です。論文のAppendix C.1 からはオフライン経験データの収集手順の違いが、最終的な把持成功率に大きく影響することが分かります。これから紹介する実験では、シミュレーション環境を用いてオフライン経験データの収集手順の違いと把持成功率の関係を実際に確認してみました。実験設計
今回の実験では、論文[4] で用いられているロボットアームのシミュレーション環境を用いました(Githubで公開されています[5])。細かい点ですが、実験を行いやすいようにコードのGitHubリポジトリのIssue [6] をもとに環境リセット時の挙動をカスタマイズしています。 このシミュレーション環境は、論文と同様に、トレイ内の物体を把持するタスクを扱います(図2)。QT-Optの論文と異なる部分として、状態はRGB画像のみ、行動はグリッパーの移動量の指示のみとなっています。物体に近づくと自動でグリッパーが閉じ、把持試行が終わるという少し簡略化された環境です。

実験では、論文のAppnedix C.1 と同じように、人手でプログラムしたランダムエージェント\pi_{scripted}とQT-Opt で学習したエージェント\pi_{eval}を用意し、それぞれで集めたオフライン経験データで学習を行った結果を比較しました。ここでランダムエージェントについては、論文[4] と同じ「random policy」を流用しています(実装は[7]で公開されています)。このエージェントは、xy方向にランダムにグリッパーを動かしながらグリッパーを下げていくという点でQT-Optの論文の\pi_{scripted}と似た設計となっています。ただし、このエージェントでは一定の確率でトレイとは逆方向の上側にもグリッパーを動かすように設計されています。
実験では、 ①「オフライン経験データ数によって把持成功率がどう変化するか」と、② 「オフライン経験データの内訳の違いによって把持成功率がどう変化するか」の2つの項目を検証するため、オフライン経験データセットとして次のA ~ Cの3種類を用意しました:
- A: \pi_{scripted}による10,000回分の把持試行を行って集めた経験データセット
- B: \pi_{scripted}による100,000回分の把持試行を行って集めた経験データセット
- C: \pi_{scripted}による50,000回分の把持試行を行って集めた経験データセット + \pi_{eval}による30,000回分の把持試行を行って集めた経験データセット
結果
以下の表では、オフライン経験データの内訳と学習後の把持成功率を示します。それぞれのデータセットで、オフライン学習を2回ずつ行い、学習後の評価用環境での把持成功率の平均値を求めています。データセット | \pi_{scripted}による把持試行回数 | \pi_{eval}による把持試行回数 | 把持成功率 |
---|---|---|---|
A | 10K | 0 | 39% |
B | 100K | 0 | 62% |
C | 50K | 30K | 70% |
考察
データセットAとデータセットB で学習した結果を比較すると、オフライン経験データ数が多いほど把持成功率が高くなっています。検証項目①については、一つのエージェント\pi_{scripted}だけの結果ではありますが、経験データ数が多いほど良いというなんとなく予想できる結果となっています。一方、データセットBとデータセットCで学習した結果を比較すると、実験Cの方がエピソード数は少ないにもかかわらず、データセットCで学習したエージェントの把持成功率が高くなっています。検証項目②については、2種類のエージェントによる経験データで学習した方が良いという論文Appendix C.1で期待されている通りの結果となりました。ただし、論文Appendix C.1の結果と比べ、データセットBとデータセットCの把持成功率の差はそれほど大きくありません。これは、環境の違いと\pi_{scripted}の設計の違いが影響していると思われます。特に、この実験で用いた\pi_{scripted}は、上方向の移動もランダムに発生するため、論文Appendix C.1 の実験と比べ、学習に有利となるようなオフライン経験データセットを\pi_{scripted}だけでも作れてしまったのではないかと予想しています。
まとめ
この記事では、深層強化学習手法QT-Optと関連して行った実験について解説しました。ロボット需要の高まりを考えると、認識と動作を一貫して扱え、複雑な行動方法について学習できる強化学習はロボットを多様な環境下に実投入していくための必須技術になっていくと思われます。一方、必要な経験データ量や経験データ収集のコストから、強化学習のロボット分野における成功例はあまり多くありません。今回紹介したQT-Optの論文[1] では、オンライン経験データに加えてオフライン経験データを有効活用することで、現実的な設定のもとで強化学習を成功させています。実世界でのロボットによる探索コストを踏まえ、オンライン、オフライン経験データの両方を用いる強化学習手法はQT-Opt以降も発展しており、2021年のCoRLではAW-Opt[8]やOff2OnRL[9]など新しい手法も提案されています。こうした手法を取り入れていくことで、強化学習はよりロボットへ応用しやすい技術になっていくと期待しています。
紙面の都合上この記事では解説できませんでしたが、QT-Optでは確率的最適化アルゴリズムによる連続な行動空間のサポートや分散処理アーキテクチャなど、他にも興味深いアイディアが取り入れられています。興味がある方は直接論文を確認してみることをお勧めします。
ALBERTでは、様々な専門的バックグラウンドを持つリサーチャー・アナリストを募集しています。また、今回ブログで扱ったロボットや強化学習についても研究を行っており、お手伝いしていただけるアルバイトメンバーも募集しております。興味を持たれた方は採用ページから詳細をご確認ください。
参考文献
- D. Kalashnikov, A. Irpan, P. Pastor, J. Ibarz, A. Herzog, E. Jang, D. Quillen, E. Holly, M. Kalakrishnan, V. Vanhoucke, S. Levine. QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation. In Conference on Robot Learning, 2018.
- S. Levine, P. Pastor, A. Krizhevsky, and D. Quillen. Learning hand-eye coordination for robotic grasping with large-scale data collection. In International Symposium on Experimental Robotics, 2016.
- V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves, I. Antonoglou, D. Wierstra, and M. Riedmiller. Playing atari with deep reinforcement learning. NeurIPS Deep Learning Workshop 2013, 2013.
- D. Quillen, E. Jang, O. Nachum, C. Finn, J. Ibarz, and S. Levine. Deep Reinforcement Learning for Vision-Based Robotic Grasping: A Simulated Comparative Evaluation of Off-Policy Methods. In 2018 IEEE International Conference on Robotics and Automation, pp. 6284-6291, 2018.
- https://github.com/google-research/google-research/tree/master/dql_grasping
- https://github.com/google-research/google-research/issues/14#issuecomment-475109307
- https://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/gym/pybullet_envs/baselines/enjoy_kuka_diverse_object_grasping.py
- Y. Lu, K. Hausman, Y. Chebotar, M. Yan, E. Jang, A. Herzog, T. Xiao, A. Irpan, M. Khansari, D. Kalashinikov, and S. Levine. AW-Opt: Learning Robotic Skills with Imitation and Reinforcement at Scale. In Conference on Robot Learning, 2021
- S. Lee, Y. Seo, K. Lee, P. Abbeel, and J. Shin. Offline-to-Online Reinforcement Learning via Balanced Replay and Pessimistic Q-Ensemble, In Conference on Robot Learning, 2021
The post QT-Optの紹介とオフライン経験データに関する実験 first appeared on ALBERT Official Blog.