Deeplearning4j

Deeplearning4j
Тип Обработка естественного языка, глубокое обучение, компьютерное зрение, искусственный интеллект
Авторы Адам Гибсон, Крис Николсон, Джош Паттерсон
Разработчик Various
Написана на Java, Scala, CUDA, C, C++, Python, Clojure
Операционные системы Linux, macOS, Windows, Android
Языки интерфейса английский
Аппаратная платформа кроссплатформенность
Последняя версия
Репозиторий github.com/deeplearning4…
Состояние активный
Лицензия 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[англ.]) для реализации облака слов.

Безопасность

В библиотеку включены средства защиты от внешнего вмешательства и безопасности от взлома, что особенно важно в финансовых задачах[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. Архивировано 5 июля 2020 года.
  3. Vance, Ashlee Deep Learning for (Some of) the People  (неопр.). Bloomberg Businessweek (3 июня 2014). Дата обращения: 28 июня 2014. Архивировано 25 июня 2014 года.
  4. Novet, Jordan Want an open-source deep learning framework? Take your pick  (неопр.). VentureBeat (14 ноября 2015). Дата обращения: 24 ноября 2015. Архивировано 18 декабря 2019 года.
  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. Архивировано 26 декабря 2015 года.
  6. Github Repository  (неопр.). Дата обращения: 25 июля 2017. Архивировано 24 сентября 2019 года.
  7. 1 2 deeplearning4j.org  (неопр.). Дата обращения: 25 июля 2017. Архивировано 30 марта 2016 года.
  8. Crunchbase Profile  (неопр.). Дата обращения: 25 июля 2017. Архивировано 31 июля 2017 года.
  9. Harris, Derrick A startup called Skymind launches, pushing open source deep learning  (неопр.). GigaOM.com (2 июня 2014). Дата обращения: 29 июня 2014. Архивировано 28 июня 2014 года.
  10. Novet, Jordan Skymind launches with open-source, plug-and-play deep learning features for your app  (неопр.) (2 июня 2014). Дата обращения: 29 июня 2014. Архивировано 28 сентября 2020 года.
  11. Архивированная копия  (неопр.). Дата обращения: 25 июля 2017. Архивировано из оригинала 25 февраля 2017 года.
  12. Deeplearning4j Visualization Tools  (неопр.). Дата обращения: 25 июля 2017. Архивировано из оригинала 10 августа 2017 года.
  13. Deeplearning4j Computation Graph  (неопр.). Дата обращения: 25 июля 2017. Архивировано из оригинала 10 августа 2017 года.
  14. Iterative reduce  (неопр.). Дата обращения: 25 июля 2017. Архивировано 10 июня 2018 года.
  15. DataVec ETL for Machine Learning  (неопр.). Дата обращения: 25 июля 2017. Архивировано из оригинала 2 октября 2017 года.
  16. Anomaly Detection for Time Series Data with Deep Learning  (неопр.). Дата обращения: 25 июля 2017. Архивировано 28 сентября 2020 года.
  17. word2vec  (неопр.). Дата обращения: 25 июля 2017. Архивировано 10 марта 2016 года.
  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. Источник  (неопр.). Дата обращения: 25 июля 2017. Архивировано из оригинала 18 мая 2016 года.
  23. Generated Documentation (Untitled)  (неопр.). Дата обращения: 25 июля 2017. Архивировано 23 августа 2017 года.
  24. GitHub - deeplearning4j/dl4j-benchmark: Repo to track dl4j benchmark code  (неопр.). Дата обращения: 25 июля 2017. Архивировано 22 июля 2020 года.
  25. Benchmarking with DL4J and ND4J | Deeplearning4j  (неопр.). Дата обращения: 25 июля 2017. Архивировано из оригинала 9 августа 2017 года.

Литература

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

Ссылки

  • deeplearning4j.org — официальный сайт Deeplearning4j
  • Проект Deeplearning4j на сайте GitHub
  • ND4J: N-Dimensional Arrays for Java and Scala, A Linear Algebra Library  (неопр.).
  • Java Magazine by Oracle: Deep Learning in Java  (неопр.). Архивировано 24 сентября 2015 года.
Перейти к шаблону «Программы глубинного обучения»
Свободное ПО
Несвободное ПО