クイックスタート:基本的な深層学習フレームワークの概要

こんにちは、Habr! シリコンバレーデータサイエンスのMatthew Rubashkinが投稿 「Getting Started with Deep Learning」の翻訳を既存のディープラーニングテクノロジーの長所と短所、およびチームの特定のタスクと能力を考慮して選択するフレームワークについて提供します。

画像






SVDSのR&D部門では、列車の画像認識から人間の音声の解読まで、さまざまなディープラーニングテクノロジーを研究しています。 私たちの目標は、データ処理の連続プロセスを構築し、モデルを作成してその品質を評価することでした。 しかし、手頃な価格のテクノロジーの研究を開始したところ、新しいディープラーニングプロジェクトを立ち上げるための適切なガイドを見つけることができませんでした。



それでも、オープンソースでディープラーニング技術を開発および改善している愛好家のコミュニティに敬意を表する価値はあります。 彼らの例に従って、他の人がこれらのツールを評価して選択し、自分の経験を共有するのを助ける必要があります。 次の表は、1つまたは別のDeep Learningフレームワークの選択基準を示しています。



画像






結果の評価は、上記の技術を画像および音声認識に適用した経験と、公開されている比較研究の研究に基づいています。 このリストには、利用可能なすべてのディープラーニングツールが含まれているわけではないことに注意してください 。 今後数か月以内に、 DeepLearning4jPaddleChainerApache Signa 、およびDynetのテストに熱心に取り組んでいます。



それでは、グレーディングシステムのより詳細な説明に移りましょう。



プログラミング言語:ディープラーニングを使用する場合は、最も便利なプログラミング言語を使用することをお勧めします。 たとえば、Caffee(C ++)とTorch(Lua)にはPython APIのラッパーがありますが、これらのツールの使用は、それぞれC ++またはLuaに堪能な場合にのみお勧めします。 比較のために、TensorFlowとMXNetは多くのプログラミング言語をサポートしているため、C ++の専門家でなくても、このツールキットを使用できます。 注:残念ながら、2017年1月にFacebook AI Research(FAIR)がリリースしたTorchの新しいPythonラッパーであるPyTorchをテストする機会はまだありません。 このフレームワークは、Python開発者がトーチのニューラルネットワークの構築を改善できるように作成されました。



画像






画像






学習ガイド:学習ガイドとトレーニング資料の質と量に関して、ディープラーニングツールには大きな違いがあります。 したがって、Theano、TensorFlow、Torch、およびMXNetには、実際に理解して使用するのが簡単な優れた書面のチュートリアルがあります。 一方、MicrosoftのCNTKとIntelのNervana Neonを使用した初心者向けのマニュアルは、非常に高度な分析ツールではありませんでした。 さらに、GitHubコミュニティの関与の程度は、ツールキットの将来の開発だけでなく、StackOverflowまたはGit Issuesを使用してコードのバグまたはエラーを修正できる速度の信頼できる指標であることがわかりました。 TensorFlowは、チュートリアル、自習教材、開発者、そして最終的にはユーザーの数の観点から、ディープラーニングの世界でキングコングになっていることに注意することが重要です。



画像






CNNモデリング機能:畳み込みニューラルネットワークは、画像認識、レコメンダーシステム、および自然言語処理(NLP)に使用されます。 CNNは、入力データを既知のクラスを持つ従属変数の推定値に変換する一連の異なるレイヤーで構成されます。 (詳細については、Eugenio Culurcielloのニューラルネットワークアーキテクチャのレビューを参照してください)。 CNNは、たとえば自動操縦で車のステアリング角を計算するなど、回帰問題の解決にも使用できます。 CNNモデリングの特定の機能の可用性に応じて、フレームワークを評価しました:ニューラルネットワークの埋め込み層の可用性、これらの層を接続するためのツールと機能の可用性。 分析の結果、TensorFlowとそのInceptionV3を使用したモデル構築の容易さ、およびTorchの使いやすいCNN一時レイアウトにより、これらのフレームワークが他のフレームワークと区別されます。



