Deeplearning4j는 널리 사용되는 프로그래밍 언어 인 자바를 사용하지만 클로저와도 호환 되며 스칼라 API를 포함하고 있다. 자체 오픈 소스 수치 계산 라이브러리인 ND4J를 사용하여 CPU와 GPU 모두에서 작동한다.[11][12]
Deeplearning4j는 다수의 상용 및 학술 응용 분야에서 사용되고 있다. 코드는 깃허브에 공개되어 있으며[13] 개발자 지원 포럼은 기터를 통해 서비스 되고 있다.[14] 한국 개발자를 위한 기터 채널도 서비스 되고 있다.[15]
Deeplearning4j 프레임워크를 이용하여 Restricted Boltzmann machines, convolutional nets, autoencoders, and recurrent nets과 같은 얕은 신경망들을 조합 하여 다양한 형태의 깊은 신경망을 만들 수 있다. 또한 강력한 시각화 도구[16]와 Computation graph[17]를 포함하고 있다.
분산 처리
Deeplearning4j의 학습 과정은 클러스터에서 분산 컴퓨팅을 이용할 수 있도록 구현되어 있다. 아파치 하둡 주요 배포판과 스파크를 통한 반복적 리듀스 작업을 통해 분산 학습이 가능하다.[18][19] 또한 Deeplearning4j는 GPU 연산을 위한 CUDA 커널 구현체를 포함하고 있으며 분산된 GPU환경에서도 작동한다.
활용
Deeplearning4j의 학습 과정은 분산 컴퓨팅을 이용할 수 있도록 짜여져있다. 즉, 하둡과 스파크를 기반으로 한 반복적 맵리듀스로 학습이 가능하다. 또, 쿠다 커널도 지원하고 있어서 GPU를 이용한 연산이 가능하며 여러 대의 GPU를 이용한 분산 학습도 가능하다.
Deeplearning4j는 ND4J를 이용해 다차원 어레이 클래스 연산이 가능하다. ND4J는 파이썬의 Numpy와 같은 역할을 한다. 이를 이용해 선형 대수과 행렬 연산을 효과적으로 처리할 수 있다.
카노바를 이용하면 CSV파일, 이미지, 소리, 텍스트, 비디오 파일을 벡터 형태의 데이터로 쉽게 만들 수 있다.
Deeplearning4j는 벡터 공간 모델링과 주제 모델링(topic modelling) 도구를 포함하고 있어 규모가 큰 텍스트 데이터를 분산 시스템에서 빠르게 처리할 수 있다. 한편 Deeplearning4j는 tf-idf, word2vec, doc2vec, GloVe 알고리즘의 구현을 포함하고 있다. 또, t-SNE를 이용해 단어 구름(word cloud)을 시각화할 수 있다.
Deeplearning4j는 금융 업계의 사기 탐지[20], 비정상 행위 탐지[21], 이미지 인식 등에 사용되고 있다. 또 RapidMiner와 Prediction.io 등 다른 기계학습 플랫폼을 포함하고 있다[22].