推奨に値する 7 つの優れたオープンソース AI ライブラリ

推奨に値する 7 つの優れたオープンソース AI ライブラリ

[[406029]]

[51CTO.com クイック翻訳]人工知能 (AI) 研究の分野では、TensorFlow や PyTorch などの人気のプラットフォームのほかにも、現在、優秀でややニッチなオープンソース ツールやリソースが数多く存在します。この記事では、さまざまな最先端の研究に使用できる 7 つのオープンソース AI ライブラリについて説明します。関与する分野には、量子機械学習 (ML)、暗号化コンピューティングなどが含まれます。オープンソース ライセンスを提供しているため、実際のプロジェクトのニーズに合わせてコンテンツを追加、フォーク、または変更できます。

DiffEqFlux.jl: Julia でのニューラル微分方程式の実装

  • MITライセンス
  • GitHub スター: 481
  • リポジトリアドレス: https://github.com/SciML/DiffEqFlux.jl/

[[406030]]

Julia プログラミング言語は、科学計算用に特別に設計された、比較的新しいプログラミング言語です (現在「9 年」ですが、Python は「30 年」です)。 Julia は、Python のような高レベルの生産性言語と C++ のような高速言語の間のギャップを埋めることを目指しています。さまざまなマシンクラスの操作をハードウェアで実行することに近づきます。 Julia 言語は、ジャストインタイムコンパイルのパラダイムと動的プログラミングを組み合わせることができます。これにより、最初の実行ではコンパイルに長い時間がかかりますが、時間が経つにつれて、さまざまなアルゴリズムが C に近い速度で実行されるようになります。

この言語は科学計算と研究のために設計されましたが、機械学習や人工知能の分野でもよく使用されます。 Julia 言語は、マイクロプログラミングに使用できる Flux.jl (以下で説明) などのパッケージを使用して、高速な反復、推論、トレーニングを可能にするコミュニティとエコシステムを構築しています。

DiffEqFlux.jl は、DifferentialEquations.jl および Flux.jl ツールキットと組み合わせてニューラル微分方程式の構築を容易にするために、Julia 言語を中心に開発されたパッケージです。

