RWRL:強化学習の課題に取り組むための一連のシミュレーション(1/2)

入門/解説

1.RWRL:強化学習の課題に取り組むための一連のシミュレーション(1/2)まとめ

・成功している強化学習はシミュレータが利用可能か動作環境が安価に利用可能である
・シミュレーターが利用できない環境で強化学習を実際の製品に展開する事は難しい
・RWRLは実際のシステムを利用せずともアルゴリズムを高速で反復実行できる事を目指した

2.RWRLとは?

以下、ai.googleblog.comより「A Simulation Suite for Tackling Applied Reinforcement Learning Challenges」の意訳です。元記事の投稿は2020年8月12日、Daniel J. MankowitzさんとGabriel Dulac-Arnoldさんによる投稿です。

今回、Suiteと言う単語がとても訳しにくく感じたのですが、ソフトウェア業界ですとOffice Suite等の使い方も結構目にしますので「スイート」にしました。「特定の目的沿った一揃い(ひとそろい)のソフトウェアパッケージ群」くらいの意味ですが、SuiteとSuiteと乱発されると扱いにくくなってしまいますね。

ちなみにSuiteは日本語で高級な部屋の意味で使われるスイートルームのスイートですが、こちらも「寝室、居間、応接室などが一揃いになっている部屋」の意味であって、やっぱり「一揃い」の意味なんですね。

Office SuiteがOffice Suite SoftwareではないようにSuite自体に「一揃いになっている物」の意味が含まれているので、スイートルームはsweet roomでもsuite roomでもなくhotel suiteと表現しますって事でアイキャッチ画像はhotel suiteでクレジットはPhoto by Adam Winger on Unsplash

強化学習(RL)は、碁、StarCraft、Minecraftなどのゲームからロボットの移動チップの設計に至るまで、数多くの複雑な問題の解決に効果的であることが証明されています。これらの各ケースでは、シミュレーターが利用可能であるか、または現実世界の動作環境が迅速かつ安価に利用可能です。

しかし、こういったシミュレーターが利用できない環境でRLを実際の製品やシステムに展開することには、まだかなりの課題があります。

例えば、ロボットや自動運転などの物理制御システムでは、RLのコントローラーは、物体の把握や高速道路での自動運転などのタスクを解決するようにトレーニングされます。これらのコントローラーは、センサーノイズ、システム遅延、または通常の摩耗などの影響を受けやすく、コントローラーへの入力の品質が低下し、誤った意思決定や致命的な障害につながる可能性があります。


物理制御システム
Google XのEveryday Robot ProjectでRLを使用してオブジェクトを把握し、並べ替える方法を学習するロボット。これらのタイプのシステムは、本投稿で説明する現実世界の課題の多くから影響を受けます。

論文「Challenges of Real-World Reinforcement Learning」では、アプリケーションに現在のRLアルゴリズムを適用する際に妨げとなる9つの異なる課題を特定して説明します。

次に、この課題を実証的調査で追跡し、最先端のRLアルゴリズムでこれらの課題の改作をシミュレーションし、それぞれの効果をベンチマークしました。私達は、これらのシミュレートされた課題を「一揃いのReal-World RLタスク(RWRL Suite)」としてオープンソース化し、これらの重要な問題への注目を集めるだけでなく、それらを解決するための研究を加速しています。

RWRL Suite
RWRL Suiteは、強化学習の応用課題に触発された一揃い(suite、以下スイートで表記)のシミュレーションタスクです。その目的は、現実世界のシステムで低速で高価な実験を実行せずとも、研究者と実践者の両者がアルゴリズムを高速で反復実行できるようにすることです。

よく知られているRLのギャップには「シミュレーションでトレーニングされたRLアルゴリズムから現実世界のアプリケーションに移行する際のギャップ」がありますが、本スイートは、より基本的なアルゴリズムのギャップのいくつかを埋めることを目的としています。

現在、RWRLはDeepMind Controlスイートが対象とする領域のサブセットをサポートしていますが、その目的はRWRLを拡張して更に多様な領域をサポートすることです。

使いやすく、柔軟な設計
私たちは、2つの主要な目標を念頭に置いてスイートを設計しました。
(1)使いやすい
ユーザーは、数行のコードを変更するだけで、スイートをダウンロードしてから数分以内に実験を開始できるはずです。
(2)柔軟性
ユーザーは、非常に少ない労力で、課題の任意の組み合わせを環境に組み込むことができる必要があります。

遅延アクションの実例
RWRLスイートの使いやすさを説明するために、研究者または実践者がアクションの遅延(つまり、環境に送信されるアクションが一時的に遅延する状況)を作り出したいと考えているとします。

RWRLスイートを使用するには、rwrlモジュールをインポートするだけです。次に、delay_spec引数を使用して環境(例えば、cartpole)をロードします。このオプションの引数は、辞書型で指定します。アクションに適用される遅延の構成と観測値、または報酬と対応する要素の遅延タイムステップ数(例:20タイムステップ)

環境が読み込まれると、アクションは実験に他の変更を加えることなく自動的に遅延されます。これにより、RWRLスイートでサポートされているさまざまな異なる環境で、アクション遅延のあるRLアルゴリズムを簡単にテストできます。


RWRLスイートの概要。 数行のコードを使用して環境にチャレンジ(アクション遅延など)を追加し、ハイパーパラメーターを一掃して、右に示すグラフを作成できます。

ユーザーは、ロード関数に引数を追加するだけで、さまざまなチャレンジを組み合わせたり、事前定義された一連のベンチマークチャレンジから選択する事ができます。これらの引数はすべて、オープンソースのRWRLスイートのコード内で定義されています。

3.RWRL:強化学習の課題に取り組むための一連のシミュレーション(1/2)関連リンク

1)ai.googleblog.com
A Simulation Suite for Tackling Applied Reinforcement Learning Challenges

2)arxiv.org
Challenges of Real-World Reinforcement Learning

3)github.com
google-research/realworldrl_suite
google-research/realworldrl_suite/realworld_env.py
deepmind/deepmind-research/rwrl_d4pg.ipynb

コメント

タイトルとURLをコピーしました