Python 向け 5 つの強化学習フレームワーク

Python 向け 5 つの強化学習フレームワーク

独自の強化学習実装をゼロから作成するのは大変な作業になる可能性がありますが、そうする必要はありません。 数分で学習を開始できる、優れたシンプルな無料フレームワークが数多くあります。


Scikit-learn、XGBoost、さらには Tensorflow など、教師ありおよび教師なし機械学習用の標準ライブラリは多数あり、すぐに始めることができます。また、サポートログもオンラインで見つかります。 残念ながら、強化学習 (RL) の場合はそうではありません。

フレームワークが存在しないわけではなく、実際には多くの RL フレームワークが存在します。 問題は、まだ標準がないため、開始、問題のトラブルシューティング、ソリューションのカスタマイズを行うためのサポートをオンラインで見つけるのが難しいことです。 これは、RL が非常に人気のある研究テーマであるにもかかわらず、業界での実装と使用がまだ初期段階にあるという事実によるものと考えられます。

しかし、だからといって、RL を使い始めて、好きな問題を解決できる強力なフレームワークが存在しないということではありません。 ここでは、私が知り、使用しているフレームワークのいくつかを、その長所と短所とともにリストしました。 これで、現在利用可能な RL フレームワークの概要を簡単に理解し、ニーズに合ったものを選択できるようになることを願っています。

1. ケラスRL

[[329009]]

リスト全体の中で、これが私のお気に入りだと認めざるを得ません。 これまでのところ、Deep Q-Learning (DQN)、Double DQN、Deep Deterministic Policy Gradient (DDPG)、Continuous DQN (CDQN または NAF)、Cross Entropy Method (CEM)、Dueling DQN、SARSA など、いくつかの RL アルゴリズムのコード実装を最も簡単に理解できると思います。 「最も理解しやすいコード」と言うとき、私はそれを使用するという意味ではなく、それをカスタマイズしてプロジェクトの構成要素として使用するという意味です*。 Keras-RL github には、すぐに使い始めることができる例もいくつか含まれています。 もちろん Keras を使用しますが、Tensorflow や PyTorch でも使用できます。

残念ながら、Keras-RL はまだ十分にメンテナンスされておらず、公式ドキュメントも最適ではありません。 これがきっかけとなって、Keras-RL2 と呼ばれるこのプロジェクトのフォークが生まれました。

(*) このフレームワークを何に使っているのでしょうか? そうですね、聞いてくれて嬉しいです。私ですか? このフレームワークを使用してカスタムの Tutored DQN エージェントを作成しました。詳細については、こちらをご覧ください。

2. ケラスRL2

Keras-RL2 は Keras-RL のフォークであるため、Keras-RL2 と同じエージェントのサポートを共有し、簡単にカスタマイズできます。 ここでの最大の変更点は、Keras-RL2 がより適切にメンテナンスされ、Tensorflow 2.1.0 を使用していることです。 残念ながら、Keras-RL のドキュメントをこのフォークに簡単に使用できるにもかかわらず、このライブラリのドキュメントはありません。

3. OpenAIベースライン

OpenAI Baselines は、AI、特に RL の研究開発における大手企業の 1 つである OpenAI による、高品質の RL アルゴリズム実装のセットです。 これは、研究者が RL アルゴリズムを簡単に比較し、OpenAI の最先端のアルゴリズムとベンチマークできるようにするために考案されました (名前の由来)。 このフレームワークには、A2C、DDPG、DQN、PPO2、TRPO などの多くの一般的なエージェントの実装が含まれています。

> [安定したベースラインベンチマークからのプロット。]

欠点としては、OpenAI Baselines はコードに関する役立つコメントが多数あるにもかかわらず、あまり文書化されていないことです。 また、これはビルディング ブロックとしてではなくベースラインとして使用するために開発されたため、プロジェクトの一部のエージェントをカスタマイズまたは変更する場合、コードはそれほど使いやすくありません。 実際、次のフレームワークはこの基盤からの分岐であり、これらの問題のほとんどを解決します。

4. 安定したベースライン

[[329010]]

> [画像はStable Baselinesドキュメントより]

Stable Baselines は、主要な構造のリファクタリングとコードのクリーンアップを行った OpenAI Baselines のフォークです。 公式ドキュメント サイトに記載されている変更点は次のとおりです。

  • すべてのアルゴリズムの統一された構造
  • PEP8(統一コーディングスタイル)に準拠
  • 文書化された関数とクラス
  • より多くのテストとより多くのコードカバレッジ
  • 追加アルゴリズム: SAC および TD3 (+ DQN、DDPG、SAC、TD3 の HER サポート)

私は過去に「Stable Baselines」を個人的に使用したことがありますが、確かに十分に文書化されており、使いやすいことを確認できます。 ワンライナーを使用して、OpenAI Gym 環境用のエージェントをトレーニングすることも可能です。

  1. stable_baselines からPPO2をインポートしますPPO2model = PPO2('MlpPolicy', 'CartPole-v1').learn(10000)

5. アクメ

[[329011]]

Acme は DeepMind から生まれました。DeepMind はおそらく RL に取り組んでいる最も有名な企業です。 そのため、読みやすく、効率的で、研究指向の RL アルゴリズムを構築するために開発されており、D4PG、DQN、R2D2、R2D3 などの最先端のエージェントの実装がいくつか含まれています。 Acme はバックエンドとして Tensorflow を使用しており、一部のプロキシ実装でも JAX と Tensorflow の組み合わせが使用されています。

