DeepMindがニューラルネットワークと強化学習ライブラリをリリース、ネットユーザー:JAXの開発を促進

DeepMindがニューラルネットワークと強化学習ライブラリをリリース、ネットユーザー:JAXの開発を促進

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

DeepMind は本日、JAX をベースにした 2 つのライブラリ、Haiku と RLax をリリースしました。

JAX は Google によって提案され、TensorFlow 用の簡略化されたライブラリです。これは、線形代数用のコンパイラである XLA と、ネイティブ Python コードと Numpy コードを自動的に区別するライブラリである Autograd を組み合わせて、高性能機械学習の研究に使用します。

今回リリースされた 2 つのライブラリは、それぞれニューラル ネットワークと強化学習を対象としており、JAX の使用を大幅に簡素化します。

Haiku は JAX をベースにしたニューラル ネットワーク ライブラリであり、ユーザーは使い慣れたオブジェクト指向プログラミング モデルを使用し、JAX の純粋な関数変換に完全にアクセスできます。

RLax は、強化学習エージェントを実装するための便利なビルディング ブロックを提供する、JAX 上のライブラリです。

興味深いことに、Reddit ユーザーは Haiku ライブラリの名前が「ax」で終わらないことに驚きました。

もちろん、ネットユーザーの中には、この2つのライブラリを肯定する意見も出ている。

それがJAXを推進したことは間違いありません。

それでは、Haiku と RLex の本当の姿を見てみましょう。

俳句

Haiku は、JAX のニューラル ネットワーク ライブラリであり、ユーザーは使い慣れたオブジェクト指向プログラミング モデルを使用しながら、JAX の純粋に機能的な変換に完全にアクセスできます。

モジュール抽象化 hk.Module と単純な関数変換 hk.transform という 2 つのコア ツールを提供します。

hk.Module は、独自のパラメータ、他のモジュール、およびユーザー入力に関数を適用するためのメソッドへの参照を含む Python オブジェクトです。

hk.transform を使用すると、JAX の純粋に機能的な変換に完全にアクセスできます。

JAX には多くのニューラル ネットワーク ライブラリがありますが、Haiku の特別な点は何でしょうか?ポイントは5つあります。

1. HaikuはDeepMindの研究者によって大規模にテストされている

DeepMind は、Haiku と JAX で多くの実験を比較的簡単に再現しました。これらには、画像および言語処理、生成モデル、強化学習における大規模な結果が含まれます。

2. Haikuはライブラリであり、フレームワークではない

これは、モデル パラメータやその他のモデル状態の管理など、いくつかの特定の事項を簡素化するように設計されています。他のライブラリと組み合わせて記述でき、JAX の他の部分と連携して動作します。

3. Haikuは新しいスタートアップではない

これは、DeepMind のほぼ普遍的に採用されているニューラル ネットワーク ライブラリである Sonnet のプログラミング モデルと API に基づいて構築されています。 JAX 関数変換へのアクセスを維持しながら、状態管理のための Sonnet のモジュールベースのプログラミング モデルを保持します。

4. 俳句への移行は簡単

慎重な設計により、TensorFlow と Sonnet から JAX と Haiku への移行は比較的容易です。新しい関数 (hk.transform など) とは別に、Haiku は Sonnet 2 の API となる予定です。

5. Haiku は JAX を簡素化します

乱数を処理するためのシンプルなモデルを提供します。変換された関数では、hk.next_rng_key() は一意の rng キーを返します。

では、Haiku はどのようにインストールするのでしょうか?

Haiku は純粋な Python で書かれていますが、JAX を介して C++ コードに依存しています。

まず、以下のリンクの手順に従って、関連するアクセラレータ サポートを備えた JAX をインストールします。

https://github.com/google/jax#インストール

その後、インストールを完了するには、簡単な pip コマンドを 1 つだけ実行する必要があります。

  1. $ pip git+https: //github.com/deepmind/haikuをインストールします 

次に、ニューラル ネットワークと損失関数の例を示します。

  1. 俳句をhkとしてインポート
  2.  
  3. jax.numpyをjnpとしてインポートする
  4.  
  5. def softmax_cross_entropy(ロジット、ラベル):
  6.  
  7. one_hot = hk.one_hot(ラベル、logits.shape[- 1 ])
  8.  
  9. -jnp.sum(jax.nn.log_softmax(logits) * one_hot、axis=- 1 )を返します
  10.  
  11. def loss_fn(画像、ラベル):
  12.  
  13. モデル = hk.Sequential([
  14.  
  15. hk.Linear( 1000 )、
  16.  
  17. jax.nn.relu、
  18.  
  19. hk.Linear( 100 )、
  20.  
  21. jax.nn.relu、
  22.  
  23. hk.Linear( 10 )、
  24.  
  25. ])
  26.  
  27. logits = モデル(画像)
  28.  
  29. jnp.mean(softmax_cross_entropy(logits, labels))を返します
  30.  
  31. loss_obj = hk.transform(loss_fn)

