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 до десяти разів.
Примітки
- ↑ Metz, Cade (2 червня 2014). The Mission to Bring Google's AI to the Rest of the World. Wired.com. Архів оригіналу за 5 липня 2020. Процитовано 28 червня 2014.
- ↑ Vance, Ashlee (3 червня 2014). Deep Learning for (Some of) the People. Bloomberg Businessweek. Архів оригіналу за 25 червня 2014. Процитовано 28 червня 2014.
- ↑ Novet, Jordan (14 листопада 2015). Want an open-source deep learning framework? Take your pick. VentureBeat. Архів оригіналу за 18 грудня 2019. Процитовано 24 листопада 2015.
- ↑ 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.
- ↑ Github Repository. Архів оригіналу за 24 вересня 2019. Процитовано 3 квітня 2020.
- ↑ а б deeplearning4j.org. Архів оригіналу за 30 березня 2016. Процитовано 3 квітня 2020.
- ↑ Crunchbase Profile. Архів оригіналу за 31 липня 2017. Процитовано 3 квітня 2020.
- ↑ Harris, Derrick (2 червня 2014). A startup called Skymind launches, pushing open source deep learning. GigaOM.com. Архів оригіналу за 28 червня 2014. Процитовано 29 червня 2014.
- ↑ Novet, Jordan (2 червня 2014). Skymind launches with open-source, plug-and-play deep learning features for your app. Архів оригіналу за 28 вересня 2020. Процитовано 29 червня 2014.
- ↑ Архивированная копия. Архів оригіналу за 25 лютого 2017. Процитовано 25 липня 2017.
- ↑ Deeplearning4j Visualization Tools. Архів оригіналу за 10 серпня 2017. Процитовано 25 липня 2017.
- ↑ Deeplearning4j Computation Graph. Архів оригіналу за 10 серпня 2017. Процитовано 25 липня 2017.
- ↑ Iterative reduce. Архів оригіналу за 10 червня 2018. Процитовано 3 квітня 2020.
- ↑ DataVec ETL for Machine Learning. Архів оригіналу за 2 жовтня 2017. Процитовано 25 липня 2017.
- ↑ Anomaly Detection for Time Series Data with Deep Learning. Архів оригіналу за 28 вересня 2020. Процитовано 3 квітня 2020.
- ↑ word2vec. Архів оригіналу за 10 березня 2016. Процитовано 3 квітня 2020.
- ↑ Finance & Fraud | Skymind. Архів оригіналу за 10 березня 2016. Процитовано 25 липня 2017.
- ↑ https://skymind.ai/bsa-aml[недоступне посилання з Май 2018]
- ↑ Архивированная копия. Архів оригіналу за 10 березня 2016. Процитовано 22 лютого 2016.
- ↑ https://skymind.ai/image[недоступне посилання з Май 2018]
- ↑ Архівована копія. Архів оригіналу за 18 травня 2016. Процитовано 3 квітня 2020.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Generated Documentation (Untitled). Архів оригіналу за 23 серпня 2017. Процитовано 3 квітня 2020.
- ↑ GitHub — deeplearning4j/dl4j-benchmark: Repo to track dl4j benchmark code. Архів оригіналу за 22 липня 2020. Процитовано 3 квітня 2020.
- ↑ Benchmarking with DL4J and ND4J | Deeplearning4j. Архів оригіналу за 9 серпня 2017. Процитовано 25 липня 2017.
Див. також
Література
- Паттерсон Дж., Гибсон А. Глубокое обучение с точки зрения практика = Deep Learning. A Practitioner’s Approach. — ДМК-Пресс, 2018. — 418 с. — ISBN 978-5-97060-481-6.
Посилання
- Офіційний сайт
- deeplearning4j на GitHub
- ND4J: N-Dimensional Arrays for Java and Scala, A Linear Algebra Library. Архів оригіналу за 1 червня 2020. Процитовано 5 травня 2022.
- Java Magazine by Oracle: Deep Learning in Java. Архів оригіналу за 24 вересня 2015.
- п
- о
- р
- Apache SINGA[en]
- Caffe
- Deeplearning4j
- Dlib
- Keras
- Microsoft Cognitive Toolkit
- MXNet
- ONNX
- PyTorch
- TensorFlow
- Theano
- Torch
- Maple
- Neural Designer[en]
- Wolfram Mathematica
- Apple Core ML
- Категорія
- Порівняння