Deeplearning4j

Eclipse Deeplearning4j は、Java及びJava仮想マシン オープンソースのディープラーニングライブラリで、 多くのディープラーニングアルゴリズムをサポートする計算フレームワークである 。Deeplearning4jには、制限付きボルツマンマシン、ディープビリーフネット、ディープオートエンコーダー、積層雑音除去オートエンコーダー、再帰型ニューラルテンソルネットワーク、word2vec、 doc2vec、GloVeなどが実装されている。 これらのアルゴリズムはすべてHadoopやSparkと統合可能な分散型の並列バージョンを含んでいる 。Deeplearning4jは、スタートアップのSkymind社が商用サポートを行っていた。2020年より、deeplearning4jのサポートはSkymind社の子会社であるKonduit社に引き継がれた。
概要.
Deeplearning4jは、一般に広く使用されているプログラミング言語のJavaを使用しているが、Clojureとも互換性がありScalaのAPIを含んでいる。そのライブラリ内にある数値計算オープンソースライブラリであるを使用しており、CPUとGPUのどちらでも動作する 。Deeplearning4jは、 アダム・ギブソンの率いるサンフランシスコの機械学習グループによって主に開発されたオープンソースのプロジェクトである 。Deeplearning4jは、GoogleのWord2vecページにリストされた唯一のJavaで実装されたオープンソースのプロジェクトである。
Deeplearning4jは数多くの商業的、学術的アプリケーションに使用されている。コードは、GitHub、 サポートフォーラムは、Gitterにある。
フレームワークは、コンポーザブルであり、浅いネットワークである制限付きボルツマンマシン、畳み込みネットワーク、オートエンコーダー、再帰ネットワークなどのニューラルネットワークを組み合わせて様々な種類のディープネットワークを作ることができる。
分散型.
Deeplearning4jの訓練は、クラスタで行われる。ニューラルネットは、Hadoop/YARN及びSparkで使用できるiterative reduceを経由して同時に訓練を受ける 。また、Deeplearning4jはCudaのカーネルに統合し、GPUの演算を行うことができ、分散型GPUにも対応している。
JVMでの科学的計算.
Deeplearning4jは、PythonにNumPyが提供する機能のように、ND4Jを使った JavaやScalaで計算できるn次配列クラスを含んでいる。ND4Jは、プロダクション環境における線的代数及びマトリクス操作のライブラリに基づいている。
機械学習のためのDataVecベクトル化ライブラリ.
DataVecは、 HadoopがMapReduceを使用するように、入力/出力フォーマットシステムを使って、様々なファイルフォーマット及びデータタイプをベクトル化 する。DataVecは、CSVファイル、画像、音声、テキスト、ビデオ、時系列データをベクトル化するように設計されている。
文書と自然言語処理.
Deeplearning4jは、ベクトル空間モデル及びトピックモデルのツールキットを含み、Javaに実装され、パフォーマンス向上のために並列GPUを統合している。特に大量のテキスト処理が行えることを目的として作成された。
Deeplearning4jは、tf–idf、ディープラーニング、Mikolovの word2vecアルゴリズム、doc2vecを実装している。GloVeも再度実装され、最適化されている。ワードクラウドの視覚化には、を使うことができる。バージョン1.0.0-beta4からは、BERTによる学習モデルの利用も可能となった。
使用事例と統合例.
実際にDeeplearning4jが使用されている分野には、金融部門における不正の検知、製造業などでの異常検知、電子商取引や広告のレコメンダシステム、 画像認識などがある。RapidMinerやPrediction.ioなどその他の機械学習プラットフォームも統合している。