ディープラーニングは本当にゼロから始められるのでしょうか?

ディープラーニングは本当にゼロから始められるのでしょうか?

[[203908]]

誰かが尋ねた

  1. ディープラーニング — どこから始めればよいですか?
  2. 今はTensorFlowが一番人気ですよね?
  3. Caffe はよく使われると聞きましたが、難しすぎますか?

テンソルフロー

ディープラーニングについて聞いたことはあっても、あまり深く理解していない人にとって、TensorFlow はお気に入りのディープラーニング フレームワークですが、ここでいくつかの事実を明らかにしておきましょう。

TensorFlow の公式サイトでは、「機械学習のためのオープンソースソフトウェアライブラリ」と定義されていますが、次のように定義するべきだと思います。TensorFlow は、数値計算にデータフローグラフを使用するオープンソースソフトウェアライブラリです。ここでは、TensorFlow を「ディープラーニング フレームワーク」の範囲に含めるのではなく、Theano とともに「グラフ コンパイラ」のカテゴリに含めます。

Udacity のディープラーニング コース (https://www.udacity.com/course/deep-learning–ud730) を修了した後、TensorFlow は非常に優れたフレームワークですが、非常に低レベルであると感じました。 TensorFlow を使用するには、大量のコードを記述する必要があり、何度も車輪の再発明をしなければなりません。そう思っているのは私だけではありません。

テアノ

Theano は最も古く、最も安定したライブラリの 1 つです。私の知る限り、ディープラーニング ライブラリの始まりは Caffe か Theano のどちらかです。

TensorFlow と同様に、Theano は比較的低レベルのライブラリです。そのため、ディープラーニングには適していませんが、数値計算の最適化に適しています。自動関数勾配計算をサポートし、Python インターフェースを持ち、Numpy を統合しているため、一般的なディープラーニングの分野では最初から最もよく使用されるライブラリの 1 つとなっています。

ケラス

「あなたはケラスを見つけました。」

上記の文は、ドキュメント ページを開いたときに最初に表示される文です。始めるのに十分なディープラーニングの知識はありましたが、自分で機能を手動でコーディングする時間も、新しいライブラリを調べて学習する時間もありませんでした (締め切りは 2 か月未満で、受講する授業もありました)。それから私はKerasを発見しました。

Keras は構文が非常に明確で、ドキュメントも非常に充実しており (比較的新しいですが)、私がすでに知っている言語である Python をサポートしているため、とても気に入っています。非常にシンプルで使いやすく、指示、機能、各モジュールのリンク方法を直感的に理解できます。

Keras は、Theano および TensorFlow (構成可能) 上で動作する非常に高レベルのライブラリです。さらに、Keras はミニマリズムを重視しており、わずか数行のコードでニューラル ネットワークを構築できます。

ラザニア

Lasagne は Theano 上で動作するライブラリです。その使命は、ディープラーニング アルゴリズムによる複雑な計算を簡素化するとともに、より使いやすいインターフェース (Python でも) を提供することです。これは古いライブラリであり、長い間非常に拡張性の高いツールでしたが、私の意見では、Keras ほど速く開発されていません。どちらも同様の領域をカバーしていますが、Keras の方がドキュメントが充実しており、より完全です。

カフェ

Caffe は単に最も古いフレームワークの 1 つというだけでなく、最も古いフレームワークの中でも最も古いものです。

私の意見では、Caffe には非常に優れた機能がありますが、小さな欠点もいくつかあります。もともと汎用的なフレームワークではなく、コンピュータービジョンのみに焦点を当てていましたが、汎用性が非常に優れています。私たちの研究室での実験では、Caffe での CaffeNet アーキテクチャのトレーニング時間は、Keras (Theano バックエンドを使用) よりも 5 倍短くなりました。 Caffe の欠点は、柔軟性が十分ではないことです。工夫したい場合は、C++ と CUDA でプログラミングする必要がありますが、若干の変更を加えることで Python または Matlab インターフェイスを使用することもできます。

Caffe のドキュメントは非常に貧弱です。コードを理解するには、多くの時間を費やして調べる必要があります (Xavier の初期化は何のためですか? Glorot とは何ですか?)

Caffe の最大の欠点の 1 つは、インストールです。対処すべき依存関係が山ほどあります... Caffe を 2 回インストールしましたが、本当に面倒でした。

しかし、はっきり言って、Caffe はまったく役に立たないわけではありません。 Caffe は、生産準備が整ったコンピューター ビジョン システム向けのツールの分野では誰もが認めるリーダーです。非常に堅牢で、非常に高速です。私のアドバイスは、実験とテストには Keras を使用し、本番環境では Caffe に移行することです。

DSSTNE

DSSTNE は Destiny と同じように発音されますが、見過ごされがちな非常に優れたフレームワークです。なぜでしょうか? 他の要因とは別に、このフレームワークは汎用的ではなく、一般的な共通タスク向けに設計されていないことが理由です。 DSSTNE フレームワークは推奨システムという 1 つの機能だけを実行しますが、それを完璧に実行します。 DSSTNE フレームワークは、研究やアイデアのテスト (公式 Web サイトのスローガンより) のためではなく、大量生産のために設計されています。

私たちは BEEVA でいくつかの実験を行いましたが、これは非常に高速なツールであり、非常に優れた結果 (高い平均精度 - mAP) が得られると感じています。この速度を実現するために、DSSTNE フレームワークは GPU 上で実行されますが、これも欠点の 1 つです。この記事で分析した他のフレームワークやライブラリとは異なり、このフレームワークはユーザーが CPU と GPU を自由に切り替えることをサポートしていません。これは一部の試行では役立つかもしれませんが、DSSTNE でそのような試行を行うと、フレームワークによって許可されません。

また、このフレームワークにはプログラミングスキルは必要ないことも指摘しておきます。 DSSTNE フレームワークは、端末のコマンド ラインを通じて関連する操作を実行します。

これまでのところ、人気があるとわかっているフレームワークやライブラリをあまり使用していないため、より具体的な詳細を説明することはできません。

トーチ

この世には毎日多くの戦争が起こっていますが、優れた「戦士」(スペイン語で「ゲレーロ」)は、どの戦争で戦う必要があるのか​​、どの戦争には参加しないことを選択できるのかを知らなければなりません。

Torchは非常に有名なフレームワークです。なぜなら、巨大企業Facebookの人工知能研究で使われているフレームワークがTorchであり、DeepMindもGoogleに買収される前はTorchを使用していたからです(買収後、DeepMindはTensorFlowに切り替えました)。 Torch のプログラミング言語は Lua です。これが先ほど私が「戦争」について述べたことです。ほとんどのディープラーニングプログラミング言語が Python で実装されている現在の傾向では、プログラミング言語として Lua を使用するフレームワークの最大の欠点はこれです。私はこの言語を使ったことがないので、Torch ツールを使いたいのであれば、まず Lua 言語を学んでから Torch を使う必要があることは間違いありません。これは確かに合理的なプロセスですが、個人的には、Python、Matlab、または C++ での実装を好みます。

MXネット

mxnet は、Python、R、C++、Julia など、ほとんどのプログラミング言語をサポートするフレームワークの 1 つです。しかし、R 言語を使用する開発者は特に mxnet を好むと思います。なぜなら、Python は依然としてディープラーニング言語のリーダーとして文句なしだからです (Python 対 R、私はどちらの側に立つと思いますか? :-p)

正直に言うと、私はこれまで mxnet にあまり注意を払っていませんでした。しかし、Amazon AWS がディープラーニング AMI のライブラリとして mxnet を選択したと発表したことがきっかけで、私は mxnet に注目し始めました。調べなければなりません。その後、Amazon が mxnet をディープラーニングのリファレンス ライブラリとして挙げており、その巨大な水平スケーラビリティを主張していることを知りました。何か新しいことが起こっているような気がして、それをもっとよく知る必要があると思いました。これが、mnxet が 2017 BEEVA 技術テスト リストに含まれている理由です。

複数の GPU へのスケーリングについては少し懐疑的であり、そのような実験の詳細をもっと知りたいのですが、現時点では mxnet についてはまだ懐疑的です。

DL4J

私はドキュメントのおかげでこのライブラリを見つけました。当時、私は制限付きボルツマン マシンとオートエンコーダを探していて、DL4J でこれら 2 つのドキュメントを見つけました。ドキュメントは非常に明確で、理論とコード例の両方が含まれています。 DL4J のドキュメントは芸術作品であると言わざるを得ません。他のライブラリは、コードをドキュメント化する際に、そこから学ぶ必要があります。

DL4J の開発元である Skymind 社は、ディープラーニング コミュニティでは Python がリーダーであるものの、ほとんどのプログラマーは Java からスタートしているため、解決策を見つける必要があることに気付きました。 DL4J は JVM と互換性があり、Java、Clojure、Scala にも適しています。Scala の浮き沈みにより、多くの潜在的なスタートアップでも使用されているため、このライブラリを引き続きフォローしていきます。

さらに、Skymind の Twitter アカウントは非常に活発で、最新の科学論文、事例、チュートリアルを常に公開しており、すべての人にフォローを推奨しています。

認知ツールキット

Cognitive Toolkit は以前は CNTK という略称で知られていましたが、最近、Microsoft Cognitive Services の最新版を活用するため、再び Cognitive Toolkit に名前が変更されました。公開ベンチマークでのパフォーマンスから判断すると、このツールは非常に強力で、垂直スクロールと水平スクロールの両方をサポートしているようです。

今のところ、Cognitive Toolkit はあまり人気がないようです。このライブラリの使用に関するブログ投稿、オンラインラボの例、Kaggle のレビューはあまり見かけません。しかし、私にとっては、Microsoft Research が支援するフレームワークがその前進力を強調するのは少し奇妙に思えます。結局のところ、Microsoft Research チームは音声認識の世界記録を破り、人間のレベルに近づいたのです。

プロジェクトの wiki の例を見ると、Python の Cognitive Toolkit の構文が Keras と非常に似ている (Cognitive Toolkit は C++ もサポートしている) ことがわかり、Keras が正しい方法であると考えました (確認したわけではありません)。

この分野に進みたいなら、まず Python を学ぶべきです。この分野では他にも多くの言語がサポートされていますが、最も広く使用されており、最もシンプルなのは Python です。

初心者であればKerasを使い、初心者でなくてもKerasを使うことができます。 Kaggle のコンペに参加したことがあるなら、Kaggle の 2 つのスーパースターである Keras と XGBoost に気づいたはずです。

最近のディープラーニングの流行についてどう思いますか?

上記のライブラリのうちどれを好みますか? 理由は何ですか?

ディープラーニングは本当にゼロから始められるのでしょうか?どう思いますか?

<<:  プライベートコレクション、オープンソースのトップディープラーニングプロジェクト9つ

>>:  イノベーションに関する対話 - 51CTO 初の開発者コンテストが始まりました!

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

スマートテクノロジーが現代のビジネス運営を強化する7つの方法

スマート テクノロジーは、あらゆる業界の企業に無限のチャンスをもたらします。小さな変更でも、企業を完...

...

6 つの大きな障害に直面していますが、AI イノベーションはそれらをうまく克服できるでしょうか?

現状では、人工知能業界は消費者からの需要が大きく、投資家からの関心も高く、非常に活況を呈しているよう...

ビッグデータとAIの未来は1つに集約される

ビッグデータ、分析、AI に関しては、価値はデータの収集から(あるいはそこから何らかの洞察を引き出す...

このCVデータセットジェネレーターは人気があり、DeepMindなどが作成した13種類のCVタスクをサポートしています。

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

2018 CCF BDCIコンペティションのグローバルローンチ:データ駆動型、スマートな未来

8月11日、2018年のCCFビッグデータ&Computational Intelligenceコン...

トヨタ・リサーチ・インスティテュート、AIを活用した自動車設計ツールを発表

トヨタ・リサーチ・インスティテュートは、この新しい革新的な生成AIツールにより、デザイナーは効率的か...

ディープラーニングにおける正規化技術の包括的な概要

ディープニューラルネットワークのトレーニングは困難な作業です。 長年にわたり、研究者たちは学習プロセ...

...

人気の「GPT-4 MIT学部数学フルスコア」論文が不正、データセット自体に問題あり

過去 2 日間で、GPT-4 が MIT EECS と数学の学部試験に満点で合格したという論文が T...

Weibo での PageRank アルゴリズムの適用

このアイデアは、かなり早い段階で思いつきました。私は検索エンジンの経験があるため、検索エンジンにおけ...