Acme は、コードを可能な限り再利用可能にすることを念頭に置いて開発されたため、設計はモジュール化されており、簡単にカスタマイズできます。 ドキュメントはそれほど充実していませんが、ライブラリの概要を理解するには十分であり、Jupyter ノートブックを使い始めるための例もいくつか提供されています。

要約する

ここにリストされているフレームワークはすべて、あらゆる RL プロジェクトに適した選択肢です。 好みや使用したい機能に応じて、どちらを使用するかを決めます。 各フレームワークとその長所と短所をよりわかりやすく視覚化するために、次のような視覚的な要約を作成しました。

  • Keras-RL — Github: RL アルゴリズムの選択: ☆☆☆ ドキュメント: ☆☆☆ カスタマイズ: ☆☆☆☆☆ メンテナンス: ☆ バックエンド: Keras および Tensorflow 1.14。
  • Keras-RL2 — Github: RL アルゴリズムの選択: ☆☆☆ ドキュメント: N/A カスタマイズ: ☆☆☆☆☆ メンテナンス: ☆☆☆ バックエンド: Keras および Tensorflow 2.1.0。
  • OpenAI ベンチマーク — Github: RL アルゴリズムの選択: ☆☆☆ ドキュメント: ☆☆ カスタマイズ: ☆☆ メンテナンス: ☆☆☆ バックエンド: Tensorflow 1.14。
  • 安定したベースライン — Github: RL アルゴリズムの選択: ☆☆☆☆ ドキュメント: ☆☆☆☆☆ カスタマイズ: ☆☆☆ メンテナンス: ☆☆☆☆☆ バックエンド: Tensorflow 1.14。
  • Acme-Github: RL アルゴリズムの選択: ☆☆☆☆ ドキュメント: ☆☆☆ カスタマイズ: ☆☆☆☆ メンテナンス: ☆☆☆☆☆ バックエンド: Tensorflow v2+ および JAX

使用するフレームワークをすでに決定している場合は、必要なのは環境だけです。 これらのフレームワークのほとんどの例ですでに使用されている OpenAI Gym から始めることができますが、株取引、ネットワーク関係、推奨の作成などの他のタスクで RL を試してみたい場合は、使いやすいチェックリストを見つけることができます。

<<:  目標駆動型システムモデルは、人工汎用知能 (AGI) を実現するための鍵となるでしょうか?

>>:  機械学習のバックボーン: モデル構築のためのインフラストラクチャ ツールは何ですか?

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ユーモアを理解し、皮肉のスキルに溢れた、マスクのChatGPTのライバルがついにチャットのスクリーンショットを公開

最近、マスク氏の伝記「イーロン・マスク:伝記」が国内外でベストセラーとなった。この本には、マスク氏の...

AIがIT業界とAV業界にもたらす変化

[51CTO.com クイック翻訳]人工知能が情報技術 (IT) 業界とオーディオビジュアル (AV...

Facebook は 10 億枚のソーシャル ソフトウェア写真を使用して新しい AI アルゴリズムをトレーニングします

Facebook の研究者は最近、インターネット上のランダムなラベルなし画像のセットから学習できる新...

NvidiaはAIを使用してGPU演算回路を設計します。これは最先端のEDAよりも25%小さく、より高速で効率的です。

膨大な数の演算回路を搭載した NVIDIA GPU により、AI、高性能コンピューティング、コンピュ...

...

チューリングマシン: コンピューターが存在しないときに計算についてどのように話せばいいのでしょうか?

1950 年 10 月に、「機械は考えることができるか?」と題する論文が発表されました。この論文で...

人工知能ロボットの開発にはどのプログラミング言語を選択すればよいでしょうか?

この記事では、ロボット開発で使用される最も人気のあるプログラミング言語のトップ10を見ていきます。そ...

Google の FLoC アルゴリズムは、プライバシー保護の向上か、広告テクノロジーの向上か?

Android システムでは、Nut Hidden APP をダウンロードして、セキュリティリスク...

AIは観光業を良いビジネスにするでしょうか?

[[245713]]黄金の9月と銀の10月、観光業界は好景気の日々を待ち望んでいました。一方では、...

一流の科学者はどうやって AI を習得するのでしょうか? DeepSpeed4Science: 高度な AI システム最適化技術を使用して科学的発見を可能にする

今後 10 年間で、ディープラーニングは自然科学に革命をもたらし、自然現象をモデル化して予測する能力...

調査によると、AIツールは企業の従業員が年間約400時間を節約するのに役立つことがわかった

7月10日、人材分析・計画会社Visierは、英国、米国、カナダ、ドイツの250社以上の企業の従業員...

携帯電話が1秒で3Dホログラムを生成する、MITチームの新しい研究

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

人工知能は地球規模の気候危機に対処するために何ができるでしょうか?

インフレは世界的な問題であり、気候変動によって悪化しています。これは、異常気象の頻度と深刻度が増した...

2019年、小売業界はこれら10のテクノロジーによって革命を起こすでしょう。

[[252097]] 2013年から2018年にかけて、AI + 小売業の新興企業は374件の取引...