Deeplearning4j

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Deeplearning4j
Тип Обработка естественного языка, глубокое обучение, компьютерное зрение, искусственный интеллект
Автор Адам Гибсон, Крис Николсон, Джош Паттерсон
Разработчик Various
Написана на Java, Scala, CUDA, C, C++, Python, Clojure
Операционная система Linux, macOS, Windows, Android
Языки интерфейса английский
Аппаратная платформа кроссплатформенность
Последняя версия
Состояние активный
Лицензия Apache 2.0
Сайт deeplearning4j.org

Deeplearning4j — библиотека программ на языке Java, используемая как фреймворк для глубокого обучения[2][3][4]. Включает реализацию ограниченной машины Больцмана, глубокой сети доверия, глубокого автокодировщика, стекового автокодировщика с фильтрацией шума, рекурсивной тензорной нейронной сети, word2vec, doc2vec, and GloVe. Эти алгоритмы включены также в версии библиотеки, поддерживающие распределённые вычисления, интегрированные с архитектурами Apache Hadoop и Spark[5].

Является открытым программным обеспечением, распространяется под лицензией Apache 2.0[6]; основные разработчики — группа машинного обучения в Сан-Франциско во главе с Адамом Гибсоном[7][8], коммерческие внедрения поддерживают стартап Skymind.

Технология[править | править код]

Deeplearning4j реализована на языке Java и выполняется в среде, при этом совместима с Clojure и включает интерфейс (API) для языка Scala. Дополнительная библиотека ND4J открытого доступа обеспечивает вычисления на графических процессорах с поддержкой CUDA[9][10]. Кроме того, имеются средства для работы с библиотекой на языке Python через фреймворк Keras[11].

Фреймворк позволяет комбинировать компоненты, объединяя обычные нейронные сети с машинами Больцмана, свёрточными нейронными сетями, автокодировщиками и рекуррентными сетями в одну систему. Кроме того, поддерживаются расширенные средства визуализации[12]. Обучение проводится как с помощью обычных многослойных нейронных сетей, так и для сложных сетей, в которых определён граф вычислений[13].

Распределённые вычисления[править | править код]

Обучение в Deeplearning4j осуществляется через кластеры. Нейронные сети обучаются параллельно по итерациям, процесс поддерживается архитектурами Hadoop-YARN и Spark[7][14]. Deeplearning4j осуществляет также интеграцию с ядром архитектуры CUDA для осуществления чистых операций с GPU и распределения операций на графических процессорах.

Научные расчёты для JVM[править | править код]

Deeplearning4j включает в себя класс для работы с n-мерным массивом данных в библиотеке ND4J. Это облегчает вычисления для научных задач на языках Java и Scala, функциональность при этом соответствует языку NumPy для Pythonа. Использование этих средств позволяет эффективно решать задачи линейной алгебры и матричных преобразований в практических приложениях.

Библиотека векторизации DataVec для машинного обучения[править | править код]

Библиотека DataVec проводит векторизацию файлов в различных входных и выходных форматах методом, подобным MapReduce; при этом данные трансформируются в векторную форму. DataVec векторизирует табличный формат CSV, изображения, звуки, тексты, видео и временные последовательности данных[15][16].

Обработка естественного языка и текстов[править | править код]

Для обработки больших объёмов текстов с использованием мощности параллельных графических процессоров Deeplearning4j привлекает инструментарий векторного и тематического моделирования на языке Java.

В библиотеку входят реализации частотной инверсии (TF-IDF), глубинное обучение, алгоритм Миколова word2vec[17], doc2vec, и GloVe, которые оптимизированы на Java. При этом используется принцип стохастического встраивания соседей с распределением Стьюдента (t-SNE[en]) для реализации облака слов.

Безопасность[править | править код]

В библиотеку включены средства защиты от внешнего вмешательства и безопасности от взлома, что особенно важно в финансовых задачах[18][19], в промышленных системах, в электронной коммерции и предпринимательстве применяется распознавание аномалий[20] и распознавание образов[21]. Deeplearning4j интегрирован с другими платформами машинного обучения — такими как RapidMiner, Prediction.io[22] и Weka[23].

Тесты производительности[править | править код]

Сопоставление производительности показывает, что Deeplearning4j сопоставим с Caffe в задачах нетривиального распознавания образов с привлечением параллельных графических процессоров[24]. Для программистов, незнакомых с HPC на JVM, имеется несколько параметров, которые можно регулировать для улучшения производительности обучения нейронных сетей. В эти параметры входит настройка динамической памяти, алгоритм сборки мусора, подкачка памяти и предварительное сохранение данных для ускорения ETL[25]. Комбинируя эти настройки, можно увеличить производительность Deeplearning4j до десяти раз.

См. также[править | править код]

Примечания[править | править код]

  1. Release 0.9.1 — 2017.
  2. Metz, Cade The Mission to Bring Google's AI to the Rest of the World. Wired.com (2 июня 2014). Дата обращения 28 июня 2014.
  3. Vance, Ashlee Deep Learning for (Some of) the People. Bloomberg Businessweek (3 июня 2014). Дата обращения 28 июня 2014.
  4. Novet, Jordan Want an open-source deep learning framework? Take your pick. VentureBeat (14 ноября 2015). Дата обращения 24 ноября 2015.
  5. TV, Functional Adam Gibson, DeepLearning4j on Spark and Data Science on JVM with nd4j, SF Spark @Galvanize 20150212. SF Spark Meetup (12 февраля 2015). Дата обращения 1 марта 2015.
  6. Github Repository.
  7. 1 2 deeplearning4j.org.
  8. Crunchbase Profile.
  9. Harris, Derrick A startup called Skymind launches, pushing open source deep learning. GigaOM.com (2 июня 2014). Дата обращения 29 июня 2014.
  10. Novet, Jordan Skymind launches with open-source, plug-and-play deep learning features for your app (2 июня 2014). Дата обращения 29 июня 2014.
  11. Архивированная копия (недоступная ссылка). Дата обращения 25 июля 2017. Архивировано 25 февраля 2017 года.
  12. Deeplearning4j Visualization Tools
  13. Deeplearning4j Computation Graph
  14. Iterative reduce.
  15. DataVec ETL for Machine Learning
  16. Anomaly Detection for Time Series Data with Deep Learning
  17. word2vec
  18. Finance & Fraud | Skymind (недоступная ссылка). Дата обращения 25 июля 2017. Архивировано 10 марта 2016 года.
  19. https://skymind.ai/bsa-aml (недоступная ссылка)
  20. Архивированная копия. Дата обращения 22 февраля 2016. Архивировано 10 марта 2016 года.
  21. https://skymind.ai/image (недоступная ссылка)
  22. https://www.rapidminerchina.com/en/products/shop/product/deeplearning4j/ (недоступная ссылка)
  23. Generated Documentation (Untitled)
  24. GitHub - deeplearning4j/dl4j-benchmark: Repo to track dl4j benchmark code
  25. Benchmarking with DL4J and ND4J | Deeplearning4j

Литература[править | править код]

  • Паттерсон Дж., Гибсон А. Глубокое обучение с точки зрения практика = Deep Learning. A Practitioner’s Approach. — ДМК-Пресс, 2018. — 418 с. — ISBN 978-5-97060-481-6.

Ссылки[править | править код]