清華大学の学生が強化学習プラットフォーム「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

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

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

ブログ    
ブログ    
ブログ    

推薦する

ビジネスにおいて人工知能との共生関係を築くには?

現代では、意図的か否かに関わらず、私たちは皆、人工知能に触れたり、人工知能を使用したりしています。私...

今日のビジネスにおける自然言語処理の 8 つの応用

自然言語処理がどのようにビジネス最適化の実現手段へと進化しているかを学びます。 AI ベースのツール...

AR は人工知能と見なされますか?この記事を読めば分かるだろう

AR/VR は双子の兄弟として語られることが多く、一般的にはアプリケーション層の新しいテクノロジー、...

...

...

顔認識は3月15日に再び命名されました。データのプライバシーとセキュリティをどのように保護するのでしょうか?

昨日の3.15ガラでは、CCTVによって顔認識が初めて公開されました。 3月15日に顔認証が命名され...

畳み込みニューラルネットワークにおけるパラメータ共有/重みの複製

パラメータの共有や重みの複製は、ディープラーニングでは見落とされがちな領域です。しかし、この単純な概...

早く見て! 2022年の建設業界の7つの大きな発展トレンド!

建設業界の市場競争はますます激しくなっています。建設会社は生き残りと発展のために大きなプレッシャーに...

百度が銀川市で初のインテリジェントネットワーク試験ライセンスを獲得し、自動運転車が銀川市の公道でデビューした。

2020年銀川国際スマートシティ博覧会において、銀川市政府は百度に、同市初のインテリジェントコネク...

Facebook の 10,000 ワードの記事: すべての AI モデルが PyTorch フレームワークに移行

PyTorch は 2017 年のリリース以来、GitHub の人気リストで急速にトップに立ち、一時...

失業よりも悪い:人工知能の新たな進歩

劉慈欣には『鏡』という短編小説があり、次のような物語が語られています。気象庁のソフトウェアエンジニア...

...

...

Baiduのビジネスマルチモーダル理解とAIGCの革新的な実践

1. リッチメディアのマルチモーダル理解まず、マルチモーダル コンテンツに対する私たちの認識について...

成功するビジネス インテリジェンス戦略を開発する方法

ビジネス インテリジェンス戦略の策定は、企業が検討する必要がある重要なステップであり、ビジネス イン...