Блицкриг
- 1 year ago
- 0
- 0
Deeplearning4j — библиотека программ на языке Java , используемая как фреймворк для глубокого обучения . Включает реализацию ограниченной машины Больцмана , глубокой сети доверия , глубокого автокодировщика , стекового автокодировщика с фильтрацией шума, рекурсивной тензорной нейронной сети , word2vec , doc2vec, and . Эти алгоритмы включены также в версии библиотеки, поддерживающие распределённые вычисления , интегрированные с архитектурами Apache Hadoop и Spark .
Является открытым программным обеспечением , распространяется под лицензией Apache 2.0 ; основные разработчики — группа машинного обучения в Сан-Франциско во главе с Адамом Гибсоном , коммерческие внедрения поддерживают стартап .
Deeplearning4j реализована на языке Java и выполняется в среде, при этом совместима с Clojure и включает интерфейс ( API ) для языка Scala . Дополнительная библиотека открытого доступа обеспечивает вычисления на графических процессорах с поддержкой CUDA . Кроме того, имеются средства для работы с библиотекой на языке Python через фреймворк Keras .
Фреймворк позволяет комбинировать компоненты, объединяя обычные нейронные сети с машинами Больцмана, свёрточными нейронными сетями, автокодировщиками и рекуррентными сетями в одну систему. Кроме того, поддерживаются расширенные средства визуализации . Обучение проводится как с помощью обычных многослойных нейронных сетей, так и для сложных сетей , в которых определён граф вычислений .
Обучение в Deeplearning4j осуществляется через кластеры. Нейронные сети обучаются параллельно по итерациям, процесс поддерживается архитектурами Hadoop -YARN и Spark . Deeplearning4j осуществляет также интеграцию с ядром архитектуры CUDA для осуществления чистых операций с GPU и распределения операций на графических процессорах.
Deeplearning4j включает в себя класс для работы с n -мерным массивом данных в библиотеке . Это облегчает вычисления для научных задач на языках Java и Scala, функциональность при этом соответствует языку NumPy для Pythonа . Использование этих средств позволяет эффективно решать задачи линейной алгебры и матричных преобразований в практических приложениях.
Библиотека DataVec проводит векторизацию файлов в различных входных и выходных форматах методом, подобным MapReduce ; при этом данные трансформируются в векторную форму. DataVec векторизирует табличный формат CSV , изображения, звуки, тексты, видео и временные последовательности данных .
Для обработки больших объёмов текстов с использованием мощности параллельных графических процессоров Deeplearning4j привлекает инструментарий векторного и тематического моделирования на языке Java.
В библиотеку входят реализации частотной инверсии ( TF-IDF ), глубинное обучение , алгоритм Миколова word2vec , doc2vec, и GloVe, которые оптимизированы на Java. При этом используется принцип стохастического встраивания соседей с распределением Стьюдента ( ) для реализации облака слов.
В библиотеку включены средства защиты от внешнего вмешательства и безопасности от взлома, что особенно важно в финансовых задачах , в промышленных системах, в электронной коммерции и предпринимательстве применяется распознавание аномалий и распознавание образов . Deeplearning4j интегрирован с другими платформами машинного обучения — такими как RapidMiner, Prediction.io и Weka .
Сопоставление производительности показывает, что Deeplearning4j сопоставим с Caffe в задачах нетривиального распознавания образов с привлечением параллельных графических процессоров . Для программистов, незнакомых с HPC на JVM, имеется несколько параметров, которые можно регулировать для улучшения производительности обучения нейронных сетей. В эти параметры входит настройка динамической памяти, алгоритм сборки мусора , подкачка памяти и предварительное сохранение данных для ускорения ETL . Комбинируя эти настройки, можно увеличить производительность Deeplearning4j до десяти раз.