Deeplearning4j

Deeplearning4j是为Java和Java虚拟机编写的开源深度学习库，是广泛支持各种深度学习算法的运算框架。Deeplearning4j可以实施的技术包括受限玻尔兹曼机、深度置信网络、深度自动编码器、堆叠式降噪自动编码器、循环神经张量网络，以及word2vec、doc2vec和GloVe。这些算法全部包括分布式并行版本，与Hadoop和Spark集成。Skymind是Deeplearning4j的商业支持机构。

简介 
Deeplearning4j基于广泛使用的编程语言Java——同时也兼容Clojure，并且包括Scala的API。它由自有的开源数值计算库ND4J驱动，可使用CPU或GPU运行。 Deeplearning4j是开源项目，主要由位于旧金山的一支机器学习团队开发，团队由Adam Gibson领导。Deeplearning4j是谷歌Word2vec页面上列出的唯一一个在Java环境下实施Word2vec的开源项目。

Deeplearning4j已经用于多项商业和科研应用。其代码由GitHub托管，并在谷歌小组上设有支持论坛。 

这一框架是可组合的，即受限玻尔兹曼机、卷积网络、自动编码器、递归网络等浅层神经网络可以相互叠加，组合成不同类型的深度网络。

分布式 
Deeplearning4j的定型以集群进行。神经网络通过迭代化简平行定型，可以在Hadoop/YARN以及Spark上运行。Deeplearning4j还与Cuda内核集成，进行纯GPU操作，可使用分布式GPU运行。

Java虚拟机中的科学计算 
Deeplearning4j包括使用ND4J的N维数组类，可在Java和Scala中进行科学计算，类似于Numpy为Python提供的功能。其基础是线性代数库，可有效支持生产环境中的矩阵操作。

用于机器学习的Canova向量化库 
Canova可将各类文件格式和数据类型向量化，所用的输入/输出格式系统近似于Hadoop的MapReduce。Canova目前仍在开发中，设计目标是实现CSV、图像、声音、文本和视频的向量化。Canova可以从命令行使用。
版本0.4.0之后，Canova库已合并到 DataVec当中。

文本与NLP 
Deeplearning4j包括一个向量空间模型和主题模型工具包，在Java中实施，与并行GPU集成以提高表现。这是专门为处理大量文本而设计的。

Deeplearning4j可实施tf–idf、深度学习以及Mikolov的word2vec算法、doc2vec和GloVe－在Java中再实施并优化。它依靠t-SNE生成视觉化的文字云。

实际应用情景与集成 
Deeplearning4j的实际应用情景包括金融行业的欺诈侦测、制造业等行业中的异常检测、电子商务与广告业的推荐系统、图像识别等。Deeplearning4j已与RapidMiner和Prediction.io等其他机器学习平台集成。

相关库 
 OpenNN，一个用C++语言编写的深度学习开源神经网络库。
 Torch，一个用Lua语言编写的 开源框架，广泛支持各类机器学习算法。
 Theano，一个为Python开发的开源深度学习库。
 Neuroph

参见 
 深度学习框架比较
 人工智能
 机器学习
 深度学习
 卷积神经网络

参考文献

外部链接 
 
 
 . 
 
 
 
 
 

人工神经网络
叢集計算
Scala平台軟體
用Java編程的自由軟體
Hadoop
图像处理
美國資訊科技公司
JVM程式語言
Java函式庫
Java平台
机器学习
自然語言處理
使用Apache许可证的软件