機械学習をマスターするのに役立つ13のフレームワーク

機械学習をマスターするのに役立つ13のフレームワーク

人工知能の重要な分野として、機械学習はますます利用されています。この技術をより早く習得するにはどうすればよいでしょうか? この記事があなたにとっての扉を開くかもしれません。以下は翻訳です:

機械学習はここ 1 年で大流行しました。機械学習の「突然の」出現は、単に安価なクラウド環境とより強力な GPU ハードウェアによるものではありません。これは、機械学習の最も難しい部分を抽象化し、より幅広い開発者にテクノロジーを提供するオープンソース フレームワークの爆発的な増加によるものです。

ここでは、新規および改良された 12 個の新しい機械学習フレームワークを紹介します。これらのツールは、その起源、斬新かつシンプルな方法で問題にアプローチすること、機械学習における特定の問題を解決すること、あるいはこれらすべての理由で世間の注目を集めています。

Apache Spark MLライブラリ

Apache Spark は Hadoop ファミリーのメンバーとして最もよく知られていますが、このインメモリ データ処理フレームワークは Hadoop から生まれ、Hadoop エコシステム外でも名を馳せています。 Hadoop は、メモリ内データに高速に適用できるアルゴリズムのライブラリが拡大していることから、機械学習の定番ツールとなっています。

以前のバージョンの Spark では、主に数学と統計のユーザー向けのプラットフォームである MLib のサポートが強化され、永続的なパイプライン機能を通じて Spark 機械学習ジョブを一時停止および再開できるようになりました。 2016 年にリリースされた Spark 2.0 では、Tungsten 高速メモリ管理システムと新しい DataFrames ストリーミング API が改良され、どちらも機械学習アプリケーションのパフォーマンスが向上します。

現在第 3 版となっている H2O では、一般的な開発環境 (Python、Java、Scala、R)、ビッグ データ システム (Hadoop、Spark)、データ ソース (HDFS、S3、SQL、NoSQL) からの機械学習アルゴリズムへのアクセスが提供されます。 H2O は、データの収集、モデルの構築、予測の提供を行うエンドツーエンドのソリューションです。たとえば、モデルを Java コードとしてエクスポートすると、多くのプラットフォームや環境で予測を行うことができます。

H2O はネイティブ Python ライブラリとして使用することも、Jupyter Notebook や R Studio の R を通じて使用することもできます。このプラットフォームには、Flow in H2O と呼ばれるオープンソースの Web ベースの環境も含まれており、トレーニングの前後だけでなく、トレーニング プロセス中のデータセットの操作をサポートします。

アパッチ・シンガ

「ディープラーニング」フレームワークは、自然言語処理や画像認識などの高度な機械学習タイプの機能を強化します。 Singa は Apache インキュベーター プロジェクトであり、大規模なデータセットでディープラーニング モデルをより簡単にトレーニングできるようにするオープン ソース フレームワークです。

Singa は、マシンのクラスター上でディープラーニング ネットワークをトレーニングするためのシンプルなプログラミング モデルを提供します。畳み込みニューラル ネットワーク、制限付きボルツマン マシン、リカレント ニューラル ネットワークなど、多くの一般的なタイプのトレーニング ジョブをサポートします。 モデルは同期的に(次々に)または非同期的に(一緒に)トレーニングすることができ、CPU と GPU のクラスター上で実行でき、近々 FPGA でも実行できるようになります。 Singa は Apache Zookeeper を使用してクラスターのセットアップも簡素化します。

カフェ2

ディープラーニング フレームワーク Caffe は、「表現、スピード、モジュール性」という理念を念頭に置いて開発されました。もともとは 2013 年のマシン ビジョン プロジェクトから派生したものです。それ以来、Caffe は音声やマルチメディアなどの他のアプリケーションも取り込むように拡張されてきました。

