Deeplearning4jとは何か?
Deeplearning4j(以下DL4J)はJava, Scalaで書かれた世界初商用グレードで、オープンソースの分散ディープラーニング・ライブラリです。Hadoopや Sparkと連携することにより研究、調査目的に加えて実際のビジネスに活かせるように作られています。Skymindは、その商業的サポートを行っています。
DL4Jは最先端のプラグ&プレイテクノロジーを駆使し、設定よりも非研究者でも手軽にプロトタイピングできるように作られています。DL4Jはスケーラブルでカスタマイズ可能です。Apache 2.0で配布されており、DL4Jの派生物はすべてその著者に帰属します。
弊社のクイックスタートにある手順に従いさえすれば、初めてのニューラルネットワークのexampleを数分で使用することができます。
Deep Learningのユースケース
- 顔/画像認識
- 音声検索
- 音声の文字化
- スパムフィルタ
- 不正検出
- レコメンダーシステム(CRM、adtech、解約防止)
- 回帰
なぜDeeplearning4jなのか?
- JavaとScalaにとって汎用的なn次元配列クラス
- GPUと連携
- HadoopやSparkで動作するスケーラビリティ
- Canova: 機械学習に使用する一般的なベクトル化ツール
- ND4J: Numpyの2倍ほども迅速な線形代数ライブラリ
Deeplearning4jは、分散型で、マルチスレッドであるディープラーニングのフレームワークと通常のシングルスレッドであるディープラーニングのフレームワークの両方を持っています。学習はクラスタで行われるため、大量のデータを素早く処理することができます。ネットワークは、iterative reduce経由で学習させます。ネットワークはどれも等しくJavaやScala、Clojureと互換性があります。Deeplearning4jは、オープンスタックでモジュラーコンポーネントとしての役割を担いますが、これは、ディープラーニングのフレームワークとしては、初めてmicro-service architecture(マイクロサービスアーキテクチャ)に適応したものです。
DL4Jのニューラルネットワーク
- 制限付きボルツマン・マシン
- 畳込みネットワーク (画像)
- 回帰ネットワーク/LSTMs (時系列、センサーデータ)
- 再帰的オートエンコーダー
- ディープ・ビリーフ・ネットワーク
- Deepオートエンコーダー (質問-回答/データ圧縮)
- 再帰的ニューラルテンソルネットワーク (シーン、構文解析)
- Stacked Denoising Autoencoders (sdA)
- 詳細については、「How to Choose a Neural Net(ニューラルネットワークの選び方)」をお読みください。
ディープ・ニューラル・ネットワークは、驚異的な精確さを実現します。ニューラルネットワークの概要を簡単に知りたい方は、こちらをお読みください。手短に言うと、Deeplearning4jにより、様々な浅いネットワークを使って「レイヤー(層)」と呼ばれるものを形成し、ディープ・ニューラル・ネットワークを構成することができます。このように柔軟性が高いため、分散型のCPU、GPU、そしてSparkやHadhoopと連携した分散型フレームワークが必要に応じて、制限付きボルツマン・マシン、その他のオートエンコーダー、畳込みネットワーク、または再帰ネットワークを組み合わせることができます。
以下は、弊社が構築した様々なライブラリ、そして、それらのライブラリがそれらを取り巻くシステムのどこに位置するのかを図式化したものです。
ディープラーニングで学習させるときには非常に多くのパラメタを調整することになります。Deeplearning4jをDIY(自助)ツールとして、JavaやScala、Clojureのプログラマーの方々がご利用できるよう、ご説明して参りました。
分からないことなど質問があれば、是非、Gitterにご連絡ください。プレミアムサポートをご希望の方は、Skymindまでご連絡ください。ND4Jは、Javaベースの科学的計算エンジンで、弊社の行列演算に使われています。弊社にて、大規模な行列で測定したところ、その処理速度は、Numpyの約2倍の速さでした。
Deeplearning4jのチュートリアル
- ディープ・ニューラル・ネットワークのご紹介
- 制限付きボルツマン・マシン
- 固有ベクトル、PCA(主成分分析)、エントリピー
- Word2vec
- 畳込みネットワークのチュートリアル
- LSTMと回帰ネットワークのチュートリアル
- 回帰ネットワークをDL4Jに使用しましょう
- ディープ・ビリーフ・ネットワークとMNIST
- Customizing Data Pipelines With Canovaを使った Data Pipelineのカスタマイズ
- ディープラーニング用語集
ユーザーの方々の声
「まるでフランケンシュタイン、あの医者になったような気分だ...」 - Steve D.
「deeplearning4jを使うことについて、こちら製造部門ではかなりの熱意を持っている。何十億ポンドの市場価値が期待できるからだ。」 -John M.
Deeplearning4jに貢献したい方々へ
Deeplearning4jに貢献したい開発者の方々は、Developer’s Guide(開発者のガイド)をお読みになるといいでしょう。
Deeplearning4jの研究
- スタンフォード大学の自然言語処理(NLP):”Large-Scale Language Classification(大規模な言語分類)”