RLax

RLax は、強化学習エージェントを実装するための便利なビルディング ブロックを提供する、JAX 上のライブラリです。

提供される操作と関数は完全なアルゴリズムではなく、強化学習のための特定の数学的操作の実装です。

RLax のインストールも非常に簡単で、pip コマンドで実行できます。

  1. pip で git+git をインストールします: //github.com/deepmind/rlax.git  

JAX jax.jit 関数を使用すると、すべての RLax コードを異なるハードウェア上でコンパイルできます。

RLax に関して注意する必要があるのは、その命名規則です。

多くの関数は、出力を計算するために、連続する時間ステップにわたるポリシー、アクション、報酬、および値を考慮します。この場合、接尾辞 _t と tm1 は通常、各入力がどのステップで生成されたかを示すために使用されます。次に例を示します。

q_tm1: 遷移のソース状態における操作の値。

a_tm1: ソース状態で選択された操作。

r_t: 目標状態で収集された結果の報酬。

q_t: ターゲット状態における操作値。

Haiku と RLax は両方とも GitHub でオープンソース化されています。興味のある読者は「ポータル」のリンクからアクセスできます。

ポータル

俳句:

https://github.com/deepmind/haiku

RLax:

https://github.com/deepmind/rlax

<<:  予想外だが妥当: ガートナーの 2020 年データ サイエンスおよび機械学習プラットフォームのマジック クアドラントの解釈

>>:  Googleは社内でAIを使ったコンピュータチップの開発を試みていることを明らかに

ブログ    
ブログ    

推薦する

顔の照明を自由に編集:ジェネレーティブモデルに基づく3Dリライティングシステムがリリース

実際の人間の顔の 3 次元モデリング、合成、再照明は、コンピュータ グラフィックスの分野で高い応用価...

新しい近似注意メカニズム HyperAttention: 長いコンテキストに適しており、LLM 推論が 50% 高速化します

トランスフォーマーは、自然言語処理、コンピューター ビジョン、時系列予測などの分野におけるさまざまな...

自律型ドローン技術の長所と短所を探る

自律型ドローン技術は、業界全体に変革をもたらす力として登場し、比類のない効率性と革新性を約束していま...

AlphaGo の最初のバグ: 囲碁アルゴリズムの最大の弱点は何でしょうか?

[[163852]]どれほど恐ろしいモンスターにも弱点はあります。なぜAlphaGoは皆を驚かせる...

アマゾンは40億ドルを投資し、グーグルや他の企業もさらに20億ドルを投資する予定で、アントロピックの評価額は急上昇中

テクノロジーニュースサイト「The Information」によると、人工知能の新興企業Anthro...

グラフニューラルネットワークは CV の未来でしょうか?中国科学院ソフトウェア研究所は、ViTを上回る新しいCVモデルViGをリリースした。

コンピュータービジョンのネットワーク構造は新たな革命を迎えようとしているのでしょうか?畳み込みニュー...

人工知能に関するよくある誤解

ビッグデータ、自動化、ニューラルネットワークが日常語となっている世界では、人工知能とその背後にあるプ...

「チューリップ」は、感染症予防・抑制期間中に政府情報へのアクセスを容易にするためのインテリジェントな質疑応答アシスタントを作成します。

突然の感染拡大に直面し、国民は情報の適時性、透明性、伝達効率にさらに注目するようになった。このような...

...

認識を覆せ!ソフトロボットは確実に変化をもたらす

最近、米国プリンストン大学の研究者らがソフトロボットを製造する新しい方法を開発しました。このロボット...

モノのインターネットにおける人工知能と機械学習の役割は何ですか?

人工知能 (AI) と機械学習 (ML) をモノのインターネット (IoT) システムに統合すること...

人工知能のコスト問題をどう解決するか?顔認識によって情報セキュリティはどのように確保されるのでしょうか?

[[422539]] 9月7日午後、第19回「海南省科学技術会議」に新たに追加されたホットトピック...

スマート製造とAIが環境にどのように役立つか

製造業からの温室効果ガス排出を削減する方法は複数あります。 製造業におけるデジタルデータの使用による...

AGI(汎用人工知能)は数年のうちに実現されるでしょうか? 3つのテクノロジー大手が判決を下す

2011年、Google DeepMindの共同創設者であるシェーン・レッグは、2028年までにAI...