GitHub で最も人気のあるオープンソース機械学習プロジェクト 28 件: TensorFlow がトップ

GitHub で最も人気のあるオープンソース機械学習プロジェクト 28 件: TensorFlow がトップ

機械学習は現在、業界で徐々にホットな話題になりつつあります。20年以上の開発を経て、機械学習は現在、データマイニング、コンピュータービジョン、自然言語処理、生体認証、検索エンジン、医療診断、DNA配列解析、音声および手書き認識、戦略ゲーム、ロボット工学など、幅広く使用されています。

[[188957]]

1. テンソルフロー


TensorFlow は、Google がリリースした第 2 世代の機械学習システムです。 Google によると、いくつかのベンチマーク テストでは、TensorFlow は第 1 世代の DistBelief の 2 倍の速度を実現しています。

具体的には、TensorFlow は数値計算にデータフローグラフを使用するオープンソース ソフトウェア ライブラリです。グラフ内のノードは数学演算を表し、グラフ内のエッジはノード間を流れる多次元配列、つまりテンソルを表します。この柔軟なアーキテクチャにより、ユーザーはコードを書き直すことなく、デスクトップ、サーバー、モバイル デバイス上の 1 つ以上の CPU にさまざまな方法でコンピューティングを展開できます。同時に、勾配ベースの機械学習アルゴリズムは TensorFlow の自動微分化を利用できます。さらに、柔軟な Python インターフェースにより、TensorFlow でアイデアを表現しやすくなります。

TensorFlow はもともと、機械学習とディープ ニューラル ネットワークの研究を目的として、Google Brain チーム (Google の Machine Intelligence 研究組織の一部) の研究者とエンジニアによって開発されました。しかし、このシステムは汎用性が高く、他のさまざまなコンピューティング分野でも使用できます。

現在、Googleは、Googleアプリの音声認識、Gmailの自動返信機能、Googleフォトの画像検索など、AI技術を幅広く活用しており、これらはすべてTensorFlowを使用しています。

  • 開発言語: C++
  • ライセンス: Apache License 2.0
  • GitHub プロジェクト アドレス: https://github.com/tensorflow/tensorflow

2. サイキットラーン

Scikit-Learn は、SciPy 上に構築された機械学習用の Python モジュールです。このプロジェクトは、2007 年に David Cournapeau 氏によって Google Summer of Code として設立され、それ以来、多数のボランティアによって貢献されてきました。

主な特徴:

  • 簡単な操作と効率的なデータマイニングとデータ分析
  • 無制限のアクセス、あらゆる状況で再利用可能
  • NumPy、SciPy、matplotlib 上に構築

Scikit-Learn の基本機能は、主に分類、回帰、クラスタリング、データ次元削減、モデル選択、データ前処理の 6 つの部分に分かれています。詳細については、公式サイトのドキュメントを参照してください。 Scikit-Learn は、Python 2.6、Python 2.7、Python 3.5 で実行できるようにテストされています。それに加えて、Python 3.3 および Python 3.4 でも動作するはずです。

注: Scikit-Learn は以前は Scikits.Learn と呼ばれていました。

  • 開発言語: Python
  • ライセンス: 3条項BSDライセンス
  • GitHub プロジェクト アドレス: https://github.com/scikit-learn/scikit-learn

3. カフェ

Caffe は、ニューラル ネットワークの表現力、速度、モジュール性を重視したディープラーニング フレームワークです。その後、Berkeley Vision and Learning Center (BVLC) とコミュニティ参加者の貢献により、Berkeley が主導し、その後 Github と Caffe ユーザーの電子メールで構成される、比較的緩やかで自由なコミュニティに発展しました。

Caffe は、開発者が自由にネットワークを編成できる C++/CUDA ベースのフレームワークです。現在、畳み込みニューラル ネットワークと完全接続ニューラル ネットワーク (人工ニューラル ネットワーク) をサポートしています。 Linux では、C++ はコマンドラインからインターフェースを操作できます。また、MATLAB と Python 用の特別なインターフェースもあり、計算に関して CPU と GPU を直接かつシームレスに切り替えることができます。

Caffeの特徴:

  • 使いやすさ: Caffe のモデルと対応する最適化は、コードではなくテキスト形式で提供されます。Caffe は、モデル定義、最適化設定、事前トレーニング済みの重みを提供し、すばやく簡単に使用できます。
  • 高速: 最高のモデルと大量のデータを実行できます。
  • Caffe は cuDNN と組み合わせて使用​​して AlexNet モデルをテストすることができ、K40 で画像を処理するのにかかる時間はわずか 1.17 ミリ秒です。
  • モジュール性: 新しいタスクや設定に簡単に拡張できます。
  • ユーザーは、Caffe が提供するさまざまなレイヤー タイプを使用して独自のモデルを定義できます。