速度が優先されるため、Caffe は完全に C++ で実装され、CUDA アクセラレーションをサポートし、必要に応じて CPU と GPU 処理を切り替えることができます。このディストリビューションには、一般的な分類タスク用の無料のオープンソース参照モデルと、Caffe ユーザー コミュニティによって作成および共有されたその他のモデルが含まれています。

Facebook が支援する Caffe の新しいバージョンである Caffe2 は現在開発中であり、1.0 リリースに近づいています。その目標は、分散トレーニングとモバイル展開を簡素化し、FPGA などの新しいタイプのハードウェアをサポートし、16 ビット浮動小数点トレーニングなどの高度な機能を活用することです。

GoogleのTensorFlow

Microsoft の DMTK と同様に、Google TensorFlow は複数のノードにわたってスケーリングするように設計された機械学習フレームワークです。 Google の Kubernetes と同様に、Google 内の問題を解決するために設計され、最終的に Google はこれをオープンソース製品としてリリースしました。

TensorFlow は、いわゆるデータフロー グラフを実装します。データフロー グラフでは、グラフで記述された一連のアルゴリズムによってデータのバッチ (「テンソル」) を処理できます。システムを通るデータの移動は「フロー」と呼ばれ、これが名前の由来です。これらのグラフは C++ または Python で実装でき、CPU と GPU の両方で処理できます。

TensorFlow の最近のアップデートでは、Python との互換性が向上し、GPU 操作が改善され、TensorFlow をより多様なハードウェアで実行できるようになり、組み込みの分類および回帰ツール ライブラリが拡張されました。

Amazon の機械学習

Amazon のクラウド サービスに対するアプローチは、基本的なものを提供し、コア ユーザーの興味を引き、その上にアプリケーションを構築させ、ユーザーが本当に必要としているものを把握して、それを提供するというパターンに従っています。

Amazon も同様に、機械学習をサービスとして提供しています - Amazon Machine Learning。このサービスは、Amazon S3、Redshift、または RDS に保存されているデータに接続し、データに対してバイナリ分類、マルチクラス分類、または回帰を実行してモデルを構築できます。ただし、生成されたモデルはインポートまたはエクスポートできず、モデルをトレーニングするためのデータセットは 100 GB を超えることはできないことに注意してください。

しかし、Amazon Machine Learning は、機械学習が単なる贅沢品ではなく、実用的な必需品になり得ることを示しています。さらに一歩進みたい方、または Amazon クラウドとの結びつきを弱めたい方のために、Amazon の Deep Learning Machine Landscape には、Caffe2、CNTK、MXNet、TensorFlow など、主要なディープラーニング フレームワークが多数含まれています。

Microsoft の Azure ML Studio

機械学習を実行するには大量のデータと計算能力が必要であるため、クラウドは機械学習アプリケーションにとって理想的な環境です。 Microsoft はすでに、Azure 向けの従量課金制の機械学習サービスである Azure ML Studio を提供しており、月額、時間単位、無料のバージョンを提供しています。 (同社の HowOldRobot プロジェクトはこのシステムを使用して作成されました。) サービスを試すのにアカウントは必要ありません。匿名でログインし、Azure ML Studio を最大 8 時間無料で使用できます。

Azure ML Studio を使用すると、ユーザーはモデルを作成してトレーニングし、それらのモデルを他のサービスで使用できる API に変換できます。無料ユーザーはアカウントごとに最大 10 GB のモデル データを試すことができ、さらに大規模なモデル用に独自の Azure ストレージを接続することもできます。 Microsoft とサードパーティのおかげで、幅広いアルゴリズムが利用可能になりました。

最近の改善点には、Azure Batch サービスによるトレーニング ジョブのバッチ管理、より優れた展開管理コントロール、詳細な Web サービス使用状況統計などがあります。

Microsoft の分散機械学習ツールセット

機械学習の問題により多くのマシンを投入すると、より良い結果が得られますが、多数のコンピューターで適切に動作する機械学習アプリケーションを開発するのは難しい場合があります。

Microsoft の DMTK (Distributed Machine Learning Toolkit) フレームワークは、システムのクラスター全体にさまざまな機械学習タスクを分散するという問題を解決します。

