こんにちは!私の名前はEric Yuであり、私はこのリポジトリを書き、初心者がPytorchを使用してゼロから近位政策最適化(PPO)を書き始めるのを支援しました。私の目標は、ベアボーン(派手なトリックがほとんど/ない)であり、非常によく文書化されている/スタイルと構造のPPOのコードを提供することです。私は特に、無限のPPO実装を読んで、何が起こっているのか全くわからない人々をターゲットにしています。
メディアから来ていない場合は、最初に私のシリーズを読んでください。
このコードは、PythonとRehnection Learning(RL)の経験があるという仮定で書きました。これには、ポリシーグラデーション(PG)アルゴリズムやPPO作業が含まれています(PPOの場合、理論レベルに精通しているはずです。結局、このコードはPPOを実践するのに役立ちます)。 RL、PG、またはPPOに慣れていない場合は、以下の3つのリンクに従ってください。
RLに慣れていない場合は、RLのOpenAIの紹介をお読みください(3つの部分すべて)
PGに慣れていない場合は、ポリシーグラデーションの直感的な説明を読んでください
PPO理論に慣れていない場合は、PPOスタックオーバーフローポストをお読みください
3つすべてに不慣れな場合は、上から下まで上記のリンクを順番に通過します。
このPPOの実装は、継続的な観測とアクション空間を想定していることに注意してくださいが、どちらかを比較的簡単に離散に変更できます。 PPO:https://spinningup.openai.com/en/latest/algorithms/ppo.htmlのためにOpenaiのスピンアップで提供されているPseudocodeをフォローしてください。擬似コードライン番号は、ppo.pyの「アルグステップ#」として指定されています。
これが役立つことを願っています。補強学習への旅を始めたときにこのようなリソースがあったらいいのにと思います。
このチュートリアルのパート4を行ってくれたZhirui Xiaに感謝します。
最初に、Python仮想環境を作成することをお勧めします。
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
ゼロからトレーニングするには:
python main.py
モデルをテストするには:
python main.py --mode test --actor_model ppo_actor.pth
既存の俳優/批評家モデルでトレーニングするには:
python main.py --actor_model ppo_actor.pth --critic_model ppo_critic.pth
注:ハイパーパラメーター、環境などを変更するには、main.pyでそれを行います。コマンドラインの引数としてそれらを持っていませんでした。
Main.pyは実行可能です。引数を使用して引数を解析し、環境とPPOモデルを初期化します。指定するモード(デフォルトでトレーニング)に応じて、モデルをトレーニングまたはテストします。モデルをトレーニングするために、私たちがしなければならないのは、 learn関数を呼び出すことだけです!これは、stable_baselinesを念頭に置いてPPO2をトレーニングする方法で設計されました。
arguments.pyは、メインがコマンドラインから引数を解析するために呼び出すものです。
PPO.PYにはPPOモデルが含まれています。このファイルでは、すべての学習魔法が発生します。私のミディアムシリーズを読んで、それがどのように機能するかを確認してください。私がお勧めするもう1つの方法は、 pdbまたはPythonデバッガーと呼ばれるものを使用し、Main.pyでlearnで電話をかけるときからコードを介して踏み込むことです。
Network.pyには、PPOのアクターと批評家ネットワークを定義するために使用できるサンプルフィードフォワードニューラルネットワークが含まれています。
eval_policy.pyには、ポリシーを評価するコードが含まれています。これは、他のコードとは完全に個別のモジュールです。
Graph_Codeディレクトリには、データを自動的に収集してグラフを生成するコードが含まれています。まともなコンピューターで約10時間かかり、中程度の記事ですべてのデータを生成します。メディア記事のすべてのデータは、興味がある場合はgraph_code/graph_dataにも含まれている必要があります。必要に応じて、データで使用するグラフを再生できます。詳細については、graph_codeのreadmeをお読みください。
開始するための優れたPDBチュートリアルは次のとおりです。https://www.youtube.com/watch?v=vqjcx3p89yk&ab_channel=tutorialEdge
または、デバッガーの専門家である場合、ドキュメントは次のとおりです。https://docs.python.org/3/library/pdb.html
これが試してみることができる環境のリストです。このPPO実装では、観測スペースとアクションスペースの両方にBoxが付いたもののみを使用できることに注意してください。
ハイパーパラメーターはここにあります。
私の中程度の記事を参照してください。
ご質問がある場合、または私に手を差し伸べたい場合は、ここで私を見つけることができます。
電子メール:[email protected]
LinkedIn:https://www.linkedin.com/in/eric-yu-engineer/