現在、Caffe の応用実践には、主にデータの整理、ネットワーク構造の設計、トレーニング結果、既存のトレーニング モデルに基づく Caffe を使用した直接認識が含まれます。

  • 開発言語: C++
  • ライセンス: BSD 2条項ライセンス
  • GitHub プロジェクト アドレス: https://github.com/BVLC/caffe

4. 予測IO

PredictionIO は、開発者とデータ サイエンティスト向けのオープン ソースの機械学習サーバーです。 REST API を介したイベント収集、アルゴリズムのスケジュール設定、評価、予測結果のクエリをサポートします。ユーザーは PredictionIO を使用して、パーソナライズされた推奨事項、コンテンツの検出などの予測を行うことができます。 PredictionIO は、開発者が独自のデータに対して直接実行できる 20 個のプリセット アルゴリズムを提供します。ほぼすべてのアプリケーションは、PredictionIO と統合することでよりスマートになります。主な特徴は次のとおりです。

  • 既存のデータに基づいてユーザーの行動を予測できます。
  • ユーザーは独自の機械学習アルゴリズムを選択できます。
  • スケーラビリティについて心配する必要はありません。優れたスケーラビリティを備えています。

PredictionIOはREST API(アプリケーションプログラミングインターフェース)標準に基づいていますが、Ruby、Python、Scala、Javaなどのプログラミング言語用のSDK(ソフトウェア開発キット)も含まれています。開発言語はScala、データベースはMongoDB、コンピューティングシステムはHadoopシステムアーキテクチャを採用しています。

  • 開発言語: Scala
  • ライセンス: Apache License 2.0
  • GitHub プロジェクト アドレス: https://github.com/PredictionIO/PredictionIO

5. 脳

Brain は JavaScript のニューラル ネットワーク ライブラリです。次の例は、Brain を使用して XOR 関数を近似する方法を示しています。

  1. var net = new brain.NeuralNetwork();
  2.  
  3. net.train([{入力: [0, 0],出力: [0]},
  4. {入力: [0, 1],出力: [1]},
  5. {入力: [1, 0],出力: [1]},
  6. {入力: [1, 1]、出力: [0]}]);
  7.  
  8. var出力= net.run([1, 0]); // [0.987]

brain を node で使用する場合は、npm を使用してインストールできます。

  1. npm インストール 脳

ブラウザで brain を使用する場合は、最新の brain.js ファイルをダウンロードしてください。トレーニングには計算コストがかかるため、ネットワークをオフライン (またはワーカー上) でトレーニングし、toFunction() または toJSON() オプションを使用して、事前トレーニング済みのネットワークを Web サイトに挿入する必要があります。

  • 開発言語: JavaScript
  • GitHub プロジェクト アドレス: https://github.com/harthur/brain

6. ケラス

Keras は、TensorFlow または Theano で実行できる、非常に合理化された高度にモジュール化されたニューラル ネットワーク ライブラリです。GPU と CPU のコンピューティングをサポートする高度にモジュール化されたニューラル ネットワーク ライブラリです。 Keras は Torch7 の Python 版とも言えます。CNN モデルを素早く構築するのに非常に便利です。また、Batch Noramlize など、最新の文献からのアルゴリズムもいくつか含まれています。ドキュメントとチュートリアルも非常に充実しています。公式サイトでは、作者が直接わかりやすい例を示しています。 Keras は、トレーニング済みのパラメータを保存し、トレーニング済みのパラメータを読み込んでトレーニングを続行することもサポートしています。

Keras は、迅速な実験の開発と、アイデアから結果への移行を可能な限り遅延なく実現することに重点を置いています。これは、優れた研究を行うための鍵となります。

以下の要件を満たすディープラーニング ライブラリが必要な場合は、Keras の使用を検討してください。

  • 全体的なモジュール性、シンプルさ、拡張性により、簡単かつ迅速なプロトタイピングが可能になります。
  • 畳み込みネットワークと再帰ネットワークの両方、およびこれら 2 つの組み合わせをサポートします。
  • 任意の接続スキーム(MIMO トレーニングを含む)をサポートします。
  • CPU と GPU の両方でシームレスに実行されます。

Keras は現在 Python 2.7 ~ 3.5 をサポートしています。

  • 開発言語: Python
  • GitHub プロジェクト アドレス: https://github.com/fchollet/keras

7. CNTK

CNTK (Computational Network Toolkit) は、有向グラフを介した一連の計算ステップとしてニューラル ネットワークを記述する統合ディープラーニング ツールキットです。有向グラフでは、リーフ ノードは入力値またはネットワーク パラメータを表し、他のノードはそのノードの入力に対する行列演算を表します。

CNTK を使用すると、フィードフォワード ニューラル ネットワーク (DNN)、畳み込みニューラル ネットワーク (CNN)、再帰型ニューラル ネットワーク (RNN/LSTM) などの一般的なモデルを簡単に実装および組み合わせることができます。同時に、複数の GPU とサーバー間で自動的に差別化および並列化される確率的勾配降下法 (SGD、エラー バック プロパゲーション) 学習を実装します。

