Русская Википедия:Deeplearning4j
Deeplearning4j — библиотека программ на языке Java, используемая как фреймворк для глубокого обучения[1][2][3]. Включает реализацию ограниченной машины Больцмана, глубокой сети доверия, глубокого автокодировщика, стекового автокодировщика с фильтрацией шума, рекурсивной тензорной нейронной сети, word2vec, doc2vec, and 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 включает в себя класс для работы с Шаблон:Mvar-мерным массивом данных в библиотеке ND4J. Это облегчает вычисления для научных задач на языках Java и Scala, функциональность при этом соответствует языку NumPy для Pythonа. Использование этих средств позволяет эффективно решать задачи линейной алгебры и матричных преобразований в практических приложениях.
Библиотека векторизации DataVec для машинного обучения
Библиотека DataVec проводит векторизацию файлов в различных входных и выходных форматах методом, подобным MapReduce; при этом данные трансформируются в векторную форму. DataVec векторизирует табличный формат CSV, изображения, звуки, тексты, видео и временные последовательности данных[14][15].
Обработка естественного языка и текстов
Для обработки больших объёмов текстов с использованием мощности параллельных графических процессоров Deeplearning4j привлекает инструментарий векторного и тематического моделирования на языке Java.
В библиотеку входят реализации частотной инверсии (TF-IDF), глубинное обучение, алгоритм Миколова word2vec[16], doc2vec, и GloVe, которые оптимизированы на Java. При этом используется принцип стохастического встраивания соседей с распределением Стьюдента (Шаблон:Iw) для реализации облака слов.
Безопасность
В библиотеку включены средства защиты от внешнего вмешательства и безопасности от взлома, что особенно важно в финансовых задачах[17][18], в промышленных системах, в электронной коммерции и предпринимательстве применяется распознавание аномалий[19] и распознавание образов[20]. Deeplearning4j интегрирован с другими платформами машинного обучения — такими как RapidMiner, Prediction.io[21] и Weka[22].
Тесты производительности
Сопоставление производительности показывает, что Deeplearning4j сопоставим с Caffe в задачах нетривиального распознавания образов с привлечением параллельных графических процессоров[23]. Для программистов, незнакомых с HPC на JVM, имеется несколько параметров, которые можно регулировать для улучшения производительности обучения нейронных сетей. В эти параметры входит настройка динамической памяти, алгоритм сборки мусора, подкачка памяти и предварительное сохранение данных для ускорения ETL[24]. Комбинируя эти настройки, можно увеличить производительность Deeplearning4j до десяти раз.
См. также
Примечания
Литература
Ссылки
Шаблон:Вс Шаблон:Программы глубинного обучения
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 6,0 6,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ https://skymind.ai/bsa-amlШаблон:Недоступная ссылка
- ↑ Шаблон:Cite web
- ↑ https://skymind.ai/imageШаблон:Недоступная ссылка
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- Русская Википедия
- Применение искусственного интеллекта
- Искусственные нейронные сети
- Анализ данных
- Цифровая обработка изображений
- Машинное обучение
- Программное обеспечение для обработки естественного языка
- Библиотеки Java
- Свободное программное обеспечение, написанное на Java
- Свободное программное обеспечение, написанное на Scala
- Программное обеспечение с лицензией Apache Software License
- Глубокое обучение
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии