清華大学の学生が強化学習プラットフォーム「TianShou」を開発:数千行のコードが完成、オープンソース化

清華大学の学生が強化学習プラットフォーム「TianShou」を開発:数千行のコードが完成、オープンソース化

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

どの世代にも才能ある人材が現れ、オープンソースの波はそれぞれ前のものよりも強力になっています。

つい最近、完全に Pytorch をベースにした簡潔で軽量かつ高速な深層強化学習プラットフォームが Github でオープンソース化されました。

強化学習に興味がある方は、ぜひお立ち寄りください。

なお、著者は清華大学の学部生である翁嘉義氏であり、 「天寿」プラットフォームを独自に開発した人物である。

そうです、名前は「天樹」です。

[[320671]]

なぜ天から与えられるのでしょうか?

主な利点は4つあります。

1. 高速。プラットフォーム全体は、わずか約 1,500 行のコードで実装されています。倒立振り子 (CartPole) を 3 秒でトレーニングするなど、既存のおもちゃのシナリオでは他のすべてのプラットフォームよりも優れたパフォーマンスを発揮します。

2. モジュール化: すべてのポリシーを 4 つのモジュールに分割します。

init : 戦略の初期化。 process_fn : リプレイ バッファからのデータを処理する処理関数。 call : 観測に基づいて操作を計算するlearn : 指定されたデータセットから学習する

これらのインターフェースが完成していれば、強化学習アルゴリズムを 100 行以内に完全に実装できます。

3. Tianshou プラットフォームで現在サポートされているアルゴリズムは次のとおりです。

