Deeplearning4j
Deeplearning4j — бібліотека програм мовою Java, яка використовується як фреймворк для глибокого навчання[1][2][3]. Включає реалізацію через обмежену машину Больцмана, глибинну мережу переконань, глибокий автокодувальник, стековий автокодувальник з фільтрацією шуму, рекурсивну тензорну нейронну мережу, word2vec, doc2vec та GloVe. Ці алгоритми включено також у версії бібліотеки, що підтримують розподілені обчислення, інтегровані з архітектурою Apache Hadoop і Spark[4].
Тип | обробка природної мови, глибинне навчання, комп'ютерний зір, штучний інтелект |
---|---|
Автор(и) | Адам Ґібсон, Кріс Ніколсон, Джош Паттерсон |
Розробник | Адам Ґібсон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 до десяти разів.
Примітки
- Metz, Cade (2 червня 2014). The Mission to Bring Google's AI to the Rest of the World. Wired.com. Процитовано 28 червня 2014.
- Vance, Ashlee (3 червня 2014). Deep Learning for (Some of) the People. Bloomberg Businessweek. Процитовано 28 червня 2014.
- Novet, Jordan (14 листопада 2015). Want an open-source deep learning framework? Take your pick. VentureBeat. Процитовано 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. Процитовано 1 березня 2015.
- Github Repository.
- deeplearning4j.org.
- Crunchbase Profile.
- Harris, Derrick (2 червня 2014). A startup called Skymind launches, pushing open source deep learning. GigaOM.com. Процитовано 29 червня 2014.
- Novet, Jordan (2 червня 2014). Skymind launches with open-source, plug-and-play deep learning features for your app. Процитовано 29 червня 2014.
- Архивированная копия. Архів оригіналу за 25 лютого 2017. Процитовано 25 липня 2017.
- Deeplearning4j Visualization Tools. Архів оригіналу за 10 серпня 2017. Процитовано 25 липня 2017.
- Deeplearning4j Computation Graph. Архів оригіналу за 10 серпня 2017. Процитовано 25 липня 2017.
- Iterative reduce.
- DataVec ETL for Machine Learning. Архів оригіналу за 2 жовтня 2017. Процитовано 25 липня 2017.
- Anomaly Detection for Time Series Data with Deep Learning
- word2vec
- Finance & Fraud | Skymind. Архів оригіналу за 10 березня 2016. Процитовано 25 липня 2017.
- https://skymind.ai/bsa-aml%5Bнедоступне+посилання+з+Май+2018%5D
- Архивированная копия. Архів оригіналу за 10 березня 2016. Процитовано 22 лютого 2016.
- https://skymind.ai/image%5Bнедоступне+посилання+з+Май+2018%5D
- https://www.rapidminerchina.com/en/products/shop/product/deeplearning4j/%5Bнедоступне+посилання+з+Январь+2018%5D
- Generated Documentation (Untitled)
- GitHub — deeplearning4j/dl4j-benchmark: Repo to track dl4j benchmark code
- Benchmarking with DL4J and ND4J | Deeplearning4j. Архів оригіналу за 9 серпня 2017. Процитовано 25 липня 2017.
Література
- Паттерсон Дж., Гибсон А. Глубокое обучение с точки зрения практика = Deep Learning. A Practitioner’s Approach. — ДМК-Пресс, 2018. — 418 с. — ISBN 978-5-97060-481-6.