機械学習は現在、業界で徐々にホットな話題になりつつあります。20年以上の開発を経て、機械学習は現在、データマイニング、コンピュータービジョン、自然言語処理、生体認証、検索エンジン、医療診断、DNA配列解析、音声および手書き認識、戦略ゲーム、ロボット工学など、幅広く使用されています。
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を使用しています。
2. サイキットラーン Scikit-Learn は、SciPy 上に構築された機械学習用の Python モジュールです。このプロジェクトは、2007 年に David Cournapeau 氏によって Google Summer of Code として設立され、それ以来、多数のボランティアによって貢献されてきました。 主な特徴:
Scikit-Learn の基本機能は、主に分類、回帰、クラスタリング、データ次元削減、モデル選択、データ前処理の 6 つの部分に分かれています。詳細については、公式サイトのドキュメントを参照してください。 Scikit-Learn は、Python 2.6、Python 2.7、Python 3.5 で実行できるようにテストされています。それに加えて、Python 3.3 および Python 3.4 でも動作するはずです。 注: Scikit-Learn は以前は Scikits.Learn と呼ばれていました。
3. カフェ Caffe は、ニューラル ネットワークの表現力、速度、モジュール性を重視したディープラーニング フレームワークです。その後、Berkeley Vision and Learning Center (BVLC) とコミュニティ参加者の貢献により、Berkeley が主導し、その後 Github と Caffe ユーザーの電子メールで構成される、比較的緩やかで自由なコミュニティに発展しました。 Caffe は、開発者が自由にネットワークを編成できる C++/CUDA ベースのフレームワークです。現在、畳み込みニューラル ネットワークと完全接続ニューラル ネットワーク (人工ニューラル ネットワーク) をサポートしています。 Linux では、C++ はコマンドラインからインターフェースを操作できます。また、MATLAB と Python 用の特別なインターフェースもあり、計算に関して CPU と GPU を直接かつシームレスに切り替えることができます。 Caffeの特徴:
現在、Caffe の応用実践には、主にデータの整理、ネットワーク構造の設計、トレーニング結果、既存のトレーニング モデルに基づく Caffe を使用した直接認識が含まれます。
4. 予測IO PredictionIO は、開発者とデータ サイエンティスト向けのオープン ソースの機械学習サーバーです。 REST API を介したイベント収集、アルゴリズムのスケジュール設定、評価、予測結果のクエリをサポートします。ユーザーは PredictionIO を使用して、パーソナライズされた推奨事項、コンテンツの検出などの予測を行うことができます。 PredictionIO は、開発者が独自のデータに対して直接実行できる 20 個のプリセット アルゴリズムを提供します。ほぼすべてのアプリケーションは、PredictionIO と統合することでよりスマートになります。主な特徴は次のとおりです。
PredictionIOはREST API(アプリケーションプログラミングインターフェース)標準に基づいていますが、Ruby、Python、Scala、Javaなどのプログラミング言語用のSDK(ソフトウェア開発キット)も含まれています。開発言語はScala、データベースはMongoDB、コンピューティングシステムはHadoopシステムアーキテクチャを採用しています。
5. 脳 Brain は JavaScript のニューラル ネットワーク ライブラリです。次の例は、Brain を使用して XOR 関数を近似する方法を示しています。
brain を node で使用する場合は、npm を使用してインストールできます。
ブラウザで brain を使用する場合は、最新の brain.js ファイルをダウンロードしてください。トレーニングには計算コストがかかるため、ネットワークをオフライン (またはワーカー上) でトレーニングし、toFunction() または toJSON() オプションを使用して、事前トレーニング済みのネットワークを Web サイトに挿入する必要があります。
6. ケラス Keras は、TensorFlow または Theano で実行できる、非常に合理化された高度にモジュール化されたニューラル ネットワーク ライブラリです。GPU と CPU のコンピューティングをサポートする高度にモジュール化されたニューラル ネットワーク ライブラリです。 Keras は Torch7 の Python 版とも言えます。CNN モデルを素早く構築するのに非常に便利です。また、Batch Noramlize など、最新の文献からのアルゴリズムもいくつか含まれています。ドキュメントとチュートリアルも非常に充実しています。公式サイトでは、作者が直接わかりやすい例を示しています。 Keras は、トレーニング済みのパラメータを保存し、トレーニング済みのパラメータを読み込んでトレーニングを続行することもサポートしています。 Keras は、迅速な実験の開発と、アイデアから結果への移行を可能な限り遅延なく実現することに重点を置いています。これは、優れた研究を行うための鍵となります。 以下の要件を満たすディープラーニング ライブラリが必要な場合は、Keras の使用を検討してください。
Keras は現在 Python 2.7 ~ 3.5 をサポートしています。
7. CNTK CNTK (Computational Network Toolkit) は、有向グラフを介した一連の計算ステップとしてニューラル ネットワークを記述する統合ディープラーニング ツールキットです。有向グラフでは、リーフ ノードは入力値またはネットワーク パラメータを表し、他のノードはそのノードの入力に対する行列演算を表します。 CNTK を使用すると、フィードフォワード ニューラル ネットワーク (DNN)、畳み込みニューラル ネットワーク (CNN)、再帰型ニューラル ネットワーク (RNN/LSTM) などの一般的なモデルを簡単に実装および組み合わせることができます。同時に、複数の GPU とサーバー間で自動的に差別化および並列化される確率的勾配降下法 (SGD、エラー バック プロパゲーション) 学習を実装します。 下の図は、CNTK の処理速度 (1 秒あたりに処理されるフレーム数) を他の 4 つのよく知られたツールキットと比較したものです。この構成では、4 層の完全接続ニューラル ネットワーク (ベンチマーク スクリプトを参照) と、効率的なミニ バッチ サイズ 8192 を使用します。同じハードウェアと最新の公開ソフトウェア バージョン (2015.12.3 より前のバージョン) に基づいて、次の結果が得られました。 CNTK は 2015 年 4 月からオープンソースになっています。
8. コンブネット ConvNetJS は、Javascript で実装されたニューラル ネットワークであり、非常に優れたブラウザベースのデモも備えています。その最も重要な用途は、ディープラーニングの初心者がアルゴリズムをより速く、より直感的に理解できるようにすることです。 現在サポートしているのは以下です:
オンライン上の例をいくつか挙げます。
他の:
9. パターン Pattern は Python 用の Web マイニング モジュールです。以下のツールがあります:
十分に文書化されており、現在 50 を超える例と 350 を超えるユニット テストがあります。 Pattern は現在 Python 2.5+ のみをサポートしています (Python 3 はまだサポートされていません)。このモジュールには、Pattern.vector モジュールで LSA を使用する以外に外部要件はありません。そのため、NumPy のみをインストールする必要があります (Mac OS X ではデフォルトでのみインストールされます)。
10. ニューピック NuPIC は、HTM 学習アルゴリズムを実装する機械知能プラットフォームです。 HTM は、大脳新皮質に関する詳細な人工知能アルゴリズムです。 HTM の中核は、時間と空間の両方のパターンを保存および呼び出すことができる時間ベースの継続的な学習アルゴリズムです。 NuPIC は、特にストリーミング データ ソースの異常検出や予測など、さまざまな問題の解決に適用できます。 NuPIC バイナリ ファイルは現在、次の目的で利用可能です:
NuPIC は独自の特徴を持っています。多くの機械学習アルゴリズムは新しいパターンに適応できませんが、NuPIC は人間の脳と同様に動作します。パターンが変化すると、古いパターンを忘れて新しいパターンを記憶します。
11. テアノ
Theano は 2007 年から大規模で集中的な科学計算研究に使用されていますが、教室でも広く使用されています (モントリオール大学のディープラーニング/機械学習コースなど)。
12. MXネット MXNet は、効率性と柔軟性を兼ね備えたディープラーニング フレームワークです。これにより、ユーザーはシンボリック プログラミングと命令型プログラミングを組み合わせて、効率と生産性を最大化できます。その中核となるのは、シンボリック操作と命令型操作をオンザフライで自動的に並列化する動的依存関係スケジューラです。そこに導入されたグラフ最適化レイヤーにより、シンボリック操作の高速化とメモリの効率的な利用が可能になります。このライブラリは軽量で移植性が高く、複数の GPU と複数のホストに拡張可能です。 主な特徴:
MXNet は単なるディープラーニング プロジェクトではなく、ディープラーニング システムを構築するための青写真、ガイドライン、そしてディープラーニング システムに対するハッカー独自の洞察を組み合わせたものです。
13. ボウパル・ワビット Vowpal Wabbit は、オンライン、ハッシュ、Allreduce、Learning2search などの最先端の機械学習技術の開発を促進する機械学習システムです。 トレーニング速度は非常に高速です。それぞれ約 100 個の非ゼロ特徴を持つ 20 億のトレーニング サンプルの場合、特徴の総数が 10,000 のときはトレーニング時間は 20 分、特徴の総数が 1,000 万のときは 2 時間です。 Vowpal Wabbit は、分類、回帰、行列分解、LDA をサポートしています。 Vowpal Wabbit を Hadoop 上で実行すると、次の最適化が利用できます。
他の:
14. ルビーの戦士 ゲームを設計することで、Ruby 言語と人工知能の学習をより楽しくインタラクティブなものにします。 ユーザーは、貴重なルビーを手に入れるために高い塔を登り最上階に到達する戦士の役割を演じます。各レベルでは、戦闘員が敵を倒し、囚人を救出し、階段に到達するように導く Ruby スクリプトを記述する必要があります。ユーザーは各レイヤーについてある程度理解していますが、各レイヤーで何が起こるかは正確にはわかりません。戦闘機に十分な AI を与えて、戦闘機が自らどのように対応するか判断できるようにする必要があります。 Warriorsアクション関連API:
戦士の知覚API:
他の:
15. XGBoost XGBoot は、効率性、柔軟性、移植性を考慮して設計された、最適化された分散勾配ブースティング ライブラリです。 Gradient Boosting フレームワークの下で機械学習アルゴリズムを実装します。 XGBoost は、Parallel Tree Boosting (GBDT、GBM とも呼ばれます) を提供することで、多くのデータ サイエンスの問題を高速かつ正確に解決します。同じコードを Hadoop、SGE、MP などの大規模な分散環境で実行できます。これは勾配上昇フレームワークに似ていますが、より効率的です。線形モデル ソルバーとツリー学習アルゴリズムを組み合わせたものです。 XGBoot は、既存の勾配上昇法の実装よりも少なくとも 10 倍優れたパフォーマンスを発揮し、回帰、分類、ランキングなどのさまざまな目的関数も提供します。 XGBoot は強力な予測性能を備えているため、多くのコンペティションにとって理想的な選択肢であり、クロス検証や主要変数の検出のための追加機能も備えています。 XGBoost は数値ベクトルでのみ機能するため、他のすべての形式のデータは使用時に数値ベクトルに変換する必要があることに注意してください。また、モデルを最適化するときに、このアルゴリズムには調整する必要があるパラメーターも多数あります。
16. ゴーラーン GoLearn は、シンプルさとカスタマイズ性を開発目標とした、Go 言語の「フル機能」の機械学習ライブラリです。 GoLearn をインストールすると、データがインスタンスとして読み込まれ、それに対して行列を操作し、操作の値を推定器に渡すことができます。 GoLearn は Fit/Predict 用の Scikit-Learn インターフェースを実装しているため、ユーザーは試行錯誤を通じて簡単に推定値を調整できます。さらに、GoLearn には、クロス検証、トレーニング、バースト テストなど、データを操作するための補助機能も含まれています。
17. ハッカーのためのML ML_for_Hackers は、ハッカー向けの機械学習のコード例のリポジトリです (2012)。公開後に追加のコメントや変更が加えられている可能性があるため、コードは論文に記載されているとおりに表示されない場合があります。 すべてのコードは R で記述されており、多数の R パッケージに依存し、分類、ランキング、回帰のすべての一般的なタスク、および主成分分析 (PCA) や多次元尺度法などの統計手法を含むトピックをカバーしています。
18. H2O-2 H2O は Hadoop で数学を実行します。ビッグデータを通じて統計、機械学習、数学を測定できます。 H2O は拡張可能であり、ユーザーはコア領域で単純な数学モデルを使用してモジュールを構築できます。 H2O は、R、Excel、JSON に似た使い慣れたインターフェースを維持しており、ビッグ データ愛好家や専門家が、単純なものから高度なものまでさまざまなアルゴリズムを使用してデータ セットを探索、変換、モデル化、スコアリングできます。データの収集は簡単ですが、意思決定は困難です。H2O は、より高速で最適化された予測モデルを通じて、データからより迅速かつ容易に洞察を得ることを可能にします。 0xdata H2O のアルゴリズムは、ビジネス プロセス (詐欺やトレンド予測) に重点を置いています。 Hadoop の専門家は Java を使用して H2O と対話できますが、フレームワークは Python、R、Scala のバインディングも提供します。
19. ネオン Neon は Nervana の Python ベースのディープラーニング フレームワークであり、AlexNet、VGG、GoogLeNet などの多くの一般的なディープ ニューラル ネットワークで高いパフォーマンスを実現できます。ネオンを設計する際、開発者は次の機能を考慮しました。
Nervana では、ネオンを使用して、複数のドメインにわたって顧客が抱えるさまざまな問題を解決します。
20. オリックス2 オープンソース プロジェクト Oryx は、大規模な機械学習と予測分析のためのシンプルでリアルタイムなインフラストラクチャを提供します。商用アプリケーションで一般的に使用されるいくつかのアルゴリズム クラス (協調フィルタリング/推奨、分類/回帰、クラスタリングなど) を実装します。さらに、Oryx は Apache Hadoop を使用して大規模なデータ ストリーム上にモデルを構築し、HTTP REST API を通じてこれらのモデルに対してリアルタイム クエリを提供するとともに、新しいデータが流入し続けるのに合わせてモデルを自動的に更新することもできます。コンピューティング層とサービス層を含むこのデュアル設計では、それぞれ Lambda アーキテクチャを実装できます。モデルは PMML 形式で交換されます。 Oryx は基本的に、モデリングとモデルの提供という 2 つのことだけを実行します。これらは、コンピューティング層とサービス層の 2 つの独立した部分の役割です。コンピューティング層は、入力データから機械学習モデルを構築できるオフラインのバッチ プロセスです。その運用上の利点は「生成」にあります。つまり、特定の時点での入力値のスナップショットを使用してモデル化できます。その結果、継続的な入力が蓄積されるにつれて、時間の経過とともに一連の出力が生成されます。サービス層も、REST API を公開する Java ベースの長時間実行サーバー プロセスです。ユーザーはブラウザから、または HTTP リクエストを送信できる任意の言語やツールを使用してアクセスできます。 Oryx は、機械学習アルゴリズムのライブラリとして位置付けられていません。Owen は、回帰、分類、クラスタリング、協調フィルタリング (つまり、推奨) の 4 つの領域に重点を置いています。推奨システムは非常に人気があり、Owen は複数の 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)、(カーネル) 知覚、隠れマルコフ モデルのトレーニング用のアルゴリズムなど、多数の線形手法も追加されています。
22. 学ぶ HLearn は Haskell で書かれた高性能な機械学習ライブラリです。現在、任意の次元空間に対する最速の最近傍実装アルゴリズムを備えています。 HLearn も研究プロジェクトです。このプロジェクトの研究目標は、機械学習のための「可能な限り最良の」インターフェースを発見することです。これには、2 つの相反する要件が伴います。ライブラリは、C/C++/Fortran/アセンブリで開発された低レベル ライブラリと同じ速度で実行される必要がありますが、同時に、Python/R/Matlab で開発された高レベル ライブラリと同じ柔軟性と汎用性も備えている必要があります。 Julia はこの方向で驚くべき進歩を遂げましたが、HLearn はさらに野心的です。さらに注目すべきは、HLearn が低レベル言語よりも高速で、高レベル言語よりも柔軟性があることを目指していることです。 この目標を達成するために、HLearn は標準の学習ライブラリとはまったく異なるインターフェースを採用しています。 HLearn では、H は 3 つの異なる概念を表します。これらは HLearn 設計の基本要件でもあります。
他の:
23. MLPニューラルネット MLPNeuralNet は、トレーニング済みのニューラル ネットワークを使用して新しいインスタンスを予測できる、iOS および Mac OS 用の高速な多層パーセプトロン ニューラル ネットワーク ライブラリです。これは、ベクトル演算とハードディスク アクセラレーション (利用可能な場合) を活用し、Apple のアクセラレーション フレームワーク上に構築されています。 Matlab (Python または R) で予測モデルを設計し、それを iOS アプリケーションに適用したい場合。この場合、MLP NeuralNet がまさに必要なものですが、MLP NeuralNet はモデルを順方向伝播モードでのみ読み込んで実行できます。 MLP NeuralNet には次の機能があります。
他の:
24. アパッチマハウト Mahout は、Apache Software Foundation (ASF) 傘下のオープンソース プロジェクトであり、機械学習の分野でいくつかの古典的なアルゴリズムのスケーラブルな実装を提供し、開発者がインテリジェントなアプリケーションをより便利かつ迅速に作成できるようにすることを目的としています。 Mahout には、クラスタリング、分類、推奨フィルタリング、頻繁なサブアイテムのマイニングなど、多くの実装が含まれています。さらに、Apache Hadoop ライブラリを使用することで、Mahout はクラウドに効率的に拡張できます。 Apache Mahout プロジェクトの目標は、スケーラブルで高性能な機械学習アプリケーションを迅速に作成するための環境を確立することです。 オープンソースの分野では比較的新しいものですが、Mahout はすでに、特にクラスタリングと CF の面で多くの機能を提供しています。 Mahout の主な機能は次のとおりです。
コンテンツ分類も Mahout を使用して実現できます。 Mahout は現在、ベイズ統計に基づいてコンテンツ分類を実装する 2 つの方法をサポートしています。最初の方法は、Map-Reduce をサポートする単純な Naive Bayes 分類子を使用します。2 番目の方法は、単純さと速度を維持しながら Naive Bayes 方法のいくつかの問題を修正しようとする Complementary Naive Bayes です。
25. セルダン・サーバー Seldon は、コンテンツの提案と一般的な機能の予測を提供するオープン予測プラットフォームです。これは Kubernetes クラスター内で実行されるため、オンプレミスまたはクラウド (AWS、Google Cloud Platform、Azure など) の Kubernetes ユニバース内のどこにでもプロビジョニングできます。さらに、大規模な企業のインストールのニーズを測定することもできます。
26. Datumbox - フレームワーク Datumbox 機械学習フレームワークは、多数の機械学習アルゴリズムと統計手法をカバーし、大規模なデータセットを処理できる、Java で記述されたオープンソース フレームワークです。 Datumbox API は、感情分析、トピック分類、言語検出、主観分析、スパム検出、読解評価、キーワードおよびテキスト抽出など、多くの分野で使用できる多数の分類子と自然言語処理サービスを提供します。現在、Datumbox のすべての機械学習サービスは API を通じて利用可能であり、フレームワークによりユーザーは独自のインテリジェント アプリケーションを迅速に開発できます。現在、GPL3.0 に基づく Datumbox 機械学習フレームワークはオープンソース化されており、GitHub からダウンロードできます。 Datumbox の機械学習プラットフォームは、すでに一般的なスマート アプリケーションを大幅に置き換えることができます。次のような大きな利点があります。
データは、主にソーシャルメディアの監視を行うことができますこれらのコンテンツは、テキスト分析とテキスト分析ツールがインターネット上の多数のアプリケーションの出現を促進しました。
27。Jubatus Jubatusライブラリは、分散環境で実行されるオンライン機械学習フレームワークであり、大規模なデータストリームのオープンソースフレームワークです。ストームに似ていますが、より多くの機能を提供します。
Jubatusは、将来のデータ分析プラットフォームは、大規模なデータの処理、詳細な分析、リアルタイム処理の3つの方向に同時に開発する必要があると考えています。 Jubatusは、機械学習のためのオンライン機械学習、分散コンピューティング、およびランダムアルゴリズムの利点を組み合わせて、分類、回帰、推奨などの基本要素をサポートします。設計の目的によれば、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 |
>>: ディープラーニングを理解するための鍵 - パラメータ
AIペイントの王者ミッドジャーニーがハードウェア分野に進出開始!同社は、スーパーバイザーとして、Vi...
ロボットは大学のキャンパスに食べ物を配達したり、ゴルフコースでホールインワンを達成したりすることがで...
テクノロジーは建設業界にかつてないほど大きな影響を与えています。クラウドベースのコラボレーションやデ...
人間の脳の神経信号も言語であると考えられるなら、機械翻訳アーキテクチャを神経信号の解釈に適用する実現...
海外旅行の際、最大の問題は言語かもしれません。相手の言っていることを理解できれば、他のコミュニケーシ...
あるアナリスト会社は、生成型AIという熱狂的な分野にとって来年は現実を突きつけられる年になると予測し...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...