下の図は、CNTK の処理速度 (1 秒あたりに処理されるフレーム数) を他の 4 つのよく知られたツールキットと比較したものです。この構成では、4 層の完全接続ニューラル ネットワーク (ベンチマーク スクリプトを参照) と、効率的なミニ バッチ サイズ 8192 を使用します。同じハードウェアと最新の公開ソフトウェア バージョン (2015.12.3 より前のバージョン) に基づいて、次の結果が得られました。

CNTK は 2015 年 4 月からオープンソースになっています。

  • 開発言語: C++
  • GitHub プロジェクト アドレス: https://github.com/Microsoft/CNTK

8. コンブネット

ConvNetJS は、Javascript で実装されたニューラル ネットワークであり、非常に優れたブラウザベースのデモも備えています。その最も重要な用途は、ディープラーニングの初心者がアルゴリズムをより速く、より直感的に理解できるようにすることです。

現在サポートしているのは以下です:

  • 一般的なニューラル ネットワーク モジュール (完全接続層、非線形性)。
  • 分類(SVM/SOFTMAX)および回帰(L2)のコスト関数。
  • 画像処理用の畳み込みネットワークを指定してトレーニングします。
  • Deep Q Learning に基づく実験的な強化学習モデル。

オンライン上の例をいくつか挙げます。

  • MNIST 数字の畳み込みニューラル ネットワーク
  • CIFAR-10 の畳み込みニューラル ネットワーク
  • おもちゃの2Dデータ
  • おもちゃの1D回帰
  • MNIST 数字でのオートエンコーダのトレーニング
  • Deep Q Learning 強化学習デモ + 画像回帰 (「ペインティング」) + MNIST での SGD/Adagrad/Adadelta の比較

他の:

  • 開発言語: Javascript
  • ライセンス: MITライセンス
  • GitHub プロジェクト アドレス: https://github.com/karpathy/convnetjs

9. パターン

Pattern は Python 用の Web マイニング モジュールです。以下のツールがあります:

  • データマイニング: Web サービス (Google、Twitter、Wikipedia)、Web クローラー、HTML DOM 解析。
  • 自然言語処理: 品詞タグ付け、n-gram 検索、感情分析、WordNet。
  • 機械学習:ベクトル空間モデル、クラスタリング、分類(KNN、SVM、パーセプトロン)
  • ネットワーク分析: グラフの中心性と視覚化。

十分に文書化されており、現在 50 を超える例と 350 を超えるユニット テストがあります。 Pattern は現在 Python 2.5+ のみをサポートしています (Python 3 はまだサポートされていません)。このモジュールには、Pattern.vector モジュールで LSA を使用する以外に外部要件はありません。そのため、NumPy のみをインストールする必要があります (Mac OS X ではデフォルトでのみインストールされます)。

  • 開発言語: Python
  • ライセンス: BSDライセンス
  • GitHub プロジェクト アドレス: https://github.com/clips/pattern

10. ニューピック

NuPIC は、HTM 学習アルゴリズムを実装する機械知能プラットフォームです。 HTM は、大脳新皮質に関する詳細な人工知能アルゴリズムです。 HTM の中核は、時間と空間の両方のパターンを保存および呼び出すことができる時間ベースの継続的な学習アルゴリズムです。 NuPIC は、特にストリーミング データ ソースの異常検出や予測など、さまざまな問題の解決に適用できます。

NuPIC バイナリ ファイルは現在、次の目的で利用可能です:

  • Linux x86 64ビット
  • OS X 10.9
  • OS X 10.10
  • Windows 64ビット

NuPIC は独自の特徴を持っています。多くの機械学習アルゴリズムは新しいパターンに適応できませんが、NuPIC は人間の脳と同様に動作します。パターンが変化すると、古いパターンを忘れて新しいパターンを記憶します。

  • 開発言語: Python
  • GitHub プロジェクト アドレス: https://github.com/numenta/nupic

11. テアノ

  • Theano は、GPU と効率的な記号微分演算をサポートし、多次元配列を含む数式を効率的に定義、最適化、評価できる Python ライブラリです。 Theano には次の機能があります。
  • NumPy と密接に関連 - Numpy.ndarray は Theano のコンパイルされた関数で使用されます。
  • GPU の透過的な使用 - データ集約型の計算を CPU よりも 140 倍以上高速に実行します (Float32 の場合)。
  • 効率的な記号微分 - Theano は関数の導関数を 1 つ以上の異なる入力に分離します。
  • 速度と安定性の最適化 - 入力xが非常に小さい場合でも、log(1+x)の正しい結果が得られます。
  • C コードを動的に生成 - 式の評価が高速化されます。
  • 広範なユニット テストと自己検証 - さまざまな種類のエラーの検出と判定。

Theano は 2007 年から大規模で集中的な科学計算研究に使用されていますが、教室でも広く使用されています (モントリオール大学のディープラーニング/機械学習コースなど)。

  • 開発言語: Python
  • GitHub プロジェクト アドレス: https://github.com/Theano/Theano

