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

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

[[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 初の開発者コンテストが始まりました!

ブログ    
ブログ    
ブログ    

推薦する

2020 年に慈善活動を変える主要なテクノロジー トレンドのリスト

チャリティーは常に実行速度が遅いことで知られています。慈善団体が社会、経済、環境の変化に対応するには...

機械学習の 3 つの時代の計算パワーの法則をまとめる: 大規模モデルの出現によって何が変わったのでしょうか?

図 1: 1950 年から 2022 年までの 118 の重要な機械学習システムの傾向。私たちは3つ...

...

ビル・ゲイツ氏:GPT-5はGPT-4よりそれほど良くはならない、生成AIは限界に達した

ビル・ゲイツ氏の暴露は機械学習コミュニティで話題となっている。 「GPT-5 は GPT-4 よりそ...

ユーザーはChatGPTが怠惰になったと不満を述べ、OpenAIはモデルを調整しておらず原因を調査中であると回答した。

12月12日、OpenAIの最新バージョンのチャットボットChatGPTが「怠惰」になったと不満を...

クアルコム副社長ライナー・クレメント氏:「5G+AI+クラウド」は将来の産業をどのように変えるのでしょうか?

2019年国際産業インターネット革新・開発フォーラムがこのほど、第2回中国国際輸入博覧会で開催され...

指紋認証は本当に安全ですか?答えはそうではないかもしれない

科学技術の継続的な発展に伴い、ますます多くのブラックテクノロジーが私たちの生活に浸透し始めており、そ...

...

App Storeが検索アルゴリズムを大幅に変更:名前よりも人気に重点を置く

アメリカのテクノロジーブログ「TechCrunch」の主要寄稿者であるMG Siegler氏によると...

NLP の学習を始める準備ができました。体系的に読むべき本やコースは何ですか?

私は、機械学習コミュニティで手動の特徴エンジニアリングが非常に人気があった 2013 年から自然言語...

ChatGPT がアジャイル専門家向けに用意した面接の質問は役に立ちますか?

翻訳者 |李睿レビュー | Chonglouアジャイルコーチのステファン・ウォルパーズ氏は、 Ope...

60年ぶり! AI が新しい抗生物質の最初のバッチを発見し、MIT の主要な研究が Nature に掲載されました。人類はスーパーバグとの戦いに希望を持っている

60年間、人類は抗生物質の研究において大きな進歩を遂げていません。しかし、このギャップはAIによって...

ドローン技術を都市計画に活用

ドローン技術は、都市計画がスマートシティを形成する方法を再定義するでしょう。都市計画は変化しており、...

ジャック・マー:テクノロジーは私たちの生活をより健康にしなければ意味がない

9月17日から19日まで、上海で「人工知能が新時代を力づける」をテーマにした2018年世界人工知能大...