ポリシー勾配 ( PG )
ディープ Q ネットワーク ( DQN )
nステップリターンのダブルDQN( DDQN
アドバンテージアクタークリティック( A2C
深層決定論的ポリシー勾配 ( DDPG )
近接ポリシー最適化 ( PPO )
ツイン遅延DDPG( TD3
ソフトアクタークリティック( SAC

プロジェクトが進展するにつれて、Tianshou にさらに多くの強化学習アルゴリズムが追加される予定です。

4. 柔軟なインターフェース: ユーザーはさまざまなトレーニング方法をカスタマイズし、少量のコードで実装できます。

天寿の使い方

DQN (Deep-Q-Network) アルゴリズムを例にとり、Tianshou プラットフォーム上の CartPole ゲームを使用してエージェントをトレーニングします。

環境を構成する

OpenAI Gymを使用するのが一般的です。Pythonコードを使用する場合は、Tianshouを呼び出すだけです。

CartPole-v0 は、DQN アルゴリズムを適用できる離散アクション空間を備えたシンプルな環境です。環境を構成するときは、その動作空間が連続的か離散的かに注意して、適切なアルゴリズムを選択する必要があります。

複数の環境レイヤーの設定

既製のジムを使用できます。Env:

また、以下に示すように、Tianshou が提供する 3 つのベクター環境レイヤー (VectorEnv、SubprocVectorEnv、RayVectorEnv) を選択することもできます。

この例では、それぞれ 8 層と 100 層の環境が設定されています。

ネットワークを構築する

Tianshou は、ユーザー定義のネットワークまたはオプティマイザーをサポートしますが、インターフェースの制限があります。

正しい例は次のとおりです。

ポリシーの設定

定義された net と optim (追加のポリシー ハイパーパラメータを使用) を使用してポリシーを定義します。以下では、ターゲット ネットワークを使用して DQN アルゴリズム戦略を定義します。

コレクターの設定

コレクターは、戦略がさまざまな環境と効率的に対話できるようにする Tianshou の重要な概念です。各ステップで、コレクターはポリシーのアクション データを再生バッファーに記録します。

電車

Tianshou は、トレーニング関数 onpolicy_trainer と offpolicy_trainer を提供します。ポリシーが終了条件に達すると、トレーニングは自動的に停止します。 DQN はオフポリシーアルゴリズムなので、offpolicy_trainer を使用します。

トレーナーは次のように TensorBoard ログ記録をサポートします。

パラメータライターをトレーナーに入力すると、トレーニング結果が TensorBoard に記録されます。

ちなみに、DQN のトレーニングには約 4 秒かかりました。

セーブ/ロード戦略

ポリシーは torch.nn.Module から継承されるため、ポリシーの保存/読み込み方法は torch モジュールと同じです。

モデルのパフォーマンスを観察する

コレクターはレンダリング機能をサポートしています。35 FPS でモデルを観察する方法は次のとおりです。

独自のコードで戦略をトレーニングする

提供されているトレーナーを使用しない場合は、カスタム トレーナーを使用する方法を説明します。

はじめる

Tianshou には Python 3 環境が必要です。 CartPole トレーニング DQN モデルを例にとると、トレーニング用の test_dqn.py コードを入力すると、結果は次のようになります。

トレーニングプロセス全体に 7.36 秒かかったことがわかります。これは開発者が指定したトレーニング時間と一致しています。

モデルのトレーニング結果は次のとおりです。

[[320674]]

著者について

天寿の開発者:清華大学の4年生、翁嘉義氏。

福州第一高校卒業、元NOI選手。

大学2年生の時、チームの主力メンバーとして、強化学習の国際大会「Vizdoom」で優勝した。彼は、Tianshou プラットフォームをさらに開発し、強化学習プラットフォームのベンチマークにしたいと考えています。オープンソースでは、より多くのパートナーがこのプロジェクトに参加することも期待されています。

ポータル:

PyPI は Tianshou プラットフォームのダウンロードを提供しており、Github でも最新バージョンの Tianshou やその他の情報を見つけることができます。

パイパイ:

https://pypi.org/project/tianshou/

Github Tianshouホームページ:

https://github.com/thu-ml/tianshou

<<:  機械学習の神話を暴く - 機械学習に関する一般的な神話はどこから来たのか?

>>:  脳コンピューターインターフェースツール:脳波からテキストまで、必要なのは機械翻訳モデルだけ

ブログ    

推薦する

Pythonは画像内のすべての顔を認識し、それを表示する機能を実装しています

Python3 を使用して、写真内のすべての顔を認識して表示します。コードは次のとおりです。 # -...

クンペンが離陸、ソフトコムが道路を建設、ソフトコム・ウィズダムがファーウェイと手を組み、済南を科学技術革新の高原に築く

10月21日、「泉城の知能、万里の昇り」をテーマにした2020年中国人工知能産業サミットと昇りコンピ...

...

Baidu Brainの生体検知+合成画像識別、顔の「写真活性化」ブラックマーケット攻撃を1秒で捉える

現在、顔認識技術の成熟度が増すにつれ、特にDeepFakeやFaceSwapなどの顔編集・生成技術の...

機械学習について昨日、今日、そして明日に語りましょう

機械学習今日、機械学習は、そのアルゴリズムの1つであるディープラーニングの優れたパフォーマンスを誇っ...

...

人工知能は広告に関して私たちを誤解させている。今こそ誤りを正すべき時だ

社会が急速に変化する時代において、ブランドセーフティ戦略は分裂を招き、保護対象であるブランド評判その...

OpenAI DALL-E 3モデルには「不適切なコンテンツ」を生成する脆弱性があり、マイクロソフトの従業員はそれを報告した後に「口止め命令」を受けた。

2月2日、マイクロソフトのソフトウェアエンジニアリング部門のマネージャーであるシェーン・ジョーンズ...

オリンピックチャンピオンでさえ正しく答えられなかった質問が ML モデルのテストに使用されているのですか? GPT-3: できない

機械学習モデルの数学解答能力を測定するために、カリフォルニア大学バークレー校とシカゴ大学の研究者らは...

Spark を使用して行列分解推奨アルゴリズムを学習する

[[182792]]協調フィルタリング推奨アルゴリズムにおける行列分解の応用では、推奨アルゴリズムに...

2021年に自動運転は私たちをどこへ連れて行くのでしょうか?

[[361430]]文/Quiu Yueye 編集/Tan Lu新年、自動運転は私たちをどこへ連れ...

ChatGPT でより良いコードを書く方法

翻訳者 |李睿レビュー | Chonglouコードの生成は、ChatGPT や指示に従うその他の大規...

...

...