ディープラーニング4j

Eclipse ディープラーニング 4j
原作者アレックス・D・ブラック、アダム・ギブソン、ヴィアチェスラフ・ココリン、ジョシュ・パターソン
開発者Kondiut KKと寄稿者
安定版リリース
1.0.0-M2.1 / 2022年8月17日[ 1 ] ( 2022-08-17 )
リポジトリ
書かれたJavaCUDACC++
オペレーティング·システムLinuxmacOSWindowsAndroidiOS
プラットフォームCUDAx86ARMPowerPC
入手可能な英語
タイプ自然言語処理ディープラーニングマシンビジョン人工知能
ライセンスApacheライセンス2.0
Webサイトhttps://deeplearning4j.konduit.ai/

Eclipse Deeplearning4jは、 Java仮想マシン(JVM)用にJavaで書かれたプログラミングライブラリです。[ 2 ] [ 3 ]これは、幅広い深層学習アルゴリズムをサポートするフレームワークです。 [ 4 ] Deeplearning4jには、制限付きボルツマンマシンディープビリーフネット、ディープオートエンコーダ、スタックドデノイズオートエンコーダ、再帰ニューラルテンソルネットワークword2vec、doc2vec、GloVeの実装が含まれています。これらのアルゴリズムにはすべて、Apache HadoopおよびSparkと統合された分散並列バージョンが含まれています。[ 5 ]

Deeplearning4jはApache License 2.0の下でリリースされたオープンソースソフトウェアであり、[ 6 ]サンフランシスコに本社を置く機械学習グループによって主に開発されています。[ 7 ]これはスタートアップのSkymindによって商業的にサポートされており、同社はDL4J、TensorFlowKerasなどのディープラーニングライブラリをSkymind Intelligence Layerと呼ばれるエンタープライズディストリビューションにバンドルしています。[ 8 ] Deeplearning4jは2017年10月にEclipse Foundationに寄贈されました。[ 9 ] [ 10 ]

導入

Deeplearning4jは広く使用されているプログラミング言語Javaをベースにしていますが、 Clojureと互換性があり、 Scalaアプリケーションプログラミングインターフェース(API)も備えています。独自のオープンソース数値計算ライブラリND4Jを搭載しており、中央処理装置(CPU)とグラフィックス処理装置(GPU)の両方で動作します。[ 11 ] [ 12 ]

Deeplearning4jは、いくつかの商用および学術的なアプリケーションで使用されています。コードはGitHubでホストされています。[ 13 ]サポートフォーラムはGitterで管理されています。[ 14 ]

このフレームワークは構成可能であり、制限ボルツマンマシン、畳み込みネット、オートエンコーダ、リカレントネットなどの浅いニューラルネットを相互に追加して、様々なタイプの深いネットを作成することができます。また、豊富な可視化ツール[ 15 ]と計算グラフ[ 16 ]も備えています。

分散型

Deeplearning4jによる学習はクラスター内で行われます。ニューラルネットは、Hadoop -YARNとSparkで動作する反復的reduceを介して並列に学習されます。[ 7 ] [ 17 ] Deeplearning4jはCUDAカーネルと統合して純粋なGPU演算を実行し、分散GPUでも動作します。

JVM 向け科学計算

Deeplearning4jには、JavaとScalaで科学計算を可能にするND4Jを使用したn次元配列クラスが含まれています。これは、 NumPyがPythonに提供する関数に似ています。これは、実稼働環境で 線形代数行列操作を行うためのライブラリに基づいています。

機械学習用DataVecベクトル化ライブラリ

DataVecは、HadoopのMapReduceに類似した入出力フォーマットシステムを用いて、様々なファイル形式とデータ型をベクトル化します。つまり、様々なデータ型をベクトルと呼ばれるスカラー列に変換します。DataVecは、CSV、画像、音声、テキスト、ビデオ、時系列をベクトル化するように設計されています。[ 18 ] [ 19 ]

テキストとNLP

Deeplearning4jには、 Javaで実装され、並列GPUと統合することでパフォーマンスを向上させるベクトル空間モデリングおよびトピックモデリングツールキットが含まれています。大規模なテキストセットを処理できるように設計されています。

Deeplearning4jには、単語頻度-逆文書頻度(tf-idf)、ディープラーニング、Mikolovのword2vecアルゴリズム[ 20 ] 、doc2vec、GloVeの実装が含まれており、これらはJavaで再実装および最適化されています。単語クラウドの可視化には、 t分布確率的近傍埋め込み(t-SNE)を利用しています。