12. MXネット

MXNet は、効率性と柔軟性を兼ね備えたディープラーニング フレームワークです。これにより、ユーザーはシンボリック プログラミングと命令型プログラミングを組み合わせて、効率と生産性を最大化できます。その中核となるのは、シンボリック操作と命令型操作をオンザフライで自動的に並列化する動的依存関係スケジューラです。そこに導入されたグラフ最適化レイヤーにより、シンボリック操作の高速化とメモリの効率的な利用が可能になります。このライブラリは軽量で移植性が高く、複数の GPU と複数のホストに拡張可能です。

主な特徴:

  • その設計の説明は、他の DL プロジェクトに再適用できる有用な洞察を提供します。
  • 任意の計算グラフの柔軟な構成。
  • さまざまなプログラミング方法の利点を統合して柔軟性と効率性を最大限に高めます。
  • 軽量でメモリ効率が良く、スマートデバイスに持ち運び可能。
  • マルチ GPU スケーリングと分散のための自動並列化セットアップ。
  • Python、R、C++、Julia をサポートします。
  • 「クラウド コンピューティング」に適しており、S3、HDFS、Azure と直接互換性があります。

MXNet は単なるディープラーニング プロジェクトではなく、ディープラーニング システムを構築するための青写真、ガイドライン、そしてディープラーニング システムに対するハッカー独自の洞察を組み合わせたものです。

  • 開発言語: Jupyter Notebook
  • オープンソースライセンス: Apache-2.0 ライセンス
  • GitHub プロジェクト アドレス: https://github.com/dmlc/mxnet

13. ボウパル・ワビット

Vowpal Wabbit は、オンライン、ハッシュ、Allreduce、Learning2search などの最先端の機械学習技術の開発を促進する機械学習システムです。 トレーニング速度は非常に高速です。それぞれ約 100 個の非ゼロ特徴を持つ 20 億のトレーニング サンプルの場合、特徴の総数が 10,000 のときはトレーニング時間は 20 分、特徴の総数が 1,000 万のときは 2 時間です。 Vowpal Wabbit は、分類、回帰、行列分解、LDA をサポートしています。

Vowpal Wabbit を Hadoop 上で実行すると、次の最適化が利用できます。

  • 遅延初期化: All Reduce を実行する前に、すべてのデータをメモリにロードしてキャッシュできます。ノードでエラーが発生した場合でも、エラーノードのデータを別のノード(キャッシュ経由で取得)で使用してトレーニングを継続できます。
  • 投機的実行: 大規模クラスターでは、1 つまたは 2 つの遅い Mapper がジョブ全体のパフォーマンスに影響します。投機的実行の考え方は、ほとんどのノードのタスクが完了すると、Hadoop は残りのノード上のタスクを他のノードにコピーして完了させることができるというものです。

他の:

  • 開発言語: C++
  • GitHub プロジェクト アドレス: https://github.com/JohnLangford/vowpal_wabbit

14. ルビーの戦士

ゲームを設計することで、Ruby 言語と人工知能の学習をより楽しくインタラクティブなものにします。

ユーザーは、貴重なルビーを手に入れるために高い塔を登り最上階に到達する戦士の役割を演じます。各レベルでは、戦闘員が敵を倒し、囚人を救出し、階段に到達するように導く Ruby スクリプトを記述する必要があります。ユーザーは各レイヤーについてある程度理解していますが、各レイヤーで何が起こるかは正確にはわかりません。戦闘機に十分な AI を与えて、戦闘機が自らどのように対応するか判断できるようにする必要があります。

Warriorsアクション関連API:

  • Warrior.walk: 戦士の動きを制御するために使用され、デフォルトの方向は前方です。
  • warrior.feel: 戦士を使って、前方が空き地なのかモンスターなのかといった状況を感知します。
  • Warrior.attack: 戦士にモンスターを攻撃させます。
  • Warrior.health: 戦士の現在の体力を取得します。
  • Warrior.rest: 戦士を 1 ラウンド休ませ、最大体力の 10% を回復します。

戦士の知覚API:

  • Space.empty: 前にスペースがあるかどうかを検出します。
  • Space.stairs: 前方に階段があるかどうかを感知します。
  • Space.enemy: 前方にモンスターがいるかどうかを感知します。
  • Space.captive: 前方に捕虜がいるかどうかを感知します。
  • Space.wall: 前方に壁があるかどうかを感知します。

他の:

  • 開発言語: Ruby
  • GitHub プロジェクト アドレス: https://github.com/ryanb/ruby-warrior

15. XGBoost

XGBoot は、効率性、柔軟性、移植性を考慮して設計された、最適化された分散勾配ブースティング ライブラリです。 Gradient Boosting フレームワークの下で機械学習アルゴリズムを実装します。

