Share to: share facebook share twitter share wa share telegram print page

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.

Ссылки

Kembali kehalaman sebelumnya