딥러닝 4j

Deeplearning4j
이클립스 딥러닝 4j
원저작자Alex D. Black, Adam Gibson, Vyacheslav Kokorin, Josh Patterson
개발자Kondiut K. K.와 기고자
프리뷰 릴리즈
1.0.0-beta7 / 2020년 5월 13일, 2년 전(2020-05-13)[1]
저장소
기입처Java, CUDA, C, C++,
운영 체제Linux, macOS, Windows, Android, iOS
플랫폼CUDA, x86, ARM, 전원PC
이용가능기간:영어
유형자연어 처리, 딥러닝, 머신비전, 인공지능
면허증.Apache 라이센스 2.0
웹 사이트www.deeplearning4j.org Edit this on Wikidata

Eclipse Deeplearning4jJava 가상 머신(JVM)[2][3]으로 Java로 작성된 프로그래밍 라이브러리입니다.딥 러닝 알고리즘을 [4]폭넓게 지원하는 프레임워크입니다.Deeplearning4j에는 제한된 Boltzmann 머신, 딥 신념 넷, 딥 오토 인코더, 스택 디노이징 오토 인코더 및 재귀 뉴럴 텐서 네트워크, word2vec, doc2vec 및 Glove의 구현이 포함됩니다.이러한 알고리즘은 모두 Apache Hadoop [5] Spark통합된 분산 병렬 버전을 포함합니다.

Deeplearning4j는 Apache License [6]2.0으로 출시오픈 소스 소프트웨어로,[7] 주로 샌프란시스코에 본사를 둔 머신 러닝 그룹에 의해 개발되었습니다.Skymind Intelligence [8]Layer라고 불리는 엔터프라이즈 배포에 DL4J, TensorFlow, Keras 및 기타 딥 러닝 라이브러리를 번들하는 스타트업 Skymind에 의해 상업적으로 지원됩니다.Deeplearning4j는 2017년 [9][10]10월에 Eclipse Foundation에 기부되었습니다.

서론

Deeplearning4j는 Clojure와 호환되며 Scala Application Programming Interface(API)를 포함하지만 널리 사용되는 프로그래밍 언어 Java에 의존합니다.자체 오픈 소스 수치 컴퓨팅 라이브러리인 ND4J에 의해 구동되며 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)[11][12] 모두에서 작동합니다.

Deeplearning4j는 여러 상업용 및 학술용 어플리케이션에서 사용되고 있습니다.코드는 GitHub에서 [13]호스트됩니다.지원 포럼은 Gitter [14]상에서 유지됩니다.

프레임워크는 구성 가능하며, 제한된 볼츠만 기계, 컨볼루션 네트, 자동 인코더 및 반복 네트와 같은 얕은 신경 네트가 서로 추가되어 다양한 유형의 딥 네트가 생성될 수 있습니다.또한 광범위한 시각화 [15]도구와 계산 [16]그래프를 제공합니다.

분산

Deeplearning4j에 의한 트레이닝은 클러스터 내에서 실시됩니다.신경망은 반복적인 감소를 통해 병렬로 교육되며, 이는 Hadoop-YARN 및 [7][17]Spark에서 작동합니다.또한 Deeplearning4j는 CUDA 커널과 통합되어 순수한 GPU 작업을 수행하며 분산 GPU와 연동됩니다.

JVM을 위한 과학 컴퓨팅

Deeplearning4j에는 ND4J를 사용하는 n차원 배열 클래스가 포함되어 있어 NumPy가 Python에 제공하는 기능과 유사한 Java 및 Scala에서의 과학적 컴퓨팅이 가능합니다.실제 환경에서 선형 대수 및 행렬 조작을 위한 라이브러리를 효과적으로 기반으로 합니다.

기계 학습을 위한 DataVec 벡터화 라이브러리

DataVec은 Hadoop의 MapReduce 사용과 유사한 입출력 형식 시스템을 사용하여 다양한 파일 형식과 데이터 유형을 벡터라는 이름의 스칼라 열로 변환합니다.DataVec은 CSV, 이미지, 사운드, 텍스트, 비디오 및 [18][19]시계열을 벡터화하도록 설계되었습니다.

텍스트 및 NLP

Deeplearning 4j에는 벡터 공간 모델링 및 토픽 모델링 툴킷이 포함되어 있으며 Java에서 구현되어 성능을 위해 병렬 GPU와 통합됩니다.큰 텍스트 세트를 처리하도록 설계되어 있습니다.

Deeplearning4j에는 용어 빈도-역문서 빈도(tf-idf), 러닝 및 Mikolov의 Word2vec 알고리즘,[20] doc2vec 및 GloVe의 구현이 포함되어 Java에서 재실장 및 최적화되어 있습니다.워드 클라우드 시각화를 위해 t-분산 확률적 인접 임베딩(t-SNE)에 의존한다.

실제 사용 사례 및 통합

Deeplearning4j의 실제 사용 사례에는 네트워크 침입 탐지 및 사이버 보안, 금융 [21][22]부문의 부정 행위 탐지, 제조와 같은 업계의 이상 탐지, 전자 상거래 및 [23]광고 분야의 추천 시스템, 이미지 [24]인식 등이 있습니다.Deeplearning4j는 RapidMiner, [25]Prediction.io 및 Weka[26]같은 다른 기계 학습 플랫폼과 통합되었습니다.

머신 러닝 모델 서버

