BAIRの最新のRLアルゴリズムはGoogle Dreamerを上回り、パフォーマンスが2.8倍向上しました。

BAIRの最新のRLアルゴリズムはGoogle Dreamerを上回り、パフォーマンスが2.8倍向上しました。

ピクセルベースの RL アルゴリズムが復活しました。BAIR は対照学習と RL を組み合わせたアルゴリズムを提案し、そのサンプル効率は状態ベースの RL に匹敵します。

この研究の本質は、「画像を観測値(ピクセルベース)として使用する RL は、座標状態を観測値として使用する RL と同じくらい効果的か?」という質問に答えることです。従来、画像を観察対象とする RL はデータ効率が悪く、Atari ゲームなどのベンチマーク タスクを解決するには通常 1 億回のインタラクティブなステップが必要であると広く考えられています。

研究者らは、強化学習のための教師なし対照表現である CURL を発表します。 CURL は対照学習を使用して生のピクセルから高レベルの特徴を抽出し、抽出された特徴に対して異なるポリシー制御を実行します。 DeepMind Control Suite および Atari Games の複雑なタスクでは、CURL は以前のピクセルベースの方法 (モデルベースおよびモデルフリーを含む) よりも優れており、100K インタラクション ステップ ベンチマークでそれぞれ 2.8 倍と 1.6 倍のパフォーマンス向上を達成しています。 DeepMind Control Suite では、CURL は、状態ベースの特徴手法のサンプル効率とパフォーマンスにほぼ匹敵する最初の画像ベースのアルゴリズムです。

  • 論文リンク: https://arxiv.org/abs/2004.04136
  • ウェブサイト: https://mishalaskin.github.io/curl/
  • GitHub リンク: https://github.com/MishaLaskin/curl

背景

CURL は、対照学習と RL を組み合わせるための一般的なフレームワークです。理論的には、同じポリシーでも異なるポリシーでも、CURL パイプラインで任意の RL アルゴリズムを使用できます。研究チームは、連続制御ベンチマーク(DM Control)では有名なSoft Actor-Critic(SAC)(Haarnoja et al.、2018)を使用し、離散制御ベンチマーク(Atari)ではRainbow DQN(Hessel et al.、2017)を使用しました。以下では、SAC、Rainbow DQN、対照学習について簡単に説明します。

ソフト俳優評論家

SAC は、ランダム ポリシーを最適化して、期待される軌道報酬を最大化するオフポリシー RL アルゴリズムです。他の最先端のエンドツーエンドの RL アルゴリズムと同様に、SAC は状態観察からタスクを解決するのに非常に効果的ですが、ピクセルから効果的なポリシーを学習することはできません。

Rainbow DQN (Hessel et al., 2017) は、元のアプリケーション Nature DQN (Mnih et al., 2015) に対する数多くの改良点として要約することができます。具体的には、Deep Q-Network (DQN) (Mnih et al., 2015) は、オフポリシー アルゴリズム Q 学習と畳み込みニューラル ネットワークを関数近似器として組み合わせて、生のピクセルをアクション値関数にマッピングします。

さらに、価値分布強化学習(Bellemare et al.、2017)では、C51 アルゴリズムを通じて可能な価値関数ビンの分布を予測する手法が提案されました。 Rainbow DQN は、上記のすべての手法を単一のオフポリシー アルゴリズムに統合し、Atari ベンチマークで最先端のサンプル効率を実現します。さらに、Rainbow はマルチステップ リターンを使用します (Sutton ら、1998)。

対照学習

CURL の重要な部分は、対照的な教師なし学習を使用して高次元データの豊富な表現を学習する機能です。対照学習は、微分可能な辞書検索タスクとして理解できます。クエリ q、キー K = {k_0、k_1、... }、および K の明示的なパーティション (q 上) P(K) = ({k+}、K {k+}) が与えられた場合、対照学習の目標は、q が K {k+} 内のどのキーよりも k+ に一致するようにすることです。対照学習では、q、K、k+、K{k+} はそれぞれアンカー、ターゲット、ポジティブサンプル、ネガティブサンプルとも呼ばれます。

CURL固有の実装

CURL は、バッチ更新中にトレーニング対照目標を補助損失関数として使用することにより、基本 RL アルゴリズムを最小限に変更します。実験では、研究者らは、DMControl 実験用の SAC と Atari 実験用の Rainbow DQN という 2 つのモデルフリー RL アルゴリズムとともに CURL をトレーニングしました。

全体的な枠組みの概要