DMTK は、完全なターンキー ソリューションではなくフレームワークとして考えられているため、含まれるアルゴリズムの数は少なくなっています。ただし、勾配ブースティング フレームワーク (LightGBM) などの主要な機械学習ライブラリや、Torch や Theano などのディープラーニング フレームワークのサポートも引き続き提供されます。

DMTK は、ユーザーが限られたリソースで強力なクラスターを構築できるように設計されています。たとえば、クラスター内の各ノードにはローカル キャッシュがあり、タスクのパラメータを提供する中央サーバー ノードとの通信トラフィックが削減されます。

Microsoft のコンピューティング ネットワーク ツールセット

DMTK をリリースした後、Microsoft は別の機械学習ツールセットである Computational Network Toolkit (略して CNTK) をリリースしました。

CNTK は、有向グラフを通じてニューラル ネットワークを作成できるという点で、Google TensorFlow に似ています。 Microsoft は、CNTK が Caffe、Theano、Torch などのプロジェクトに匹敵すると考えています。さらに、CNTK は複数の CPU と GPU を活用して並列処理することで、より高速な速度を実現できます。 Microsoft は、Azure 上の GPU クラスターで CNTK を実行すると、Cortana の音声認識トレーニングが 1 桁高速化されると主張しています。

最新バージョンの CNTK 2.0 では、精度の向上、Spark 互換性のための Java API の追加、Kera フレームワーク (TensorFlow でよく使用される) のコードのサポートにより、TensorFlow の人気が高まりました。

アパッチマハウト

Mahout は、Spark が普及するずっと前から、Hadoop 上のスケーラブルな機械学習用に開発されました。しかし、比較的長い沈黙の期間を経て、Mahout は復活を遂げ、分散 Spark クラスター全体で複数のアルゴリズムを実行できる、Samsara と呼ばれる新しい数学環境が登場しました。 CPUとGPUの動作をサポートします。

Mahout フレームワークは長い間 Hadoop と結び付けられてきましたが、そのアルゴリズムの多くは Hadoop の外部でも実行できます。これは、最終的に Hadoop に移行されるか、スタンドアロン アプリケーションとして Hadoop からスピンアウトされるスタンドアロン アプリケーションに役立ちます。

ヴェレス(サムスン)

[Veles]https://velesnet.ml/) は、ディープラーニング アプリケーション用の分散プラットフォームであり、TensorFlow や DMTK と同様に C++ で記述されていますが、ノード間の自動化と調整には Python を使用しています。データセットはクラスターに転送される前に分析され、自動的に正規化されます。トレーニング済みのモデルは、REST API を呼び出すことですぐに使用できます (ハードウェアがそのタスクに対応していることを前提とします)。

Veles は、Python を接着コードとして使用するだけでなく、Python ベースの Jupyter Notebook を使用して、Veles クラスターによって生成された結果を視覚化および公開することもできます。サムスンは、Veles をオープンソースにすることで、Windows や MacOS への道としてさらなる開発が促進されることを期待している。

mlパック2

C++ ベースの機械学習ライブラリとして、mlpack は 2011 年に作成されました。ライブラリの作成者のアイデアによると、mlpack は「スケーラビリティ、速度、使いやすさ」を目的として設計されました。mlpack は、数行のコマンドライン実行可能プログラムで構成される「ブラック ボックス」を介して操作することも、C++ API を使用して複雑な作業を完了することもできます。

mlpack の 2 番目のバージョンには、多くの新しいアルゴリズムが含まれているほか、既存のアルゴリズムをリファクタリングして、より高速化または小型化も実現しています。たとえば、Boost ライブラリの乱数ジェネレーターを放棄し、代わりに C++11 のネイティブ乱数関数を使用します。