Deeplearning4j는 Skymind Intelligence Layer([27][28]SKILL)의 무료 개발자 에디션을 사용하여 생산 시 추론할 수 있는 기계 학습 모델을 제공합니다.모델 서버는 데이터에 대한 결정을 내리는 파라메트릭 기계 학습 모델을 제공합니다.데이터 파이프라인 및 모델 교육 후 기계 학습 워크플로우의 추론 단계에 사용됩니다.모델 서버는 실제 운영 환경에 데이터 과학 연구를 도입할 수 있는 도구입니다.

웹 서버와 인터넷의 관계는 모델 서버와 AI의 관계입니다.웹 서버가 HTTP 요청을 수신하여 웹 사이트에 대한 데이터를 반환하고 모델 서버가 데이터를 수신하여 해당 데이터에 대한 결정 또는 예측을 반환하는 경우(예: 이미지를 보낸 경우), 모델 서버는 사진 속의 얼굴 또는 동물을 식별하여 해당 이미지에 대한 레이블을 반환할 수 있습니다.

SKILL 모델 서버는 Tensorflow, Keras, Theano 및 CNTK와 같은 Python 프레임워크에서 모델을 가져올 수 있어 딥 러닝 모델 배포에 있어 큰 장벽을 극복할 수 있습니다.

벤치마크

Deeplearning4j는 여러 GPU를 [29]사용한 간단한 이미지 인식 태스크에 대해 Caffe만큼 빠릅니다.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 [32]API로 기능합니다.또한 Clojure 래퍼의 이름은 DL4CLJ입니다.[33]딥 러닝에 필요한 대규모 수학 연산을 수행하는 핵심 언어는 C, C++ 및 CUDA C입니다.

Tensorflow, Keras 및 Deeplearn

Tensorflow, Keras 및 Deeplearning4j는 함께 동작합니다.Deeplearning4j는 Tensorflow 및 기타 Python 프레임워크가 Keras로 [34]작성된 경우 모델을 가져올 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Releases · eclipse/deeplearning4j". github.com. Retrieved 2021-04-03.
  2. ^ Metz, Cade (2014-06-02). "The Mission to Bring Google's AI to the Rest of the World". Wired.com. Retrieved 2014-06-28.
  3. ^ Vance, Ashlee (2014-06-03). "Deep Learning for (Some of) the People". Bloomberg Businessweek. Retrieved 2014-06-28.
  4. ^ Novet, Jordan (2015-11-14). "Want an open-source deep learning framework? Take your pick". VentureBeat. Retrieved 2015-11-24.
  5. ^ TV, Functional (2015-02-12). "Adam Gibson, DeepLearning4j on Spark and Data Science on JVM with nd4j, SF Spark @Galvanize 20150212". SF Spark Meetup. Retrieved 2015-03-01.
  6. ^ "Github Repository". GitHub. April 2020.
  7. ^ a b "deeplearning4j.org".
  8. ^ "Skymind Intelligence Layer Community Edition". Archived from the original on 2017-11-07. Retrieved 2017-11-02.
  9. ^ "Eclipse Deeplearning4j Project Page". 22 June 2017.
  10. ^ "Skymind's Deeplearning4j, the Eclipse Foundation, and scientific computing in the JVM". Jaxenter. 13 November 2017. Retrieved 2017-11-15.
  11. ^ Harris, Derrick (2014-06-02). "A startup called Skymind launches, pushing open source deep learning". GigaOM.com. Retrieved 2014-06-29.
  12. ^ Novet, Jordan (2014-06-02). "Skymind launches with open-source, plug-and-play deep learning features for your app". Retrieved 2014-06-29.
  13. ^ 딥러닝4j 소스 코드
  14. ^ Deeplearning 4j Gitter 지원 채널
  15. ^ "Deeplearning4j Visualization Tools". Archived from the original on 2017-08-10. Retrieved 2016-08-17.
  16. ^ "Deeplearning4j Computation Graph". Archived from the original on 2017-08-10. Retrieved 2016-08-17.
  17. ^ "Iterative reduce". GitHub. 15 March 2020.
  18. ^ "DataVec ETL for Machine Learning". Archived from the original on 2017-10-02. Retrieved 2016-09-18.
  19. ^ 딥 러닝을 사용한 시계열 데이터의 이상 검출
  20. ^ 워드2벡
  21. ^ "Archived copy". Archived from the original on 2016-03-10. Retrieved 2016-02-22.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  22. ^ https://skymind.ai/bsa-aml[영구 데드링크]
  23. ^ "Archived copy". Archived from the original on 2016-03-10. Retrieved 2016-02-22.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  24. ^ https://skymind.ai/image[영구 데드링크]
  25. ^ "Archived copy". www.rapidminerchina.com. Archived from the original on 18 May 2016. Retrieved 22 May 2022.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  26. ^ https://deeplearning.cms.waikato.ac.nz/
  27. ^ "Archived copy". Archived from the original on 2017-09-21. Retrieved 2017-09-20.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  28. ^ "Archived copy". Archived from the original on 2017-09-21. Retrieved 2017-09-20.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  29. ^ "GitHub - deeplearning4j/Dl4j-benchmark: Repo to track dl4j benchmark code". GitHub. 19 December 2019.
  30. ^ "Archived copy". Archived from the original on 2017-08-09. Retrieved 2017-01-30.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  31. ^ https://deeplearning4j.org/scala
  32. ^ "Archived copy". Archived from the original on 2017-02-25. Retrieved 2017-02-25.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  33. ^ "Archived copy". Archived from the original on 2017-02-25. Retrieved 2017-02-25.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  34. ^ "Archived copy". Archived from the original on 2017-09-08. Retrieved 2017-09-07.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)