多くのニューラル ネットワーク フレームワークは長年にわたってオープン ソース化されており、機械学習と人工知能をサポートする独自のソリューションも数多く存在します。長年にわたり、開発者は画像、手書き、ビデオ、音声認識、自然言語処理、オブジェクト検出をサポートする一連の機械学習フレームワークを Github でリリースしてきましたが、すべてのニーズを解決できるフレームワークは存在しません。では、最適なオープンソース フレームワークを選択するにはどうすればよいでしょうか? 以下のチャートと分析、および説明が、ビジネス ニーズに最適なフレームワークを選択するためのヒントになることを願っています。次の図は、Github 上のオープンソースのディープラーニング フレームワーク プロジェクトの大部分をまとめたもので、Github の星の数に基づいて評価しています。 テンソルフロー TensorFlow フレームワークの前身は、Google の DistBelief V2 です。これは、Google Brain プロジェクト用のディープ ネットワーク ツール ライブラリです。TensorFlow は Theano をベースに再構築されたと考える人もいます。 Tensorflow がオープンソース化されると、すぐに多数の開発者がそれに追随しました。 Tensorflow は、画像、手書き、音声認識、予測、自然言語処理など、幅広い機能をサポートしています。 TensorFlow は Apache 2.0 オープンソース プロトコルに準拠しています。 TensorFlow は次のツールを提供します。 TensorBroad は、適切に設計された視覚的なネットワーク構築および表示ツールです。 TensorFlow Serving を使用すると、同じサーバー アーキテクチャと API を維持することで、新しいアルゴリズムと環境を簡単に構成できます。 TensorFlow Serving はすぐに使用できるモデルも提供しており、他のモデルやデータをサポートするように簡単に拡張できます。 TensorFlow プログラミング インターフェースには Python と C++ が含まれており、アルファ バージョンでは Java、Go、R、Haskell のインターフェースもサポートされています。さらに、TensorFlow は Google や Amazon のクラウド環境もサポートしています。 TensorFlow バージョン 0.12 は、Windows 7、8、および Server 2016 をサポートしています。 C++ Eigen ライブラリを使用すると、TensorFlow ライブラリを ARM アーキテクチャ プラットフォームでコンパイルおよび最適化できます。つまり、モデル デコーダーや Python インタープリターを実装しなくても、トレーニング済みのモデルをさまざまなサーバーやモバイル デバイスに展開できます。 TensorFlow は詳細なネットワーク レイヤーを提供するため、ユーザーは下から実装することなく、新しい複雑なレイヤー構造を構築できます。サブグラフを使用すると、ユーザーはグラフの任意のエッジのデータを表示および復元できます。これは複雑な計算をデバッグするのに非常に便利です。 分散 TensorFlow はバージョン 0.8 でリリースされ、並列コンピューティングをサポートし、モデルのさまざまな部分をさまざまなデバイスで並行してトレーニングできるようになりました。 TensorFlow は、スタンフォード大学、バークレー大学、トロント大学、Udacity (2016 年 3 月に設立されたオンライン スクール) で教えられています。 TensorFlow の欠点は次のとおりです。 各計算フローは、シンボリック ループのないグラフとして構築する必要があり、これにより一部の計算が困難になります。 3D畳み込みがないのでビデオ認識は不可能です。 以前のバージョン (0.5) よりも 58 倍高速ですが、実行パフォーマンスは依然として競合製品より劣っています。 カフェ Caffe は Yangqing Jia 氏の作品です。現在、Yangqing Jia 氏は Facebook の AI プラットフォームのリーダーを務めています。 2013 年後半に開始された Caffe は、主流の産業グレードのディープラーニング ツールキットです。 Caffe はコンピューター ビジョンの分野で最も人気のあるツールの 1 つであり、2014 年の ImageNet コンテストの優勝作品では Caffe フレームワークが使用されました。 Caffe は BSD 2-Clasuse プロトコルに従います。ここで、技術的なボトルネックを打破し、思考力を向上させるために、ビッグデータ技術交流サークル658558542を皆様にお勧めしたいと思います。 Caffe は高速なので、科学研究や商業分野に非常に適しています。 NVIDIA K40 GPU を使用すると、Caffe は 1 日あたり 6,000 万枚の画像を処理できます。つまり、推論には画像 1 枚あたり 1 ミリ秒、トレーニングには画像 1 枚あたり 4 ミリ秒かかります。新しいバージョンではさらに高速になりました。 Caffe は最下層で C++ で実装されており、さまざまなデバイスでコンパイルできます。 Caffe はクロスプラットフォームで、Windows インターフェースを提供します。C++、Python、Matlab 言語インターフェースを提供します。 Caffe には巨大なユーザー コミュニティがあり、多数のディープ ネットワーク モデルがコミュニティに投稿されており、「Model Zoo」と呼ばれています。その中でも、AlexNet と GoogleNet は最も有名な 2 つです。 Caffe は視覚認識用の一般的なフレームワークですが、TensorFlow、CNTK、Theano のようなきめ細かいレイヤー構造は提供していません。複雑なレイヤー構造を構築するには、低レベルのコードを記述する必要があります。 Caffe は、その固有のアーキテクチャにより、再帰ネットワークと言語モデルのサポートが不十分です。 カフェ2 Jia Yangqing 氏と彼のチームは現在、Facebook で Caffe2 の研究開発に取り組んでいます。 2017 年 4 月 18 日、Facebook は BSD プロトコルに基づく Caffe2 をオープンソース化しました。 Caffe2 はモジュール性に重点を置いており、モバイル デバイスや大規模な展開で優れたパフォーマンスを発揮します。 TensorFlow と同様に、Caffe2 も C++ Eigen を使用して ARM アーキテクチャをサポートします。 Caffe モデルは、スクリプトを通じて簡単に Caffe2 モデルに変換できます。 Caffe の設計傾向により、視覚関連の問題に特に適しています。Caffe2 は視覚問題に対する強力なサポートを継承しながら、RNN と LSTM を追加して、自然言語処理、手書き認識、時系列予測をより適切にサポートします。 近い将来、ディープラーニング コミュニティでは Caffe が Caffe2 に置き換えられると予想されます。 Microsoft 認知ツールキット Microsoft Cognitive Toolkit (CNTK) は、もともと音声認識用に設計されました。 CNTK は RNN (再帰型ニューラル ネットワーク) と CNN (畳み込みニューラル ネットワーク) をサポートしているため、画像、手書き、音声認識の問題を処理できます。 CNTK は 64 ビット Linux および Windows システムをサポートし、Python および C++ 言語インターフェイスを提供し、MIT プロトコルに準拠しています。 CNTK は TensorFlow や Theano と同様の設計コンセプトを持ち、ネットワークを行列の加算、行列の乗算、畳み込みなどのベクトル演算のセマンティック グラフとして定義します。同時に、CNTK はきめ細かいネットワーク層設計も提供し、ユーザーはそれを使用して新しい複雑なネットワークを設計できます。 Caffe と同様に、CNTK も C++ で実装されており、クロスプラットフォームの CPU/GPU サポートを備えています。 Azure GPU Lab で実行すると、CNTK はより高い分散コンピューティング パフォーマンスを実現できます。現在、CNTK は ARM アーキテクチャをサポートしていないため、モバイル デバイスでのアプリケーションが制限されます。 MXネット MXNet はカーネギーメロン大学とワシントン大学から生まれました。 MXNet は、ユニークでプログラム可能かつスケーラブルなディープラーニング フレームワークです。 MXNet は、Python、C++、R、Scala、Julia、Matlab、JavaScript など、複数の言語のモデルとコードを混在させることができます。 2017 年 1 月 30 日、MXNet は Apache Foundation のインキュベーション プロジェクトに含まれました。 MXNet は CNN、RNN、LSTM をサポートし、画像、手書き、音声認識、予測、自然言語の問題を強力にサポートします。 MXNet は、GPU 並列コンピューティング、ストレージ イメージング、高速開発、移植性など、優れたスケーラビリティを備えています。さらに、MXNet は、一般的な分散アプリケーション管理フレームワークである Apache Hadoop YARN と組み合わせることができます。この機能により、MXNet は TensorFlow の競合相手となります。 MXNet のユニークな特徴は、Generative Adversarial Networks (GAN) をサポートする数少ないフレームワークの 1 つであることです。このモデルは、実験経済学の「ナッシュ均衡」法で使用されます。 もうひとつ特別なのは、Amazon の CTO である Werner Vogels 氏が MXNet のサポートを発表したことです。「本日、MXNet が Amazon のディープラーニング フレームワークとして選ばれることを発表します。MXNet は既存および将来のサービスで使用されます。」Apple に関する噂の中には、同社がディープラーニング フレームワークとして MXNet を使用するというものもあります。 トーチ Torchは、FacebookのRoyan Collobert氏とSoumith Chintala氏、元Twitterで現在はNvidiaのClement Farabet氏、Google Deep MindのKoray Kavukcuoglu氏によって開発されました。主な貢献者は Facebook、Twitter、Nvidia です。 Torch は BSD 3 条項オープン ソース契約に準拠しています。しかし、Facebook は最近、モバイル デバイス開発をサポートしているため、優先ディープラーニング フレームワークとして Caffe2 に切り替えると発表しました。 Torchはニッチな言語であるLuaで実装されているため、この言語に精通していないと作業全体の効率に影響します。 Torch には、TensorFlow、YARN 上の MXNet、Deeplearning4J のような分散サポートが欠けており、複数の言語インターフェースが欠けていることも、その対象ユーザーを制限しています。 ディープラーニング4J DeepLearning4J (DL4J) は、Java と Scala で実装された、Apache 2.0 プロトコルに基づく分散型オープン ソース ニューラル ネットワーク ライブラリです。 DL4J は、SkyMind の Adam Gibson によって開発されました。これは、Hadoop や Spark と組み合わせてマルチユーザー マルチスレッド サービスを構築できるコモディティ グレードのディープラーニング ネットワークです。 DL4J は、ネットワークのトレーニングに Map-Reduce のみを使用し、大規模な行列演算には他のライブラリを使用するフレームワークです。ここで、技術的なボトルネックを打破し、思考力を向上させるために、ビッグデータ技術交流サークル658558542を皆様にお勧めしたいと思います。 DL4J には GPU サポートが組み込まれており、YARN でのトレーニング プロセスをサポートする重要な機能です。 DL4J は、RBM、DBN、CNN、RNN、RNTN、LSTM などのディープ ニューラル ネットワーク アーキテクチャを豊富にサポートしています。 DL4J はベクトル コンピューティング ライブラリである Canova もサポートします。 DL4J は Java で実装されているため、本質的に Python よりも高速であり、複数の GPU を使用して Caffe と同じくらい高速に画像認識タスクを実行できます。このフレームワークは、画像認識、不正検出、自然言語処理のタスクに優れています。 テアノ Theano は主にモントリオール大学の学習アルゴリズム研究所 (MILA) によって作成されました。 Yoshua Bengio 氏は Theano の作成者であり、このラボを率いています。このラボはディープラーニングの研究に多大な貢献を果たし、約 100 人の関連する学生と実務家を育成してきました。 Theano は、効率的な機械学習アルゴリズムの迅速な開発をサポートし、BSD オープンソース プロトコルに準拠しています。 Theano は TensorFlow ほどエレガントではありませんが、ループ制御 (スキャンと呼ばれる) をサポートする API を提供し、RNN の実装を容易にします。 Theano は、手書き認識と画像分類 (医療画像を含む) をサポートするさまざまな畳み込みモデルを提供します。 Theano は、ビデオ分類用の 3D 畳み込みとプーリングも提供します。言語の面では、Theano は理解、翻訳、生成などの自然言語処理タスクを実行できます。 Theano は、MILA の学生によって提案された Generative Adversarial Networks (GAN) もサポートしています。 Theano はマルチ GPU 並列コンピューティングをサポートし、独自の分散フレームワークを備えています。 Theano は 1 つの開発言語のみをサポートし、TensorFlow よりもはるかに高速であるため、学術研究のための強力なツールとなります。しかし、モバイル プラットフォームのサポートが不足しており、多言語インターフェースもないため、企業での広範な適用が制限されています。 オープンソースとプロプライエタリソフトウェアの戦い ディープラーニングが成熟するにつれて、TensorFlow、Caffe2、MXNet の間で競争が繰り広げられるようになると予想されます。同時に、ソフトウェアベンダーも、データからより多くの価値を引き出せるようにする高度な AI 製品を提供しています。問題は、特許取得済みの AI 製品を購入するか、オープンソース フレームワークを使用するかということです。オープンソース フレームワークを使用する場合、どのフレームワークが問題に最適かという難しい選択に直面することになります。特許取得済みのソフトウェアを選択した場合、出口戦略をどのように策定しますか? どちらを選択する場合でも、長期的な検討が必要です。 |
<<: 34 個の事前トレーニング済みモデルを比較して再現します。PyTorch と Keras のどちらを選択しますか?
ちょうど今、Stability AI は次世代のテキスト グラフ モデルである SDXL 1.0 を...
11月11日、中国ハイテクフェア2020が深センで開催されました。ファーウェイクラウドコンピューティ...
米国現地時間1月17日火曜日、人工知能分野のリーダーであるOpenAIは、自社のブログで「Colle...
現在、NVIDIA は GPU の優位性の座にしっかりと座っています。 ChatGPT の誕生により...
6月15日、グーグルの新しいAIチャットボットのトレーニングを担当する契約労働者のグループは、低賃金...
人工知能は現代の大きな発展のトレンドであり、世界中のほぼすべてのハイテク企業が AI 分野の技術を研...
[51CTO.com からのオリジナル記事] データは今最もホットなものです。当時は「紙は洛陽と同...
最近、カリフォルニア大学は時系列の大規模言語モデルに関する研究のレビューを発表しました。この記事では...
今年に入ってから、医療提供方法や患者がより積極的に医療に参加できる方法を変革するために AI を使用...
人工知能業界では、今年多くの出来事がありましたが、その中には慎重に検討する価値のあるものもありました...
私たちはサイバーパンクの世界に生きているのでしょうか?最近、「ブラックミラー」のようなシーンが登場し...
この病気の症状の多くは心配なものであり、めまいや不安感から始まることもあります。心臓のあたりがバクバ...