mlpack の慢性的な問題の 1 つは、C++ 以外の言語がサポートされていないことです。つまり、他の言語のユーザーは、この Python ライブラリなどのサードパーティ ライブラリのサポートが必要になります。 MATLAB のサポートを追加するための作業も行われていますが、mlpack のようなプロジェクトは、機械学習の主要なコンテキストで直接役割を果たす場合に、より広く採用される傾向があります。

ネオン

独自のディープラーニング ハードウェアおよびソフトウェア プラットフォームを構築した企業 (現在は Intel の傘下) である Nervana は、「Neon」と呼ばれるディープラーニング フレームワークをオープン ソース プロジェクトとして公開しました。 Neon は、プラグイン可能なモジュールを使用して、CPU、GPU、または Nervana 独自のチップ上で重い処理を実行します。

Neon は主に Python で書かれていますが、速度を上げるために部分的に C++ とアセンブリでも書かれています。これにより、Python または Python バインディングを備えた他のフレームワークでデータ サイエンス作業を行うすべてのユーザーがこのフレームワークを使用できるようになります。

LSTM、AlexNet、GoogLeNet などの多くの標準的なディープラーニング モデルが、Neon の事前トレーニング済みモデルとして利用できます。 ***バージョン Neon 2.0 では、CPU パフォーマンスを向上させるために Intel Math Kernel Library が追加されました。

マーヴィン

もう一つの比較的最近の製品である Marvin ニューラル ネットワーク フレームワークは、プリンストン ビジョン グループの製品です。 Marvin は「ハッキングされるために生まれた」とプロジェクトのドキュメントで作成者が説明しているように、C++ で書かれたいくつかのファイルと CUDA GPU フレームワークのみに依存しています。このプロジェクトにはコードがほとんどありませんが、それでも多数の事前トレーニング済みモデルが提供されています。これらのモデルは、プロジェクト コード自体と同様に、適切な状況で再利用したり、ユーザーのニーズに応じて共有したりできます。

<<:  機械学習を使用して Airbnb のリスティングの価格を予測する

>>:  今後10年間で、人工知能とロボットは雇用に7つの影響を与える

ブログ    
ブログ    

推薦する

非常に少ないデータで大規模なモデルを微調整するにはどうすればよいでしょうか?

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

TikTok本社は米国に残り、ByteDanceが管理権とコアアルゴリズムを保持する

事情に詳しい関係者らは、米政府に提出した提案に基づき、バイトダンスがティックトックの本社を米国内に維...

...

...

ビジネスに大きな影響を与える 5 つの AI テクノロジー

企業は、画像認識、音声認識、チャットボット、自然言語生成、感情分析がビジネスの運営方法にどのような変...

Google AIがチューリングテストに合格、ビッグモデルドクターが登場か? GPT-4は17人の医師を困惑させた奇妙な病気を診断した

人類に利益をもたらす AGI を開発する必要がある理由の 1 つ:妻は過去 5 年間、あらゆる種類の...

機械学習モデルのトレーニングの全プロセス!

週末に家で退屈していたので、GitHub を閲覧していたところ、非常に興味深いオープンソース プロジ...

人間と機械の論争:AIは感情について語っても負ける

青いステージの真ん中に黒いパネルが立っていた。パネルには青い楕円形のスクリーンが点滅し、その奥から冷...

傲慢か偏見か?AIはあなたの美的観念に影響を与えていますか?

数日前、TikTokで、ある親がTikTokの特殊効果を使って子供の年齢と容姿を計測する動画を見まし...

...

...

テンセントがまた何か新しいことをやっています!たった一言で絵をアニメの主人公に変身させよう!

執筆者 | Qingzhu制作:51CTO テクノロジースタック(WeChat ID:blog) 2...

機械学習をサポートする 8 つのデータ ウェアハウス

[[399333]] [51CTO.com クイック翻訳]非常に大きなデータセットの場合、理想的な状...

...

歴史上最も知られていないアルゴリズムとして知られる Paxos は、どのようにして理解しやすくなったのでしょうか?

背景分散コンセンサスアルゴリズム(Consensus Algorithm)は、分散コンピューティング...