XGBoost は、Parallel Tree Boosting (GBDT、GBM とも呼ばれます) を提供することで、多くのデータ サイエンスの問題を高速かつ正確に解決します。同じコードを Hadoop、SGE、MP などの大規模な分散環境で実行できます。これは勾配上昇フレームワークに似ていますが、より効率的です。線形モデル ソルバーとツリー学習アルゴリズムを組み合わせたものです。

XGBoot は、既存の勾配上昇法の実装よりも少なくとも 10 倍優れたパフォーマンスを発揮し、回帰、分類、ランキングなどのさまざまな目的関数も提供します。 XGBoot は強力な予測性能を備えているため、多くのコンペティションにとって理想的な選択肢であり、クロス検証や主要変数の検出のための追加機能も備えています。

XGBoost は数値ベクトルでのみ機能するため、他のすべての形式のデータは使用時に数値ベクトルに変換する必要があることに注意してください。また、モデルを最適化するときに、このアルゴリズムには調整する必要があるパラメーターも多数あります。

  • 開発言語: C++
  • オープンソースライセンス: Apache-2.0 ライセンス
  • GitHub プロジェクト アドレス: https://github.com/dmlc/xgboost

16. ゴーラーン

GoLearn は、シンプルさとカスタマイズ性を開発目標とした、Go 言語の「フル機能」の機械学習ライブラリです。

GoLearn をインストールすると、データがインスタンスとして読み込まれ、それに対して行列を操作し、操作の値を推定器に渡すことができます。 GoLearn は Fit/Predict 用の Scikit-Learn インターフェースを実装しているため、ユーザーは試行錯誤を通じて簡単に推定値を調整できます。さらに、GoLearn には、クロス検証、トレーニング、バースト テストなど、データを操作するための補助機能も含まれています。

  • 開発言語: Go
  • GitHub プロジェクト アドレス: https://github.com/sjwhitworth/golearn

17. ハッカーのためのML

ML_for_Hackers は、ハッカー向けの機械学習のコード例のリポジトリです (2012)。公開後に追加のコメントや変更が加えられている可能性があるため、コードは論文に記載されているとおりに表示されない場合があります。

すべてのコードは R で記述されており、多数の R パッケージに依存し、分類、ランキング、回帰のすべての一般的なタスク、および主成分分析 (PCA) や多次元尺度法などの統計手法を含むトピックをカバーしています。

  • 開発言語: R
  • オープンソースライセンス: 簡易BSDライセンス
  • GitHub プロジェクト アドレス: https://github.com/johnmyleswhite/ML_for_Hackers

18. H2O-2

H2O は Hadoop で数学を実行します。ビッグデータを通じて統計、機械学習、数学を測定できます。 H2O は拡張可能であり、ユーザーはコア領域で単純な数学モデルを使用してモジュールを構築できます。 H2O は、R、Excel、JSON に似た使い慣れたインターフェースを維持しており、ビッグ データ愛好家や専門家が、単純なものから高度なものまでさまざまなアルゴリズムを使用してデータ セットを探索、変換、モデル化、スコアリングできます。データの収集は簡単ですが、意思決定は困難です。H2O は、より高速で最適化された予測モデルを通じて、データからより迅速かつ容易に洞察を得ることを可能にします。

0xdata H2O のアルゴリズムは、ビジネス プロセス (詐欺やトレンド予測) に重点を置いています。 Hadoop の専門家は Java を使用して H2O と対話できますが、フレームワークは Python、R、Scala のバインディングも提供します。

  • 開発言語: Java
  • GitHub プロジェクト アドレス: https://github.com/h2oai/h2o-2

19. ネオン

Neon は Nervana の Python ベースのディープラーニング フレームワークであり、AlexNet、VGG、GoogLeNet などの多くの一般的なディープ ニューラル ネットワークで高いパフォーマンスを実現できます。ネオンを設計する際、開発者は次の機能を考慮しました。

  • Convnet、MLP、RNN、LSTM、オートエンコーダーなどの一般的に使用されるモデルとインスタンスをサポートします。モデルライブラリには、事前トレーニング済みの実装が多数用意されています。
  • Maxwell GPU の fp16 および fp32 (ベンチマーク) 用の Nervana GPU カーネルとの緊密な統合。
  • Titan X 上の AlexNet で 3 秒/マクロバッチ (3072 枚の画像) (1 GPU でのフル実行 ~ 32 時間)。
  • 高速な画像キャプション モデル (CPU ベースの NeuralTalk より 200 倍高速)。
  • 基本的な自動微分化をサポートします。
  • フレームワークの視覚化。
  • スワップ可能なディスク バックエンド: コードを 1 回記述して、CPU、GPU、または Nervana ディスクにデプロイします。

Nervana では、ネオンを使用して、複数のドメインにわたって顧客が抱えるさまざまな問題を解決します。

  • 開発言語: Python
  • オープンソースライセンス: Apache-2.0 ライセンス
  • GitHub プロジェクト アドレス: https://github.com/NervanaSystems/neon

20. オリックス2

