Baidu paddlepaddle学習の強化学習ツールPARL

4948 ワード

@PARL
PARL紹介
特長
**再現性保証.**高品質の主流強化学習アルゴリズムの実現を提供し,論文に対応する指標を厳格に再現した.
**大規模な並列サポート**フレームワークは最大で1万個以上のCPUの同時同時計算をサポートし、マルチGPU強化学習モデルのトレーニングをサポートする.
**多重化可能.**ユーザは,アルゴリズムを自分で再実現する必要がなく,多重フレームワークによって提供されるアルゴリズムにより,古典的な強化学習アルゴリズムを特定のシーンに簡単に適用できる.
**拡張性に優れています.**ユーザーが新しいアルゴリズムを調査したい場合、私たちが提供したベースクラスを継承することで、自分の強化学習アルゴリズムを迅速に実現することができます.
フレーム構造
PARLの目標は,複雑なタスクを完全に行えるスマートボディの構築である.以下に、ユーザーがインテリジェントボディを徐々に構築する際に理解しなければならない構造を示します.
Model
Modelは、通常、ポリシーネットワーク(Policy Network)または値関数ネットワーク(Value Function)であり、入力は現在の環境状態(State)である順方向(Forward)ネットワークを定義するために使用されます.
Algorithm
Algorithmは、前方ネットワーク(Model)を更新するための具体的なアルゴリズムを定義し、すなわち損失関数を定義することによってModelを更新する.1つのAlgorithmは少なくとも1つのModelを含む.
Agent
Agentはアルゴリズムと環境のインタラクションを担当し,インタラクションの過程で生成したデータをAlgorithmに提供してモデル(Model)を更新し,データの前処理フローも一般的にここで定義される.
ヒント:チュートリアルand APIドキュメントにアクセスして、ベースクラスの詳細を参照してください.
簡易かつ効率的なパラレルインタフェース
PARLでは、修飾子(parl.remote_class)がユーザーの並列アルゴリズムの実現を支援します.以下では,Hello Worldの例を用いて,外部の計算リソースをPARLで簡単にスケジューリングして並列計算を実現する方法を説明する.詳細なパラレルトレーニング情報については、チュートリアルドキュメントにアクセスしてください.
#============Agent.py=================
@parl.remote_class
class Agent(object):

	def say_hello(self):
		print("Hello World!")

	def sum(self, a, b):
		return a+b

parl.connect('localhost:8037')
agent = Agent()
agent.say_hello()
ans = agent.sum(1,5) # run remotely and not comsume any local computation resources 

外部のコンピューティングリソースを2ステップでスケジュールします.
parlを使用します.remote_クラスはクラスを修飾し、その後、このクラスは他のCPUまたはマシン上で実行可能なクラスに変換されます.parlを呼び出すconnect関数はパラレル通信を初期化し,このようにして取得したインスタンスは元のクラスと同じ関数である.これらのクラスは別の計算リソースで実行されるため、これらの関数を実行すると、現在のスレッド計算リソースが消費されなくなります.PARL
実際のactor(オレンジの円)はCPUクラスタで動作し,learner(青い円)とremote actor(黄色の円)はローカルGPUで動作する.ユーザにとって,パラレルアルゴリズムはマルチスレッドコードを書くように完全に実現でき,かなり簡単であるが,これらのマルチスレッドの演算は外部の計算リソースを利用している.パラレルアルゴリズムの例も示していますが、詳細はIMPALA,A 2 C and GA 3 Cを参照してください.
インストール:
に頼る
Python 2.7 or 3.5+. (Windowsシステムではpython 3.6+以上の環境しかサポートされていません)paddlepaddle>=1.6.1(パラレル部分のインタフェースだけでpaddleをインストールする必要がない場合は必須ではありません)
アルゴリズムの例
QuickStart DQN ES(深さ進化アルゴリズム)DDPG PPO IMPALA A 2 C TD 3 SAC MADDPGチャンピオンソリューション:NIPS 2018強化学習義肢チャレンジチャンピオンソリューション:NIPS 2019強化学習擬生制御試合
シーンの操作
実际の任务の中で强化学习を使って问题を解决することを试みたいです速く调査したいです异なる强化学习アルゴリズムの同じ问题の上の効果强化学习アルゴリズムの训练速度が遅すぎて、分布式の强化学习训练プラットフォームpythonのGILのグローバルロックを构筑してマルチスレッドの加速を制限して、pythonコードを加速したいです
インテリジェントボディの構築(ベース)
オープンソースアルゴリズムライブラリ
入門:cartpole問題の解決
MADDPG
サブモジュールの説明
ES
モデルパラメータ管理
SAC
トレーニングカーブの描画
TD3
PolicyGradient
DQN
DDPG
PPO
A2C
IMPALA
インストール
インストール
PARLはUbuntu>=16.04、macOS>=10.14.1、Windows 10でテストに合格した.現在、Windowsではpython 3のみがサポートされています.5+以上のバージョンで、64ビットのpythonが必要です.
pip install parl--upgradeネットワークの問題によるダウンロードが遅い場合は、清華源を使用して解決することをお勧めします.
pip install -i https://pypi.tuna.tsinghua.edu.cn/simpleparl--upgrade最新コードを試したい場合は、ソースコードからインストールできます.
git clone https://github.com/PaddlePaddle/PARL cd PARL pip install . ネットワークの問題によるダウンロードが遅い場合は、清華源を使用して解決することをお勧めします(上記のコマンドを参照).git cloneが遅い場合は、国内のコードクラウドプラットフォームに管理されている倉庫を使用することをお勧めします.
git clone https://gitee.com/paddlepaddle/PARL.gitパラレルについてはPARLのパラレル機能を使いたいだけであれば、深い学習フレームワークをインストールする必要はありません.