RNNのモデリングの機会:再帰的ニューラルネットワーク(RNN)は、音声認識、時系列予測、画像キャプチャ、およびシーケンシャル情報の処理を必要とするその他のタスクに使用されます。 埋め込まれたRNNモデルはCNNフレームワーク間ではそれほど一般的ではないため、ディープラーニングプロジェクトを実装するときは、自分に合ったテクノロジを使用して他のオープンソースプロジェクトを研究することが重要です。 たとえば、Caffeには最小限のRNNモデリング機能がありますがMicrosoft CNTKとTorchには豊富なドキュメントセットと組み込みモデルがあります。 TensorflowにはいくつかのRNNのものもあり、 TFLearnKerasには、TensorFlowを使用した多数のRNNの例が含まれています。



アーキテクチャと使いやすいモジュラーユーザーインターフェイス:新しいモデルを作成およびトレーニングするには、フレームワークに使いやすいモジュラーユーザーインターフェイスが必要です。 たとえば、TensorFlow、Torch、およびMXNetが所有しており、直感的な開発環境を作成します。 これに対して、Caffeなどのフレームワークでは、新しいネットワークレイヤーを作成するためにかなりの労力が必要です。 また、特に、TensorFlowは、 TensorBoard GUIのおかげで、トレーニング中だけでなくトレーニング後にも簡単にデバッグできることがわかりました



速度:トーチとネルバナは、畳み込みニューラルネットワークのパフォーマンスをテストするときに最良の結果を示しました。 TensorFlowは同等の結果でテストに合格し、CaffeとTheanoはリーダーよりも大幅に遅れていました。 一方、Microsoft CNTKは、リカレントニューラルネットワーク(RNN)のトレーニングに最適であることが示されています。 Theano、Torch、およびTensorFlowを比較する別の研究の著者は、RNNトレーニングに関してTheanoを勝者として選択しました。



複数GPUのサポート:ほとんどのディープラーニングアルゴリズムには、信じられないほどのFLOPS(浮動小数点演算)が必要です。 たとえば、Baiduのパターン認識モデルであるDeepSpeechでは、トレーニングに10エクサフロップスが必要であり、これは10e18以上の計算です! GPU市場のリーダーの1つであるNVIDIAのPascal TitanXが1秒あたり11秒9フロップを実行できることを考えると 、十分に大きなデータアレイをトレーニングするには1週間以上かかります。 モデル作成時間を短縮するには、異なるシステムで異なるGPUを使用する必要があります。 幸いなことに、上記のツールのほとんどはこの機能を提供します。 特に、 MXNetには、複数のグラフィックカードを操作するための最も最適化されたエンジンの1つがあると考えられています。



Kerasの互換性: Kerasは、ディープラーニングアルゴリズムを迅速に実装するための高レベルのライブラリで、アナリストをフィールドに紹介するのに最適です。 Kerasは現在、TensorFlowとTheanoの2つのバックエンドをサポートしており、将来TensorFlowから公式のサポートを受けます。 さらに、その著者によれば 、ライブラリが複数のバックエンドで使用できるユーザーインターフェイスとして機能し続けるという事実は、Kerasに有利なことを物語っています。



したがって、ディープラーニングの分野での開発に関心がある場合は、まずチームとプロジェクトの能力と要件を適切に評価することをお勧めします。 たとえば、Python開発チームによる画像認識の場合、豊富なドキュメント、高性能、優れた設計ツールを備えたTensorFlowを使用するのが最良の選択肢です。 一方、Luaの専門家チームでRNNベースのプロジェクトを実装する場合、最良の選択肢はトーチとその驚くべき速度と、リカレントネットワークをモデル化する機能です。



伝記: Matthew Rubashkinは、光学物理学と生物医学研究の堅実な背景とともに、データベースと予測分析の開発、管理の経験があります。



===



4月8日に2回起動するDeep Learning プログラムでは 、KerasとCaffeの2つのライブラリを使用します。 前述のように、Kerasは高レベルのライブラリであり、迅速なプロトタイピングが可能です。 プログラムは同じTensorFlowを使用する方法を学ぶのに時間を費やす必要はありませんが、実際には異なることをすぐに試し、試すことができるため、これはプラスです。



Caffeは非常に便利ではありませんが、使用することも非常に理解しやすいですが、同時に実稼働ソリューションで使用することもできます。 レビューでは、最速としてマークされていません。 初期速度分析へのリンクをクリックすると、「TensorFlowとChainerはCaffeよりも高速であるように見えるかもしれませんが、実際にはそうではないかもしれません。これらのフレームワークはCuDNNで、Caffeはそのデフォルトエンジンでテストされているため」



All Articles