オープンソース プロジェクト Oryx は、大規模な機械学習と予測分析のためのシンプルでリアルタイムなインフラストラクチャを提供します。商用アプリケーションで一般的に使用されるいくつかのアルゴリズム クラス (協調フィルタリング/推奨、分類/回帰、クラスタリングなど) を実装します。さらに、Oryx は Apache Hadoop を使用して大規模なデータ ストリーム上にモデルを構築し、HTTP REST API を通じてこれらのモデルに対してリアルタイム クエリを提供するとともに、新しいデータが流入し続けるのに合わせてモデルを自動的に更新することもできます。コンピューティング層とサービス層を含むこのデュアル設計では、それぞれ Lambda アーキテクチャを実装できます。モデルは PMML 形式で交換されます。

Oryx は基本的に、モデリングとモデルの提供という 2 つのことだけを実行します。これらは、コンピューティング層とサービス層の 2 つの独立した部分の役割です。コンピューティング層は、入力データから機械学習モデルを構築できるオフラインのバッチ プロセスです。その運用上の利点は「生成」にあります。つまり、特定の時点での入力値のスナップショットを使用してモデル化できます。その結果、継続的な入力が蓄積されるにつれて、時間の経過とともに一連の出力が生成されます。サービス層も、REST API を公開する Java ベースの長時間実行サーバー プロセスです。ユーザーはブラウザから、または HTTP リクエストを送信できる任意の言語やツールを使用してアクセスできます。

Oryx は、機械学習アルゴリズムのライブラリとして位置付けられていません。Owen は、回帰、分類、クラスタリング、協調フィルタリング (つまり、推奨) の 4 つの領域に重点を置いています。推奨システムは非常に人気があり、Owen は複数の Cloudera 顧客と協力して、Oryx を使用して推奨システムを導入する支援を行っています。

  • 開発言語: Java
  • GitHub プロジェクト アドレス: https://github.com/cloudera/oryx

21. 将軍

Shogun は、Soeren Sonnenburg と Gunnar Raetsch によって作成された機械学習ツールボックスです。大規模なカーネル学習方法、特にサポートベクターマシン (SVM) の学習ツールボックスに重点を置いています。最も高度な LIBSVM と SVMlight を含むいくつかの異なる SVM 実装の SVM オブジェクトへの一般的なインターフェイスを提供し、それぞれをさまざまなカーネルと組み合わせることができます。このツールボックスは、一般的に使用されるカーネルプログラム (線形、多項式、ガウス、S 型カーネル関数など) の効率的な実装を提供するだけでなく、局所性の改善、Fischer、TOP、Spectrum、加重次数カーネルとシフトなどの最新の文字列カーネル関数も備えており、後に効果的な LINADD 最適化カーネル関数も実装されました。

さらに、Shogun では、カスタムの事前計算済みカーネルを自由に操作できます。重要な機能の 1 つは、複数のサブカーネルの重み付き線形結合によって結合カーネルを構築できることです。各サブカーネルは同じドメインで動作する必要はありません。マルチカーネル学習を使用することで、最適なサブカーネルの重みを知ることができます。

現在、Shogun は SVM 2 クラス分類および回帰問題を解決できます。さらに、Shogun には、線形判別分析 (LDA)、線形計画法 (LPM)、(カーネル) 知覚、隠れマルコフ モデルのトレーニング用のアルゴリズムなど、多数の線形手法も追加されています。

  • 開発言語: C/C++、Python
  • ライセンス: GPLv3
  • GitHub プロジェクト アドレス: https://github.com/shogun-toolbox/shogun

22. 学ぶ

HLearn は Haskell で書かれた高性能な機械学習ライブラリです。現在、任意の次元空間に対する最速の最近傍実装アルゴリズムを備えています。

HLearn も研究プロジェクトです。このプロジェクトの研究目標は、機械学習のための「可能な限り最良の」インターフェースを発見することです。これには、2 つの相反する要件が伴います。ライブラリは、C/C++/Fortran/アセンブリで開発された低レベル ライブラリと同じ速度で実行される必要がありますが、同時に、Python/R/Matlab で開発された高レベル ライブラリと同じ柔軟性と汎用性も備えている必要があります。 Julia はこの方向で驚くべき進歩を遂げましたが、HLearn はさらに野心的です。さらに注目すべきは、HLearn が低レベル言語よりも高速で、高レベル言語よりも柔軟性があることを目指していることです。

この目標を達成するために、HLearn は標準の学習ライブラリとはまったく異なるインターフェースを採用しています。 HLearn では、H は 3 つの異なる概念を表します。これらは HLearn 設計の基本要件でもあります。

  • HはHaskellの略です。機械学習はデータから関数を予測することなので、関数型プログラミング言語を機械学習に適応させることができるのは当然のことです。しかし、関数型プログラミング言語は、学習アルゴリズムをサポートするための高速な数値計算能力が本質的に欠けているため、機械学習では広く使用されていません。 HLearn は、Haskell の SubHask ライブラリを採用することで高速な数値計算機能を実現します。
  • H は Homomorphisms (準同型) の略でもあります。準同型性は抽象代数の基本概念であり、HLearn は学習システムでこの代数構造を使用します。
  • H は History モナドの略でもあります。新しい学習アルゴリズムを開発する上で最も難しいタスクの 1 つは、最適化プロセスをデバッグすることです。これまではデバッグプロセスを容易にする方法はありませんでしたが、History モナドはこの問題を解決するための試みです。元のコードを変更することなく、スレッド全体でコードを最適化できます。さらに、この手法を使用すると、追加の実行時オーバーヘッドは発生しません。

