Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Eclipse Deeplearning4j - это библиотека программирования, написанная на Java для виртуальной машины Java (JVM). [1] [2] Это структура с широкой поддержкой алгоритмов глубокого обучения. [3] Deeplearning4j включает в себя реализации ограниченной машины Больцмана , сети глубоких убеждений , глубокого автоэнкодера, многослойного автоэнкодера с шумоподавлением и рекурсивной нейронной тензорной сети , word2vec , doc2vec и GloVe . Все эти алгоритмы включают в себя распределенные параллельные версии, которые интегрируются сApache Hadoop и Spark . [4]

Deeplearning4j - это программное обеспечение с открытым исходным кодом, выпущенное под лицензией Apache License 2.0 [5], разработанное в основном группой машинного обучения со штаб-квартирой в Сан-Франциско . [6] Это поддерживается коммерчески запуск Skymind, что пучки DL4J, TensorFlow , Keras и другие глубокие библиотеки обучения в распределении предприятия под названием Skymind разведка слой. [7] Deeplearning4j был внесен в фонд Eclipse Foundation в октябре 2017 года. [8] [9]

Введение [ править ]

Deeplearning4j опирается на широко используемый язык программирования Java , хотя он совместим с Clojure и включает интерфейс прикладного программирования Scala (API). Он основан на собственной библиотеке численных вычислений с открытым исходным кодом ND4J и работает как с центральными процессорами (ЦП), так и с графическими процессорами (ГП). [10] [11]

Deeplearning4j использовался в нескольких коммерческих и академических приложениях. Код размещен на GitHub . [12] Форум поддержки поддерживается на Gitter . [13]

Структура является составной, что означает, что мелкие нейронные сети, такие как ограниченные машины Больцмана, сверточные сети, автоэнкодеры и повторяющиеся сети, могут быть добавлены друг к другу для создания глубоких сетей различных типов. Он также имеет обширные инструменты визуализации [14] и граф вычислений. [15]

Распространено [ править ]

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

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

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

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

DataVec векторизует различные форматы файлов и типы данных, используя систему форматов ввода / вывода , аналогичную использованию MapReduce в Hadoop; то есть он превращает различные типы данных в столбцы скаляров, называемые векторами . DataVec предназначен для векторизации файлов CSV, изображений, звука, текста, видео и временных рядов. [17] [18]

Текст и НЛП [ править ]

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

Deeplearning4j включает в себя реализации термина «частота - обратная частота документа» ( tf – idf ), глубокого обучения и алгоритма word2vec Миколова, [19] doc2vec и GloVe, переопределенных и оптимизированных на Java. Он основан на t-распределенном стохастическом встраивании соседей (t-SNE) для визуализации облака слов.

Реальные варианты использования и интеграции [ править ]

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

Сервер моделей машинного обучения [ править ]

Deeplearning4j обслуживает модели машинного обучения для вывода в производственной среде с помощью бесплатной версии SKIL для разработчиков, Skymind Intelligence Layer. [26] [27] Сервер моделей обслуживает параметрические модели машинного обучения, которые принимают решения о данных. Он используется на этапе вывода рабочего процесса машинного обучения после конвейеров данных и обучения модели. Сервер моделей - это инструмент, который позволяет проводить исследования в области науки о данных в реальной производственной среде.

То, что веб-сервер для Интернета, - образцовый сервер для ИИ. Если веб-сервер получает HTTP-запрос и возвращает данные о веб-сайте, сервер модели получает данные и возвращает решение или прогноз относительно этих данных: например, отправил изображение, сервер модели может вернуть метку для этого изображения, идентифицирующую лица или животных на фотографиях.

Сервер моделей SKIL может импортировать модели из фреймворков Python, таких как Tensorflow, Keras, Theano и CNTK, преодолевая серьезный барьер при развертывании моделей глубокого обучения.

Контрольные показатели [ править ]

Deeplearning4j работает так же быстро, как Caffe, для нетривиальных задач распознавания изображений с использованием нескольких графических процессоров. [28] Для программистов, незнакомых с HPC на JVM, есть несколько параметров, которые необходимо настроить, чтобы оптимизировать время обучения нейронной сети. К ним относятся установка пространства кучи, алгоритм сборки мусора, использование памяти вне кучи и предварительное сохранение данных (обработка) для более быстрого ETL. [29] Вместе эти оптимизации могут привести к 10-кратному увеличению производительности с Deeplearning4j.

Языки API: Java, Scala, Python, Clojure и Kotlin [ править ]