CURL は、SimCLR、MoC、CPC と同様のインスタンス識別方法を使用します。ほとんどの深層強化学習フレームワークは、積み重ねられた一連の画像を入力として受け取ります。したがって、アルゴリズムは単一の画像インスタンスではなく、複数のスタックされたフレームにわたってインスタンスの識別を実行します。

研究者たちは、MoCo に似た運動量エンコーディング パイプラインを使用して目標を処理すると、RL でより効果的であることを発見しました。最後に、研究者らは CPC と同様の双線形内積を使用して InfoNCE スコア方程式を処理し、その効果が MoCo および SimCLR の単位ノルムベクトル積よりも優れていることを発見しました。対照的表現は RL アルゴリズムと一緒にトレーニングされ、勾配は対照的目的関数と Q 関数の両方から取得されます。全体の枠組みを下図に示します。

図2: CURLの全体的なフレームワークの概略図

ターゲットを特定する

アンカー ポイントに関して正のサンプルと負のサンプルを選択することは、対照表現学習の重要な要素です。

同じ画像上の画像パッチとは異なり、画像インスタンスを識別的に変換すると、InfoNCE 損失項を含む簡略化されたインスタンス識別目的関数が最適化され、構造調整を最小限に抑える必要があります。 RL 設定では、より単純な識別ターゲットを選択する主な理由が 2 つあります。

  • RL アルゴリズムは非常に脆弱であるため、複雑な識別目標は不安定な RL 目標につながる可能性があります。
  • RL アルゴリズムは動的に生成されたデータセットでトレーニングされ、複雑な識別目標によりトレーニングに必要な時間が大幅に増加する可能性があります。

したがって、CURL はパッチの識別ではなくインスタンスの識別を使用します。 SimCLR や MoCo のような対照的なインスタンス識別設定は、画像とそれに対応する拡張バージョン間の共通情報を最大化するものとして考えることができます。

クエリキー値ペアの生成

画像設定におけるインスタンス識別と同様に、アンカーと肯定的な観察は同じ画像からの 2 つの異なる拡張値であり、否定的な観察は他の画像から得られます。 CURL は主にランダム クロップ データ拡張方式を使用して、元のレンダリングされたイメージから正方形のパッチをランダムにクロップします。

私たちはデータのバッチに対してランダムなデータ拡張を使用しますが、観測の時間的構造に関する情報を保持するために、同じバッチ内のフレーム間で一貫性を保ちます。データ拡張プロセスを図 3 に示します。

図 3: ランダム クロッピングを使用してアンカー ポイントとそのポジティブ サンプルを生成するプロセスの直感的な図解。

類似度測定

識別目的のもう 1 つの決定要因は、クエリ キーのペア間の内積を測定するために使用されます。 CURL は双線形内積 sim(q, k) = q^TW_k を使用します。ここで、W は学習されたパラメータ行列です。研究チームは、この類似度メトリックが、MoCo や SimCLR などのコンピューター ビジョンにおける最新の最先端の対照学習方法で使用されている正規化ドット積よりも優れていることを発見しました。

モメンタムターゲットエンコーディング

CURL における対照学習の目標は、高次元のピクセルをより意味的な潜在状態にマッピングできるエンコーダーをトレーニングすることです。 InfoNCE は、チームが類似度ドット積を適用してエンコーダー f_q と f_k を学習し、元のアンカー (クエリ) x_q とターゲット (キーワード) x_k を潜在値 q = f_q(x_q) と k = f_k(x_k) にマッピングする教師なし損失です。通常、アンカー マッピングとターゲット マッピング間で同じエンコーダーが共有されます (つまり、f_q = f_k)。

CURL は、フレームスタックインスタンス認識とターゲットの運動量エンコーディングを組み合わせ、RL はエンコーダー機能の上で実行されます。

CURL 比較学習疑似コード (PyTorch スタイル)

実験

私たちは、(i) サンプル効率を、最高パフォーマンスのベースラインが 10 万インタラクション ステップでの CURL のパフォーマンスに一致するために必要なインタラクション ステップの数を測定することによって評価し、(ii) 10 万ステップのパフォーマンスを、最高パフォーマンスのベースラインに対して CURL によって達成されたサイクル報酬の比率を測定することによって評価します。言い換えれば、データやサンプル効率について話すときは (i) を指し、パフォーマンスについて話すときは (ii) を指します。

DMコントロール