他の:

  • 開発言語: Haskell
  • GitHub プロジェクト アドレス: https://github.com/mikeizbicki/HLearn

23. MLPニューラルネット

MLPNeuralNet は、トレーニング済みのニューラル ネットワークを使用して新しいインスタンスを予測できる、iOS および Mac OS 用の高速な多層パーセプトロン ニューラル ネットワーク ライブラリです。これは、ベクトル演算とハードディスク アクセラレーション (利用可能な場合) を活用し、Apple のアクセラレーション フレームワーク上に構築されています。

Matlab (Python または R) で予測モデルを設計し、それを iOS アプリケーションに適用したい場合。この場合、MLP NeuralNet がまさに必要なものですが、MLP NeuralNet はモデルを順方向伝播モードでのみ読み込んで実行できます。 MLP NeuralNet には次の機能があります。

  • 分類、多クラス分類、回帰出力。
  • ベクトル化された実装形式。
  • 倍精度;
  • 複数の隠し層または空 (この場合はロジスティック/線形回帰に相当)。

他の:

  • 開発言語: Objective-C
  • ライセンス: BSDライセンス
  • GitHub プロジェクト アドレス: https://github.com/nikolaypavlov/MLPNeuralNet

24. アパッチマハウト

Mahout は、Apache Software Foundation (ASF) 傘下のオープンソース プロジェクトであり、機械学習の分野でいくつかの古典的なアルゴリズムのスケーラブルな実装を提供し、開発者がインテリジェントなアプリケーションをより便利かつ迅速に作成できるようにすることを目的としています。 Mahout には、クラスタリング、分類、推奨フィルタリング、頻繁なサブアイテムのマイニングなど、多くの実装が含まれています。さらに、Apache Hadoop ライブラリを使用することで、Mahout はクラウドに効率的に拡張できます。 Apache Mahout プロジェクトの目標は、スケーラブルで高性能な機械学習アプリケーションを迅速に作成するための環境を確立することです。

オープンソースの分野では比較的新しいものですが、Mahout はすでに、特にクラスタリングと CF の面で多くの機能を提供しています。 Mahout の主な機能は次のとおりです。

  • Taste CF、Taste は、SourceForge で Sean Owen によって開始され、2008 年に Mahout に寄贈された CF のオープン ソース プロジェクトです。
  • Map-Reduce をサポートするクラスター実装には、k-Means、Fuzzy k-Means、Canopy、Dirichlet、Mean-Shift などがあります。
  • 分散ナイーブベイズと補完ナイーブベイズ分類の実装。
  • 進化プログラミングのための分散適応度関数。
  • 行列およびベクトル ライブラリ。

コンテンツ分類も Mahout を使用して実現できます。 Mahout は現在、ベイズ統計に基づいてコンテンツ分類を実装する 2 つの方法をサポートしています。最初の方法は、Map-Reduce をサポートする単純な Naive Bayes 分類子を使用します。2 番目の方法は、単純さと速度を維持しながら Naive Bayes 方法のいくつかの問題を修正しようとする Complementary Naive Bayes です。

  • 開発言語: Java
  • ライセンス: Apache
  • GitHub プロジェクト アドレス: https://github.com/apache/mahout

25. セルダン・サーバー

Seldon は、コンテンツの提案と一般的な機能の予測を提供するオープン予測プラットフォームです。これは Kubernetes クラスター内で実行されるため、オンプレミスまたはクラウド (AWS、Google Cloud Platform、Azure など) の Kubernetes ユニバース内のどこにでもプロビジョニングできます。さらに、大規模な企業のインストールのニーズを測定することもできます。

  • 開発言語: Java
  • GitHub プロジェクト アドレス: https://github.com/SeldonIO/seldon-server

26. Datumbox - フレームワーク

Datumbox 機械学習フレームワークは、多数の機械学習アルゴリズムと統計手法をカバーし、大規模なデータセットを処理できる、Java で記述されたオープンソース フレームワークです。

Datumbox API は、感情分析、トピック分類、言語検出、主観分析、スパム検出、読解評価、キーワードおよびテキスト抽出など、多くの分野で使用できる多数の分類子と自然言語処理サービスを提供します。現在、Datumbox のすべての機械学習サービスは API を通じて利用可能であり、フレームワークによりユーザーは独自のインテリジェント アプリケーションを迅速に開発できます。現在、GPL3.0 に基づく Datumbox 機械学習フレームワークはオープンソース化されており、GitHub からダウンロードできます。

