Deeplearning4j

Eclipse Deeplearning4j は、Java及びJava仮想マシン オープンソースのディープラーニングライブラリで、 多くのディープラーニングアルゴリズムをサポートする計算フレームワークである 。Deeplearning4jには、制限付きボルツマンマシン、ディープビリーフネット、ディープオートエンコーダー、積層雑音除去オートエンコーダー、再帰型ニューラルテンソルネットワーク、word2vec、 doc2vec、GloVeなどが実装されている。 これらのアルゴリズムはすべてHadoopやSparkと統合可能な分散型の並列バージョンを含んでいる 。Deeplearning4jは、スタートアップのSkymind社が商用サポートを行っていた。2020年より、deeplearning4jのサポートはSkymind社の子会社であるKonduit社に引き継がれた。 Deeplearning4jは、一般に広く使用されているプログラミング言語のJavaを使用しているが、Clojureとも互換性がありScalaのAPIを含んでいる。そのライブラリ内にある数値計算オープンソースライブラリであるND4Jを使用しており、CPUとGPUのどちらでも動作する 。Deeplearning4jは、 アダム・ギブソンの率いるサンフランシスコの機械学習グループによって主に開発されたオープンソースのプロジェクトである 。Deeplearning4jは、GoogleのWord2vecページにリストされた唯一のJavaで実装されたオープンソースのプロジェクトである。 Deeplearning4jは数多くの商業的、学術的アプリケーションに使用されている。コードは、GitHub、 サポートフォーラムは、Gitterにある。 フレームワークは、コンポーザブルであり、浅いネットワークである制限付きボルツマンマシン、畳み込みネットワーク、オートエンコーダー、再帰ネットワークなどのニューラルネットワークを組み合わせて様々な種類のディープネットワークを作ることができる。 Deeplearning4jの訓練は、クラスタで行われる。ニューラルネットは、Hadoop/YARN及びSparkで使用できるiterative reduceを経由して同時に訓練を受ける 。また、Deeplearning4jはCudaのカーネルに統合し、GPUの演算を行うことができ、分散型GPUにも対応している。 Deeplearning4jは、PythonにNumPyが提供する機能のように、ND4Jを使った JavaやScalaで計算できるn次配列クラスを含んでいる。ND4Jは、プロダクション環境における線的代数及びマトリクス操作のライブラリに基づいている。 DataVecは、 HadoopがMapReduceを使用するように、入力/出力フォーマットシステムを使って、様々なファイルフォーマット及びデータタイプをベクトル化[要説明] する。DataVecは、CSVファイル、画像、音声、テキスト、ビデオ、時系列データをベクトル化するように設計されている。 Deeplearning4jは、ベクトル空間モデル及びトピックモデルのツールキットを含み、Javaに実装され、パフォーマンス向上のために並列GPUを統合している。特に大量のテキスト処理が行えることを目的として作成された。 Deeplearning4jは、tf–idf、ディープラーニング、Mikolovの word2vecアルゴリズム、doc2vecを実装している。GloVeも再度実装され、最適化されている。ワードクラウドの視覚化には、t-SNEを使うことができる。バージョン1.0.0-beta4からは、BERTによる学習モデルの利用も可能となった。 実際にDeeplearning4jが使用されている分野には、金融部門における不正の検知、製造業などでの異常検知、電子商取引や広告のレコメンダシステム、 画像認識などがある。RapidMinerやPrediction.ioなどその他の機械学習プラットフォームも統合している。 en:OpenNN－C++言語によるディープラーニング用のオープンソースのニューラルネットワークライブラリ Torch－スクリプト言語 Luaによるオープンソースのフレームワーク。機械学習アルゴリズムを広くサポートする。 Theano－Pythonのディープラーニング用のオープンソースのライブラリ en:Neuroph ポータル FLOSS en:Comparison of deep learning frameworks（英語） 人工知能 機械学習 ディープラーニング ^ Metz, Cade (2014年6月2日). “The Mission to Bring Google's AI to the Rest of the World”. Wired.com. 2014年6月28日閲覧。 ^ Vance, Ashlee (2014年6月3日). “Deep Learning for (Some of) the People”. Bloomberg Businessweek. 2014年6月28日閲覧。 ^ Novet, Jordan (2015年11月14日). “Want an open-source deep learning framework? Take your pick”. VentureBeat. 2015年11月24日閲覧。 ^ TV, Functional (2015年2月12日). “Adam Gibson, DeepLearning4j on Spark and Data Science on JVM with nd4j, SF Spark @Galvanize 20150212”. SF Spark Meetup. 2015年3月1日閲覧。 ^ Harris, Derrick (2014年6月2日). “A startup called Skymind launches, pushing open source deep learning”. GigaOM.com. 2014年6月29日閲覧。 ^ Novet, Jordan (2014年6月2日). “Skymind launches with open-source, plug-and-play deep learning features for your app”. 2014年6月29日閲覧。 ^ “Github Repository”. 2014年6月29日閲覧。 ^ a b “deeplearning4j.org”. 2017年4月15日閲覧。 ^ “Crunchbase Profile”. 2014年6月29日閲覧。 ^ “Google Code”. 2014年6月29日閲覧。 ^ “Deeplearning4j source code”. 2015年3月1日閲覧。 ^ Deeplearning4j Gitter Support Channel ^ “Iterative reduce”. 2014年6月29日閲覧。 ^ “Add Bert Word Piece Tokenizer #7141”. 2019年11月21日閲覧。 ^ “Add BertIterator (MultiDataSetIterator for BERT training) #7430”. 2019年11月21日閲覧。 ^ http://www.skymind.io/finance/%7Caccessdate=2015-03-01 ^ http://www.skymind.io/commerce/ ^ https://www.rapidminerchina.com/en/products/shop/product/deeplearning4j/ 公式ウェブサイト “Deeplearning4jのGithubリポジトリ”. 2015年3月1日閲覧。 “Deeplearning4j vs. Torch vs. Caffe vs. Theano”. 2015年3月1日閲覧。（英語） “Canova: A General Vectorization Lib for Machine Learning”. 2015年3月1日閲覧。（英語） “ND4J: N-Dimensional Arrays for Java and Scala, A Linear Algebra Library”. 2015年3月1日閲覧。（英語） “Apache Flink”. 2015年3月1日閲覧。（英語） “Java Magazine by Oracle: Deep Learning in Java”. 2015年3月1日閲覧。（英語） “Deeplearning4jのGitterチャットコミュニティ”. 2015年3月1日閲覧。