Deeplearning4j можно использовать на нескольких языках API, включая Java, Scala, Python, Clojure и Kotlin. Его Scala API называется ScalNet. [30] Keras служит его API Python. [31] И его оболочка Clojure известна как DL4CLJ. [32] Основными языками, выполняющими крупномасштабные математические операции, необходимые для глубокого обучения, являются C, C ++ и CUDA C.

Tensorflow, Keras и Deeplearning4j [ править ]

Tensorflow, Keras и Deeplearning4j работают вместе. Deeplearning4j может импортировать модели из Tensorflow и других фреймворков Python, если они были созданы с помощью Keras. [33]

См. Также [ править ]

  • Сравнение программного обеспечения для глубокого обучения
  • Искусственный интеллект
  • Машинное обучение
  • Глубокое обучение

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

  1. ^ Мец, Кейд (2014-06-02). «Миссия по распространению искусственного интеллекта Google в остальном мире» . Wired.com . Проверено 28 июня 2014 .
  2. ^ Вэнс, Эшли (2014-06-03). «Глубокое обучение для (некоторых) людей» . Bloomberg Businessweek . Проверено 28 июня 2014 .
  3. ^ NOVET, Иордания (2015-11-14). «Хотите фреймворк для глубокого обучения с открытым исходным кодом? Выбирайте» . VentureBeat . Проверено 24 ноября 2015 .
  4. ^ TV, Функциональный (2015-02-12). «Адам Гибсон, DeepLearning4j по Spark и Data Science на JVM с nd4j, SF Spark @Galvanize 20150212» . Встреча SF Spark . Проверено 1 марта 2015 .
  5. ^ "Репозиторий Github" . Апрель 2020.
  6. ^ a b "deeplearning4j.org" .
  7. ^ "Skymind Intelligence Layer Community Edition" . Архивировано из оригинала на 2017-11-07 . Проверено 2 ноября 2017 .
  8. ^ "Страница проекта Eclipse Deeplearning4j" . 22 июня 2017.
  9. ^ «Skymind's Deeplearning4j, Eclipse Foundation и научные вычисления в JVM» . Jaxenter . 13 ноября 2017 . Проверено 15 ноября 2017 .
  10. ^ Харрис, Деррик (2014-06-02). «Запускается стартап Skymind, продвигающий глубокое обучение с открытым исходным кодом» . GigaOM.com . Проверено 29 июня 2014 .
  11. ^ Новет, Иордания (2014-06-02). «Skymind запускается с открытыми исходными кодами и функциями глубокого обучения plug-and-play для вашего приложения» . Проверено 29 июня 2014 .
  12. ^ Исходный код Deeplearning4j
  13. ^ Канал поддержки Deeplearning4j Gitter
  14. ^ Deeplearning4j Инструменты визуализации
  15. ^ Deeplearning4j Вычислительный график
  16. ^ «Итеративная редукция» . 15 марта 2020.
  17. ^ DataVec ETL для машинного обучения
  18. ^ Обнаружение аномалий для данных временных рядов с помощью глубокого обучения
  19. ^ word2vec
  20. ^ "Архивная копия" . Архивировано из оригинала на 2016-03-10 . Проверено 22 февраля 2016 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  21. ^ https://skymind.ai/bsa-aml [ постоянная мертвая ссылка ]
  22. ^ "Архивная копия" . Архивировано из оригинала на 2016-03-10 . Проверено 22 февраля 2016 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  23. ^ https://skymind.ai/image [ постоянная мертвая ссылка ]
  24. ^ https://www.rapidminerchina.com/en/products/shop/product/deeplearning4j/ [ постоянная мертвая ссылка ]
  25. ^ https://deeplearning.cms.waikato.ac.nz/
  26. ^ "Архивная копия" . Архивировано из оригинала на 2017-09-21 . Проверено 20 сентября 2017 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  27. ^ "Архивная копия" . Архивировано из оригинала на 2017-09-21 . Проверено 20 сентября 2017 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  28. ^ «GitHub - deeplearning4j / Dl4j-benchmark: репо для отслеживания кода теста dl4j» . 19 декабря 2019.
  29. ^ https://deeplearning4j.org/benchmark
  30. ^ https://deeplearning4j.org/scala
  31. ^ "Архивная копия" . Архивировано из оригинала на 2017-02-25 . Проверено 25 февраля 2017 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  32. ^ "Архивная копия" . Архивировано из оригинала на 2017-02-25 . Проверено 25 февраля 2017 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  33. ^ "Архивная копия" . Архивировано из оригинала на 2017-09-08 . Проверено 7 сентября 2017 .CS1 maint: заархивированная копия как заголовок ( ссылка )