実際のユースケースと統合

Deeplearning4jの実際の使用例には、ネットワーク侵入検知とサイバーセキュリティ、金融セクターの不正検出[ 21 ] [ 22 ]、製造業などの業界における異常検出、電子商取引と広告の推奨システム[ 23 ] 、画像認識[ 24 ]などがあります。Deeplearning4jは、RapidMiner、Prediction.io、 [ 25 ]Wekaなどの他の機械学習プラットフォームと統合されています。[ 26 ]

機械学習モデルサーバー

Deeplearning4jは、Skymind Intelligence LayerであるSKILの無料開発者版を使用して、本番環境で推論用の機械学習モデルを提供します。[ 27 ] [ 28 ]モデルサーバーは、データに関する意思決定を行うパラメトリック機械学習モデルを提供します。これは、データパイプラインとモデルトレーニングの後に、機械学習ワークフローの推論段階で使用されます。モデルサーバーは、データサイエンス研究を実際の本番環境に展開するためのツールです。

インターネットにおけるWebサーバーの役割は、AIにおけるモデルサーバーの役割と同じです。WebサーバーがHTTPリクエストを受信して​​Webサイトに関するデータを返すのに対し、モデルサーバーはデータを受け取り、そのデータに関する判断や予測を返します。例えば、画像が送信された場合、モデルサーバーはその画像のラベルを返し、写真に写っている顔や動物を識別します。

SKIL モデル サーバーは、Tensorflow、Keras、Theano、CNTK などの Python フレームワークからモデルをインポートできるため、ディープラーニング モデルの導入における大きな障壁を克服できます。

ベンチマーク

Deeplearning4jは、複数のGPUを用いた非自明な画像認識タスクにおいて、Caffeと同等の速度を発揮します。[ 29 ] JVM上のHPCに不慣れなプログラマーにとって、ニューラルネットワークの学習時間を最適化するには、調整が必要なパラメータがいくつかあります。ヒープ領域の設定、ガベージコレクションアルゴリズム、オフヒープメモリの採用、ETL高速化のためのデータの事前保存(ピクルリング)などです。[ 30 ]これらの最適化を組み合わせることで、Deeplearning4jのパフォーマンスは10倍向上します。

API言語: Java、Scala、Python、Clojure、Kotlin

Deeplearning4jは、Java、Scala、Python、Clojure、Kotlinなど、複数のAPI言語で利用できます。Scala APIはScalNetと呼ばれています。[ 31 ] KerasはPython APIとして機能します。[ 32 ] ClojureラッパーはDL4CLJとして知られています。[ 33 ]ディープラーニングに必要な大規模な数学演算を実行するコア言語は、C、C++、CUDA Cです。

Tensorflow、Keras、Deeplearning4j

Tensorflow、Keras、Deeplearning4jは連携して動作します。Deeplearning4jは、Kerasで作成されたモデルであれば、Tensorflowや他のPythonフレームワークからインポートできます。[ 34 ]

参照

