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. а б 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.
  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 (посилання)
  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.

Посилання[ред. | ред. код]