Datumbox の機械学習プラットフォームは、すでに一般的なスマート アプリケーションを大幅に置き換えることができます。次のような大きな利点があります。

  • 強力でオープンソース。 Datumbox APIは、強力なオープンソースの機械学習フレームワークであるDatumboxを使用して、非常に正確なアルゴリズムを使用して革新的なアプリケーションを迅速に構築します。
  • 使いやすい。プラットフォームAPIは非常に使いやすく、すべての分類子にREST&JSONテクノロジーを使用しています。
  • すばやく使用してください。 Datumboxは、時間のかかる複雑な機械学習モデルトレーニングの必要性を排除します。ユーザーは、プラットフォームを介して分類器を直接使用できます。

データは、主にソーシャルメディアの監視を行うことができますこれらのコンテンツは、テキスト分析とテキスト分析ツールがインターネット上の多数のアプリケーションの出現を促進しました。

  • 開発言語:Java
  • ライセンス:Apacheライセンス2.0
  • GitHubプロジェクトアドレス:https://github.com/datumbox/datumbox-framework

27。Jubatus

Jubatusライブラリは、分散環境で実行されるオンライン機械学習フレームワークであり、大規模なデータストリームのオープンソースフレームワークです。ストームに似ていますが、より多くの機能を提供します。

  • オンライン機械学習ライブラリ:分類、集約、推奨事項を含む。
  • fv_converter:データ前処理(自然言語);
  • フォールトトレランスサポートを備えたオンライン機械学習フレームワーク。

Jubatusは、将来のデータ分析プラットフォームは、大規模なデータの処理、詳細な分析、リアルタイム処理の3つの方向に同時に開発する必要があると考えています。 Jubatusは、機械学習のためのオンライン機械学習、分散コンピューティング、およびランダムアルゴリズムの利点を組み合わせて、分類、回帰、推奨などの基本要素をサポートします。設計の目的によれば、Jubatusには次の機能があります。

  • スケーラブル:スケーラブルな機械学習処理をサポートします。通常のハードウェアクラスターのデータ処理速度は、1秒あたり最大100,000のレコードです。
  • 詳細なデータ分析:さまざまな分析計算をサポートしています:分類、回帰、統計、推奨事項など。

ストリーミングデータに基づいて機械学習が必要な場合、Jubatusは注意を払う価値があります。

  • 開発言語:C/C ++
  • ライセンス:LGPL
  • Githubプロジェクトアドレス:https://github.com/jubatus/jubatus

28。決定者

Deciderは、柔軟性と拡張性を組み合わせた別のRuby Machine Learningライブラリです。 Deciderには、プレーンテキストとURI、フィラーワード、単語の削除、文字グリッドなどのサポートが組み込まれています。これらはすべて、オプションで簡単に組み合わせることができます。 Deciderは、Rubyで利用可能な任意のストレージメカニズムをサポートできます。必要に応じて、データベースに保存して分散分類を実現できます。

Deciderには、統合テストを兼ねるいくつかのベンチマークがあります。これらは定期的に実行され、CPUおよびRAMボトルネックを特定するために使用されます。決定者は多くの数学的操作を実行できますが、これは非常に計算的に集中的であるため、速度要件は比較的高くなっています。これは、Ruby 1.9とJrubyの速度をテストするためによく使用されます。さらに、データセットは完全にメモリになるか、トラブルに遭遇する必要があります。

開発言語:Ruby

Githubプロジェクトアドレス:https://github.com/danielsdeleo/decider

<<:  機械学習の基本概念を10枚の画像で説明する

>>:  ディープラーニングを理解するための鍵 - パラメータ

ブログ    
ブログ    

推薦する

...

新しい機械学習システムがロボットに社会的なスキルを与える

ロボットは大学のキャンパスに食べ物を配達したり、ゴルフコースでホールインワンを達成したりすることがで...

...

...

2021 年に注目すべき 27 の建設技術トレンド (パート 2)

テクノロジーは建設業界にかつてないほど大きな影響を与えています。クラウドベースのコラボレーションやデ...

...

Natureサブジャーナル:言語だけでなく、機械翻訳は脳波をテキストに「翻訳」することもできる

人間の脳の神経信号も言語であると考えられるなら、機械翻訳アーキテクチャを神経信号の解釈に適用する実現...

百度の新しいAI翻訳機は80以上の言語をリアルタイムで翻訳できる

海外旅行の際、最大の問題は言語かもしれません。相手の言っていることを理解できれば、他のコミュニケーシ...

...

CCS Insight の予測: 生成 AI は 2024 年までに人気がなくなる

あるアナリスト会社は、生成型AIという熱狂的な分野にとって来年は現実を突きつけられる年になると予測し...

...

...

...

北京大学の学部生がチップ研究で世界大会で優勝!筆頭著者はトップクラスのEDAカンファレンスで8本の論文を発表

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...