参考文献

  1. ^ "Tags · eclipse/deeplearning4j" . github.com . 2025年10月9日閲覧
  2. ^ Metz, Cade (2014年6月2日). 「GoogleのAIを世界へ広めるミッション」 . Wired.com . 2014年6月28日閲覧。
  3. ^ Vance, Ashlee (2014年6月3日). 「(一部の)人々のためのディープラーニング」 . Bloomberg Businessweek . 2014年6月4日時点のオリジナルよりアーカイブ。 2014年6月28日閲覧
  4. ^ Novet, Jordan (2015年11月14日). 「オープンソースのディープラーニングフレームワークをお探しですか? ぜひお選びください」 . VentureBeat . 2019年12月18日時点のオリジナルよりアーカイブ。 2015年11月24日閲覧
  5. ^ 「Adam Gibson、Spark 上の DeepLearning4j と nd4j を使用した JVM 上のデータサイエンス、SF Spark @Galvanize 20150212」。SF Spark ミートアップ。2015年2月12日。 2015年3月1日閲覧
  6. ^ 「Githubリポジトリ」 . GitHub . 2020年4月.
  7. ^ a b「deeplearning4j.org」
  8. ^ 「Skymind Intelligence Layer Community Edition」2017年11月7日時点のオリジナルよりアーカイブ2017年11月2日閲覧。
  9. ^ 「Eclipse Deeplearning4j プロジェクトページ」 2017年6月22日。
  10. ^ 「SkymindのDeeplearning4j、Eclipse Foundation、そしてJVMにおける科学計算」 Jaxenter 2017年11月13日。 2017年11月15日閲覧
  11. ^ Novet, Jordan (2016年9月28日). 「ディープラーニングスタートアップのSkymindが300万ドルを調達、Intelligence Layerの配信を開始」 . VentureBeat .
  12. ^ Novet, Jordan (2014年6月2日). 「Skymind、オープンソースでプラグアンドプレイのディープラーニング機能をアプリに搭載してリリース」 . VentureBeat .
  13. ^ "deeplearning4j/deeplearning4j" . 2023年4月29日. 2023年4月29日閲覧– GitHub経由.
  14. ^ "Element" . app.gitter.im . 2023年4月29日閲覧
  15. ^ 「Deeplearning4j Visualization Tools」 . 2017年8月10日時点のオリジナルよりアーカイブ2016年8月17日閲覧。
  16. ^ 「Deeplearning4j Computation Graph」 2017年8月10日時点のオリジナルよりアーカイブ2016年8月17日閲覧。
  17. ^ 「反復的な削減」 . GitHub . 2020年3月15日.
  18. ^ 「機械学習のためのDataVec ETL」 。 2017年10月2日時点のオリジナルよりアーカイブ2016年9月18日閲覧。
  19. ^ 「ディープラーニングによる時系列データの異常検出」 InfoQ 20234月29日閲覧
  20. ^ 「Google Code アーカイブ - Google Code プロジェクト ホスティング用の長期ストレージ」 . code.google.com . 2023年4月29日閲覧
  21. ^ “アーカイブコピー” . 2016年3月10日時点のオリジナルよりアーカイブ2016年2月22日閲覧。{{cite web}}: CS1 maint: アーカイブされたコピーをタイトルとして (リンク)
  22. ^ "skymind.ai" . skymind.ai . 2023年4月29日閲覧
  23. ^ “アーカイブコピー” . 2016年3月10日時点のオリジナルよりアーカイブ2016年2月22日閲覧。{{cite web}}: CS1 maint: アーカイブされたコピーをタイトルとして (リンク)
  24. ^ "skymind.ai" . skymind.ai . 2023年4月29日閲覧
  25. ^ “DeepLearning4J(Stable) | RapidMiner China” . www.rapidminerchina.com . 2016年5月18日時点のオリジナルよりアーカイブ2022年5月22日閲覧。
  26. ^ 「WekaDeeplearning4j: Wekaを使用したディープラーニング」 . deeplearning.cms.waikato.ac.nz . 2023年4月29日閲覧
  27. ^ “製品” . 2017年9月21日時点のオリジナルよりアーカイブ2017年9月20日閲覧。
  28. ^ 「ディープラーニングとAIのためのモデルサーバー - Deeplearning4j: JVM向けのオープンソース分散ディープラーニング」 。 2017年9月21日時点のオリジナルよりアーカイブ。 2017年9月20日閲覧
  29. ^ 「GitHub - deeplearning4j/Dl4j-benchmark: dl4jベンチマークコードを追跡するためのリポジトリ」 . GitHub . 2019年12月19日.
  30. ^ 「Deeplearning4jベンチマーク - Deeplearning4j: JVM向けオープンソース分散型ディープラーニング」2017年8月9日時点のオリジナルよりアーカイブ。 2017年1月30日閲覧
  31. ^ 「Scala、Spark、Deeplearning4j - Deeplearning4j: JVM向けのオープンソース分散型ディープラーニング」2017年2月25日時点のオリジナルよりアーカイブ。 2017年2月25日閲覧
  32. ^ 「Deeplearning4jでKerasを実行する - Deeplearning4j: JVM向けのオープンソース分散型ディープラーニング」 。 2017年2月25日時点のオリジナルよりアーカイブ。 2017年2月25日閲覧
  33. ^ 「Clojureによるディープラーニング - Deeplearning4j: JVM向けのオープンソース分散ディープラーニング」2017年2月25日時点のオリジナルよりアーカイブ。 2017年2月25日閲覧
  34. ^ 「Tensorflow & Deeplearning4j - Deeplearning4j: JVM向けのオープンソース分散型ディープラーニング」2017年9月8日時点のオリジナルよりアーカイブ。 2017年9月7日閲覧