もちろん、DiffEqFlux.jl はニューラル微分方程式に加えて、確率微分方程式や一般偏微分方程式もサポートしています。同時に、最先端の生産システムのパフォーマンス要件を満たすために GPU もサポートしています。 DiffEqFlux.jl の詳細については、このリンク (https://julialang.org/blog/2019/01/fluxdiffeq/) を参照してください。

PennyLane: 機械学習と量子コンピューティングの両方のためのライブラリ

  • アパッチ2.0
  • GitHub スター: 817
  • リポジトリアドレス: https://github.com/PennyLaneAI/pennylane

PennyLane は、自動微分化技術を使用したディープラーニングと量子回路シミュレーションで大きな成功を収めています。当初、PennyLane は Autograd ライブラリに基づいて自動微分化機能のほとんどを実装しました。その後、他のバックエンドライブラリも追加されました。現在、PennyLane は PyTorch および TensorFlow バックエンドのほか、さまざまな量子シミュレータやデバイスの使用をサポートしています。一般的なライブラリとして、バックプロパゲーションを介してトレーニングおよび更新できる量子回路とハイブリッド回路を構築する場合に主に使用されます。

PennyLane チームは、一流のコーディングとユニット テスト スタイルを使用しました。オープンソース(Apache 2.0 ライセンス)であるため、GitHub に多数の貢献者がおり、量子機械学習の分野に遅れをとらないようになっています。

Flux.jl: 自動差別化への新しいアプローチ

  • MIT「Expat」ライセンス
  • GitHub スター: 2.9k
  • リポジトリアドレス: https://github.com/FluxML/Flux.jl

Flux.jl は、自動化された微分可能機械学習と一般的な微分可能プログラミングに使用できる強力なソフトウェア ライブラリです。 Julia プログラミング言語をサポートしており、オープンソースの MIT ライセンスの下で利用できます。

通常、PyTorch の fast.ai と TensorFlow の Keras は、より高レベルのアプリケーション ライブラリ インターフェースを使用しますが、Flux.jl は、さまざまな数学的および科学的計算をサポートするコーディングと方程式モデルを使用して機械学習を実装します。

Flux.jl は、前述の DiffEqFlux.jl を含め、Julia 言語を使用する多くの機械学習プロジェクトで使用できます。ただし、Python から Autograd や JAX に最も近いエクスペリエンスを求める初心者にとっては、Zygote.jl (Flux に基づく高レベルの自動微分ライブラリ) が最適な出発点です。

Tensorflowの確率: 正しいということは確実という意味ではない

  • アパッチ2.0
  • GitHub スター: 3.3k
  • リポジトリアドレス: https://github.com/tensorflow/probability

TensorFlow Probability は、不確実性、確率、統計分析について推論するためのツールを提供します。これらの機能は、分布外の入力データが推論出力に与える影響を回避し、モデル予測の信頼性を高めるのに役立ちます。これはまさに従来のディープラーニング モデルでは実現できないことです。

以下では、TensorFlow Probability ドキュメントの例を使用して、不確実性やランダムなプロセスを考慮しなかった場合に起こり得る間違いについて説明します。この例は回帰問題の単純な例です。不確実性の 2 つの大まかなカテゴリ (偶然性と認識論性) を定義し、説明します。

まず、単純な線形回帰モデルを使用してデータを適合させる方法を見てみましょう。ここではいかなる種類の不確実性も使用されません。

当然のことながら、すべての観測値の中央のトレンド ラインに沿った線分が得られます。この線分はデータについて何かを教えてくれますが、それは全体像の一部にすぎません。実際の状況が急速に変化すると、モデル出力と観測値の差が外れ、線分では実際のデータを適切に説明できなくなります。次に、認識論的不確実性を適用した場合にモデルがどのように変化するかを見てみましょう。

実際、認知上の不確実性は多くの場合、経験不足から生じます。つまり、特定のタイプのトレーニング サンプルの数が増えるにつれて、認識上の不確実性は減少します。結局のところ、機械学習モデルでは、まれなサンプルタイプやエッジケースに基づく予測は、危険なほど誤った結果につながる可能性があります。

ここで、偶然性不確実性は、サイコロを振るような出来事や予測の固有のランダム性を表します。これをこの例の回帰問題に適用すると、下の図に示す線分が得られます。

偶然の不確実性は統計誤差の範囲によって表されます。認識論的不確実性はデータが y 軸と交差するピボット ポイントを捉えているように見えますが、偶然性不確実性はゆっくりと変化する誤差範囲を生み出すことがわかります。誤差範囲はデータ分布全体にわたって徐々に拡大し、右側に緩い砂粒として現れます。

では、この回帰の例に、任意不確実性法と認識論的不確実性法の両方を適用したらどうなるでしょうか。不確実性が高い領域に対する予測を使用して、直感的な観察をテストできるようになります。モデルの推定では、ピボット領域とデータ内の根本的なランダム性の両方を捉えることができます。ただし、TensorFlow Probability は、ラジアル基底関数カーネルを備えた変分ガウス過程レイヤーに基づく「機能的不確実性」を示します。

上の図に示すように、このカスタム不確実性モデルは、データ内のこれまで発見されていなかった周期性を捉えます。これに興味がある場合は、2019 TensorFlow Developer Summit での TensorFlow Probability に関する公開プレゼンテーションをご覧ください - https://www.youtube.com/watch?v=BrwKURU-wpk。

TensorFlow Probability は、既知の未知のパラメータ (任意の不確実性) と未知の未知のパラメータ (認識論的) に関する洞察を機械学習モデルに注入するために使用できるツール、および確率的および統計的推論へのアプリケーションを提供します。 AI および ML モデルが日常生活に広く応用されるようになると、このようなソフトウェア ライブラリを使用して、「わからないことを知る」モデルを構築する必要があります。

PySyft: その背後にあるデータを掘り下げる

  • アパッチ2.0
  • GitHub スター: 7k
  • リポジトリアドレス: https://github.com/OpenMined/PySyft

今日、人々は日常生活の中で、健康記録、デートの好み、財務記録などの機密データを生み出しています。多くの場合、このデータには非常に特定の目的のためだけに、非常に特定の人々やアルゴリズムによってのみアクセスされ、意図された目的のためだけに使われることが求められます。たとえば、人々は医師に医療スキャンへのアクセスを許可しているが、地元の薬局(またはさらに悪いことに、ファーストフードの配達アプリ)を広告ソースとして許可していない可能性があります。 AI の安全性について語るとき、多くの場合、そのようなリスクは、企業、政府、その他の機関によるテクノロジー アプリケーションやポリシーにおけるプライバシー保護の欠如に起因すると非難されます。

PySyft は、プライバシーを尊重する機械学習用に構築されたソフトウェア ライブラリです。 PySyft は関連ツールを通じて、ユーザーが機械学習やコンピューティングにおいて「所有しておらず、見ることもできない」データを合理的に処理できるよう支援し、それによってプライバシーを尊重する珍しい機械学習方法を実現します。

AutoKeras: ハイパーパラメータを自動調整するように機械に教える

  • アパッチ2.0
  • GitHub スター: 7.9k
  • リポジトリアドレス: https://github.com/keras-team/autokeras

ディープラーニングが人工知能の重要な手法となったため、ディープニューラルネットワークを組み合わせて、画像のセグメンテーション、分類、好みや行動の予測などの一般的な問題を解決することが容易になりました。 Keras や PyTorch の fast.ai などの高レベルライブラリを使用すると、複数のレイヤーを連結して、意味のあるデータセットに簡単に適合させることができます。 Keras を使用すると、model.fit API を使用するのと同じくらい簡単です。 AutoKeras はシンプルな自動化の追加レイヤーを追加するため、モデルのアーキテクチャを指定する必要もなく実行時にこれを実行します。

現在、ディープ ニューラル ネットワークを構築するためにカスタム CUDA コードやカスタム勾配チェックを使用する必要はなく、TensorFlow 1.x の複雑なグラフィカル セッション プログラミング モデルを使用する必要もありません。データセットに最適なモデルを自動的に実現するには、ハイパーパラメータを慎重に調整するだけで済みます。単純なグリッド検索はハイパーパラメータを設定するための最良の方法ではありませんが (ランダム検索の方が優れている場合が多い)、非常に一般的です。

自動化された機械学習ライブラリである AutoKeras は、Keras の簡単なユーティリティと、自動化されたハイパーパラメータやアーキテクチャのチューニングの利便性を兼ね備えています。これらの中で最も便利なのは AutoKerasAutoModel クラスです。これを使用すると、入力と出力のみを使用して「スーパーモデル」を定義できます。通常の Keras でモデル クラスをトレーニングする方法と同様に、fit() メソッドを呼び出すことで AutoKerasAutoModel をトレーニングできます。ハイパーパラメータを自動的に調整するだけでなく、最適化された内部アーキテクチャも開発します。つまり、AutoKeras のような自動機械学習 (AutoML) ツールは、開発者の貴重な時間を大幅に節約できます。

JAX、新しい高速自動微分ライブラリ

  • アパッチ2.0
  • GitHub スター: 12.3k
  • リポジトリアドレス: https://github.com/google/jax

世界トップクラスの AI 研究機関の 1 つである Google DeepMind は、JAX を機能的な自動微分化ツールとしてワークフローに組み込んだだけでなく、完全な JAX 中心のエコシステムも開発しています。エコシステムには、深層強化学習用の RLax、関数型プログラミング パラダイムとオブジェクト指向プログラミング パラダイムを組み合わせて変換する Haiku、グラフでの深層学習用の Jraph、その他多数の JAX ベースのツールが含まれており、すべてオープン ソースで、Apache 2.0 ライセンスに適合しています。

DeepMind JAX エコシステムは、JAX のジャストインタイム コンパイル、ハードウェア アクセラレーション (最新の GPU のサポートを含む)、および AI 研究のための純粋な JAX パワーを活用することに関心がある人にとって、良い出発点となることは言うまでもありません。

まとめ

多くの場合、AI 研究者は一般的に使用されるいくつかの専門的なツールにのみ焦点を当てることがあります。各プロジェクトを最初から始める必要はほとんどありませんが、どのオープンソース ライブラリがどのタイプのプロジェクトに適しているかを正確に把握する必要があります。上記の説明では、自動化された機械学習から微分可能な量子回路に至るまで、AI 研究のための優れたオープンソース ライブラリを 7 つ挙げました。上記のリストが開発に十分な機能とオプションを提供してくれることを願っています。

原題: 聞いたことのないかもしれないオープンソース AI ライブラリ 7 選、著者: Kevin Vu

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  ベンチャー投資における機械学習の活用方法

>>:  スマートヘルスケアは急速に普及しつつあり、さまざまなスマートテクノロジーが好まれている

推薦する

...

2018 年に人工知能を変える 5 つのビッグデータ トレンド

[[211908]]ビッグデータや人工知能の広範な導入を通じて、これらの新興技術の大きな影響が世界経...

...

信頼できる AI ソリューション プロバイダー 5 社

人工知能は、機械内で知的な行動や人間のように考える能力をシミュレートすることで、ヘルスケア、自動車、...

Github で最も注目されている機械学習イノベーション プロジェクト 7 つ

最新の機械学習開発と最先端のコードを持つプラットフォームはどれでしょうか? そう、GitHub です...

ニューラルネットワークのトレーニングでは、エポック、バッチサイズ、反復の違いがわかりません

[[204925]]きっと、コンピューターの画面を見て頭を悩ませ、「なぜコードでこの 3 つの用語を...

テンセントクラウドがAIペイント製品をリリース、25以上の生成スタイルをサポート

9月10日、テンセントクラウドは9月7日に開催された2023テンセントグローバルデジタルエコシステム...

人工知能は個人情報詐欺の蔓延に対する優れた解決策である

オンライン詐欺は長い間、継続的な問題となっています。今日ではテクノロジーはより洗練されているかもしれ...

ロボット工学が産業界のデジタル革命を推進

近年、自動化プロセスの導入は世界中で加速しています。生産効率の大幅な向上により、低技能労働者の代わり...

人工知能の登場により、将来的にこれらの 6 つの職業は失業する可能性があります。あなたは準備ができていますか?

科学技術の発展とビッグデータの登場により、人工知能は私たちの生活にますます近づいてきました。しかし、...

...

2021年には、神経科学AIにいくつかの大きなトレンドがあります

新年が私たちに手を振っています。素晴らしい革命の伝統を引き継ぎ、最新の AI 専門家の予測レポートを...