DMControl 実験から得られた主な結果:

  • CURL は、既存のイメージベースのベンチマークに対するサンプル効率テストのために各 DMControl 環境でベンチマークする SOTA イメージベースの RL アルゴリズムです。 DMControl100k では、CURL は主要なモデルベースの手法である Dreamer (Hafner 他、2019) よりも 2.8 倍優れており、データ効率は 9.9 倍優れています。
  • 図 7 に示す 16 個の DMControl 環境のほとんどの状態から始めると、ピクセル操作のみの CURL は SAC のサンプリング効率にほぼ匹敵 (場合によってはそれを上回る) します。モデルベース、モデルフリー、補助タスクあり、補助タスクなしのいずれかです。
  • CURL は 500,000 ステップ以内に 16 個の DMControl 実験のほとんどを解決しました (最高スコアは 1000 近くに収束しました)。わずか 100,000 ステップで SOTA のような方法で競争力のあるパフォーマンスを達成し、このスキーム内の他の方法を大幅に上回ります。

表 1. 500k (DMControl500k) および 100k (DMControl100k) 環境ステップ サイズ ベンチマークでの CURL および DMControl ベンチマークで取得されたベースライン スコア。

図 4. SLAC、PlaNet、Pixel SAC、State SAC ベースラインと比較した、10 シードの CURL 結合 SAC のパフォーマンスの平均。

図 6. 主要なピクセルベースの方法 Dreamer を使用して 10 万回のトレーニング ステップで CURL と同じスコアを達成するために必要なステップ数。

図 7. 選択された 16 個の DMControl 環境のそれぞれで 2 つのシードを実行して、CURL と状態ベースの SAC を比較します。

アタリ

Atari 実験から得られた主な知見:

  • CURL は、26 の Atari100k 実験のほとんどにおいて、データ効率の点で SOTA PixelBased RL アルゴリズムです。平均すると、CURL は Atari100k 上で SimPLe より 1.6 倍、Efficient Rainbow DQN より 2.5 倍優れたパフォーマンスを発揮します。
  • CURL は 24% の人間正規化スコア (HNS) を達成し、SimPLe と Efficient Rainbow DQN はそれぞれ 13.5% と 14.7% を達成しました。 CURL、SimPLe、Efficient Rainbow DQN の平均 HNS はそれぞれ 37.3%、39%、23.8% です。
  • CURL は、JamesBond (98.4% HNS)、Freeway (94.2% HNS)、Road Runner (86.5% HNS) の 3 つのゲームで人間のパフォーマンスにほぼ匹敵しますが、これはすべてのピクセルベースの RL アルゴリズムで初めてのことです。

表 2. CURL と 100k タイム ステップの Atari100k ベンチマークで得られたスコア。 CURL は 26 環境のうち 14 環境で SOTA を達成しました。

プロジェクト紹介

インストール

関連するすべての項目は conda_env.yml ファイルにあります。これらは手動でインストールすることも、次のコマンドを使用してインストールすることもできます。

  1. conda env 作成 -f conda_env.yml

説明書

画像ベースの観察から cartpole swingup タスクを完了するように CURL エージェントをトレーニングするには、このディレクトリのルートから bash script/run.sh を実行します。 run.sh ファイルには次のコマンドが含まれており、これを変更してさまざまな環境/ハイパーパラメータを試すこともできます。

  1. CUDA_VISIBLE_DEVICES= 0 python train.py
  2.  
  3. --domain_name カートポール
  4.  
  5. --task_name スイングアップ
  6.  
  7. --encoder_type ピクセル
  8.  
  9. --アクション繰り返し8   
  10.  
  11. --save_tb --pre_transform_image_size 100 --image_size 84   
  12.  
  13. --work_dir ./tmp
  14.  
  15. --agent curl_sac --frame_stack 3   
  16.  
  17. --seed - 1 --critic_lr 1e- 3 --actor_lr 1e- 3 --eval_freq 10000 --batch_size 128 --num_train_steps 1000000  

コンソールに次のような出力が表示されます。

  1. | 列車 | E: 221 | S: 28000 | D: 18.1秒 | R: 785.2634 | BR: 3.8815 | A_LOSS: - 305.7328 | CR_LOSS: 190.9854 | CU_LOSS: 0.0000  
  2.  
  3. | 列車 | E: 225 | S: 28500 | D: 18.6秒 | R: 832.4937 | BR: 3.9644 | A_LOSS: - 308.7789 | CR_LOSS: 126.0638 | CU_LOSS: 0.0000  
  4.  
  5. | 列車 | E: 229 | S: 29000 | D: 18.8秒 | R: 683.6702 | BR: 3.7384 | A_LOSS: - 311.3941 | CR_LOSS: 140.2573 | CU_LOSS: 0.0000  
  6.  
  7. | 列車 | E: 233 | S: 29500 | D: 19.6秒 | R: 838.0947 | BR: 3.7254 | A_LOSS: - 316.9415 | CR_LOSS: 136.5304 | CU_LOSS: 0.0000  

