Перейти до вмісту

Deeplearning4j

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

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

Є відкритим програмним забезпеченням, поширюється під ліцензією 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. Архів оригіналу за 5 липня 2020. Процитовано 28 червня 2014.
  2. ↑ Vance, Ashlee (3 червня 2014). Deep Learning for (Some of) the People. Bloomberg Businessweek. Архів оригіналу за 25 червня 2014. Процитовано 28 червня 2014.
  3. ↑ Novet, Jordan (14 листопада 2015). Want an open-source deep learning framework? Take your pick. VentureBeat. Архів оригіналу за 18 грудня 2019. Процитовано 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. Архів оригіналу за 26 грудня 2015. Процитовано 1 березня 2015.
  5. ↑ Github Repository. Архів оригіналу за 24 вересня 2019. Процитовано 3 квітня 2020.
  6. 1 2 deeplearning4j.org. Архів оригіналу за 30 березня 2016. Процитовано 3 квітня 2020.
  7. ↑ Crunchbase Profile. Архів оригіналу за 31 липня 2017. Процитовано 3 квітня 2020.
  8. ↑ Harris, Derrick (2 червня 2014). A startup called Skymind launches, pushing open source deep learning. GigaOM.com. Архів оригіналу за 28 червня 2014. Процитовано 29 червня 2014. [Архівовано 2014-06-28 у Wayback Machine.]
  9. ↑ Novet, Jordan (2 червня 2014). Skymind launches with open-source, plug-and-play deep learning features for your app. Архів оригіналу за 28 вересня 2020. Процитовано 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. Архів оригіналу за 10 червня 2018. Процитовано 3 квітня 2020.
  14. ↑ DataVec ETL for Machine Learning. Архів оригіналу за 2 жовтня 2017. Процитовано 25 липня 2017.
  15. ↑ Anomaly Detection for Time Series Data with Deep Learning. Архів оригіналу за 28 вересня 2020. Процитовано 3 квітня 2020.
  16. ↑ word2vec. Архів оригіналу за 10 березня 2016. Процитовано 3 квітня 2020.
  17. ↑ Finance & Fraud | Skymind. Архів оригіналу за 10 березня 2016. Процитовано 25 липня 2017.
  18. ↑ https://skymind.ai/bsa-aml[недоступне посилання з Май 2018]
  19. ↑ Архивированная копия. Архів оригіналу за 10 березня 2016. Процитовано 22 лютого 2016.
  20. ↑ https://skymind.ai/image[недоступне посилання з Май 2018]
  21. ↑ Архівована копія. Архів оригіналу за 18 травня 2016. Процитовано 3 квітня 2020.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) [Архівовано 2016-05-18 у Archive.is]
  22. ↑ Generated Documentation (Untitled). Архів оригіналу за 23 серпня 2017. Процитовано 3 квітня 2020.
  23. ↑ GitHub — deeplearning4j/dl4j-benchmark: Repo to track dl4j benchmark code. Архів оригіналу за 22 липня 2020. Процитовано 3 квітня 2020.
  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.

Посилання

[ред. | ред. код]