Deeplearning4j
原作者 | Adam Gibson |
---|---|
开发者 | 众多 |
当前版本 |
|
原始码库 | |
编程语言 | Java, Scala, CUDA, C |
操作系统 | Linux, macOS, Windows, Android |
平台 | 跨平台 |
类型 | 自然语言处理, 深度学习, 机器视觉, 人工智慧 |
许可协议 | Apache许可证2.0 |
网站 | deeplearning4j |
Deeplearning4j是为Java和Java虚拟机[2][3]编写的开源深度学习库,是广泛支持各种深度学习算法的运算框架[4]。Deeplearning4j可以实施的技术包括受限玻尔兹曼机、深度置信网络、深度自动编码器、堆叠式降噪自动编码器、循环神经张量网络,以及word2vec、doc2vec和GloVe。这些算法全部包括分布式并行版本,与Hadoop和Spark集成。[5]Skymind是Deeplearning4j的商业支持机构。
简介
Deeplearning4j基于广泛使用的编程语言Java——同时也兼容Clojure,并且包括Scala的API。它由自有的开源数值计算库ND4J驱动,可使用CPU或GPU运行。[6][7] Deeplearning4j是开源项目[8],主要由位于旧金山的一支机器学习团队开发,团队由Adam Gibson领导。[9][10]Deeplearning4j是谷歌Word2vec页面上列出的唯一一个在Java环境下实施Word2vec的开源项目。[11]
Deeplearning4j已经用于多项商业和科研应用。其代码由GitHub[12]托管,并在谷歌小组[13]上设有支持论坛。
这一框架是可组合的,即受限玻尔兹曼机、卷积网络、自动编码器、递归网络等浅层神经网络可以相互叠加,组合成不同类型的深度网络。
分布式
Deeplearning4j的定型以集群进行。神经网络通过迭代化简平行定型,可以在Hadoop/YARN以及Spark上运行。[9][14]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的实际应用情景包括金融行业[15]的欺诈侦测、制造业等行业中的异常检测、电子商务与广告业的推荐系统、图像识别等。Deeplearning4j已与RapidMiner和Prediction.io等其他机器学习平台集成。
相关库
- OpenNN,一个用C++语言编写的深度学习开源神经网络库。
- Torch,一个用Lua语言编写的 开源框架,广泛支持各类机器学习算法。
- Theano,一个为Python开发的开源深度学习库。
- Neuroph
参见
参考文献
- ^ Release 0.9.1. 2017年8月12日 [2018年7月20日].
- ^ Metz, Cade. The Mission to Bring Google's AI to the Rest of the World. Wired.com. 2014-06-02 [2014-06-28]. (原始内容存档于2014-06-29).
- ^ Vance, Ashlee. Deep Learning for (Some of) the People. Bloomberg Businessweek. 2014-06-03 [2014-06-28]. (原始内容存档于2014-06-25).
- ^ Novet, Jordan. Want an open-source deep learning framework? Take your pick. VentureBeat. 2015-11-14 [2015-11-24]. (原始内容存档于2015-11-27).
- ^ TV, Functional. Adam Gibson, DeepLearning4j on Spark and Data Science on JVM with nd4j, SF Spark @Galvanize 20150212. SF Spark Meetup. 2015-02-12 [2015-03-01]. (原始内容存档于2015-12-26).
- ^ Harris, Derrick. A startup called Skymind launches, pushing open source deep learning. GigaOM.com. 2014-06-02 [2014-06-29]. (原始内容存档于2014-06-28).
- ^ Novet, Jordan. Skymind launches with open-source, plug-and-play deep learning features for your app. 2014-06-02 [2014-06-29]. (原始内容存档于2014-06-28).
- ^ Github Repository. [2016-03-27]. (原始内容存档于2019-09-24).
- ^ 9.0 9.1 deeplearning4j.org. [2016-03-27]. (原始内容存档于2016-03-30).
- ^ Crunchbase Profile. [2016-03-27]. (原始内容存档于2017-07-31).
- ^ Google Code. [2016-03-27]. (原始内容存档于2016-03-10).
- ^ piskvorky. GitHub - piskvorky/gensim: Topic Modelling for Humans. GitHub. [2016-03-27]. (原始内容存档于2016-02-01).
- ^ Google Groups. google.com. [2016-03-27]. (原始内容存档于2011-01-22).
- ^ Iterative reduce. [2016-03-27]. (原始内容存档于2018-06-10).
- ^ FINANCE & FRAUD. Skymind. [2016-03-27]. (原始内容存档于2016-03-10).
外部链接
- 官方网站
- Deeplearning4j Github Repositories. [2016-03-27]. (原始内容存档于2021-02-27).
- Deeplearning4j vs. Torch vs. Caffe vs. Theano. [2016-03-27]. (原始内容存档于2016-05-30)..
- Canova: A General Vectorization Lib for Machine Learning. [2016-03-27]. (原始内容存档于2016-06-12).
- ND4J: N-Dimensional Arrays for Java and Scala, A Linear Algebra Library. [2022-03-11]. (原始内容存档于2020-06-01).
- Apache Flink. [2016-03-27]. (原始内容存档于2018-12-26).
- Java Magazine by Oracle: Deep Learning in Java. [2016-03-27]. (原始内容存档于2015-09-24).
- Deeplearning4j Community of Gitter Chat. [2016-03-27]. (原始内容存档于2020-08-03).