カートポールスイングアップの最高得点は約845点です。また、CURL はステップ サイズが 50k 未満のビジュアル カートポールをどのように解決するのでしょうか。ユーザーの GPU に応じて、トレーニングには約 1 時間かかります。参考までに、最新のエンドツーエンド方式 D4PG では、同じ問題を解決するのに 5000 万タイムステップが必要です。

  1. ログ略語マッピング:
  2.  
  3. トレーニング - トレーニングエピソード
  4.  
  5. E - エピソードの総数
  6.  
  7. S - 環境ステップの総数
  8.  
  9. D - 1エピソードをトレーニングする秒数
  10.  
  11. R - 平均エピソード報酬
  12.  
  13. BR - サンプルバッチの平均報酬
  14.  
  15. A_LOSS - アクターの平均損失
  16.  
  17. CR_LOSS - 批評家の平均損失
  18.  
  19. CU_LOSS - CURL エンコーダの平均損失

実行に関連するすべてのデータは、指定された working_dir に保存されます。モデルまたはビデオの保存を有効にするには、--save_model または --save_video を使用します。利用可能なすべてのフラグについては、train.py を確認してください。視覚化のために tensorboard を使用して実行します。

  1. テンソルボード --logdir ログ --port 6006  

また、ブラウザで localhost:6006 にアクセスします。うまくいかない場合は、ssh を使用してポートを転送してみてください。

GPU アクセラレーション レンダリングの場合は、マシンに EGL がインストールされていることを確認し、export MUJOCO_GL = egl を設定します。

<<:  AIデコードと同じくらい魔法的? AIによるカラーリングはブラックテクノロジーなのか、それとも単なるジョークなのか?

>>:  AIとIoT:この2つの強力なテクノロジーが将来のビジネスモデルをどう変えるのか

ブログ    
ブログ    

推薦する

今後5年間で働くのに適した5つの職種

「中国製造2025」という言葉を聞いたことがありますか。これは、中国が2025年までに産業の徹底的な...

デジタルトランスフォーメーションにおけるAIビッグモデルの現状と役割を客観的に見る

「デジタル変革における AI ビッグモデルの役割は、『データ中心のビジネス変革の 3 つのパラダイム...

IT 業界で最も過小評価されている 6 つのテクノロジーと、まだ廃れていない 1 つのテクノロジー

翻訳者 | ジン・ヤンレビュー | Chonglou 2023 年、生成 AI、具体的には Chat...

...

...

世の中には、ほとんどコードを必要としない強力で古典的なアルゴリズムやプロジェクト事例にはどのようなものがありますか?

今日は、コードが非常に少ないけれども、非常にクールでクラシックな 4 つのアルゴリズムまたはプロジェ...

人工知能を活用して顧客サービス体験を向上させる 5 つの方法

人々がデジタルの世界に移行するにつれて、組織と顧客の関係はここ数年で変化してきました。顧客の期待はか...

量子畳み込みネットワークにおける「不毛のプラトー」現象が解決され、新たな研究により量子AIの大きな問題が克服された

量子コンピュータの出現は、コンピュータ分野に多くの進歩をもたらしました。量子コンピュータ上で実行され...

次世代ビジネスインテリジェンスのトレンドと機会

ビジネス成果を明確に定義するために、多くの企業は分析にビジネス インテリジェンス ソフトウェアを活用...

...

AR/VRが製造業の自動化とロボット工学の発展を促進する方法

この記事では、AR/VR テクノロジーがロボットにどのように貢献し、工場や産業にどのようなメリットを...

古代東洋の究極の秘密 - 知的な美しさ

[51CTO.com からのオリジナル記事] 伝説によると、古代の神秘的な東洋の世界には、秘密で偉大...

ヘルスケアにおける AI 自動化: 患者ケアと業務効率の革命

ヘルスケアにおける AI 自動化とは、ヘルスケア業界におけるプロセスを合理化し、患者ケアを改善し、運...

「手抜きアルゴリズム」は大企業をターゲットにしており、これがそれだ

[[342088]]基本的なデータ構造の統合は、大規模システムの基礎となります。たとえば、Redis...

猿人歩行からAIまで:三次元戦略で一人ひとりに寄り添う「真のセキュリティ」

[[420527]]有名なドイツの社会学者ウルリッヒ・ベックはかつてこう言いました。「近代化の過程...