Deeplearning4j

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

Deeplearning4j
Тип обробка природної мови, глибинне навчання, комп'ютерний зір, штучний інтелект
Автор(и) Адам Ґібсон, Кріс Ніколсон, Джош Паттерсон
Розробник Адам Ґібсонd
Репозиторій github.com/deeplearning4j/deeplearning4j
Платформа Віртуальна машина Java
Операційна система Linux
Мова програмування Java і Scala
Доступні мови англійська
Стан розробки активний
Ліцензія Apache License
Вебсайт deeplearning4j.org

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

Технологія

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

Фреймворк дозволяє комбінувати компоненти, об'єднуючи звичайні нейронні мережі з машинами Больцмана, згортковими нейронними мережами, автокодувальниками і рекурентними мережами в одну систему. Крім того, підтримуються розширені засоби візуалізації[11]. Навчання відбувається як за допомогою звичайних багатошарових нейронних мереж, так і для складних мереж, в яких визначено граф обчислень[12].

Розподілені обчислення

Навчання в Deeplearning4j здійснюється через кластери. Нейронні мережі навчаються паралельно з застосуванням ітерації, процес підтримується архітектурою Hadoop-YARN та Spark[6][13]. Deeplearning4j здійснює також інтеграцію з ядром архітектури CUDA для проведення чистих операцій з GPU і розподілу операцій на графічних процесорах.

Наукові розрахунки для JVM

Deeplearning4j включає клас для роботи з n-вимірним масивом даних у бібліотеці ND4J. Це полегшує обчислення для наукових задач мовами Java і Scala, функціональність при цьому подібна до функціональності, яку бібліотека NumPy забезпечує для мови Python. Ефективність у практичних застосуваннях досягається завдяки використанню бібліотек лінійної алгебри і матричних перетворень.

Бібліотека векторизації DataVec для машинного навчання

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

Обробка природної мови і текстів

Для обробки великих обсягів текстів з використанням потужності паралельних графічних процесорів Deeplearning4j залучає інструментарій векторного і тематичного моделювання мовою Java.

Бібліотека містить реалізації частотної інверсії (TF-IDF), глибинне навчання, алгоритм Міколова word2vec[16], doc2vec, і GloVe, оптимізовані на Java. При цьому використовується принцип стохастичного вбудовування сусідів з розподілом Стьюдента (t-SNE) для реалізації хмари слів.

Безпека

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

Тести продуктивності

Зіставлення продуктивності показує, що Deeplearning4j можна порівняти з Caffe в задачах нетривіального розпізнавання образів із залученням паралельних графічних процесорів[23]. Для програмістів, які незнайомі з HPC на JVM, є кілька параметрів, які можна регулювати для поліпшення продуктивності навчання нейронних мереж. Серед них — налаштування динамічної пам'яті, алгоритм збирання сміття, підкачка пам'яті і попереднє збереження даних для прискорення ETL[24]. Комбінуючи ці налаштування, можна збільшити продуктивність Deeplearning4j до десяти разів.

Примітки

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

Див. також

Література

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

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.