aprendizaje profundo4j | |
---|---|
Tipo de | Procesamiento del lenguaje natural , aprendizaje profundo , visión artificial , inteligencia artificial |
Autor | Adam Gibson , Chris Nicholson , Josh Patterson |
Desarrollador | Varios |
Escrito en | Java , Scala , CUDA , C , C++ , Python , Clojure |
Sistema operativo | Linux , macOS , Windows , Android |
Idiomas de la interfaz | inglés |
plataforma de hardware | multiplataforma |
ultima versión |
|
Estado | activo |
Licencia | apache 2.0 |
Sitio web | aprendizajeprofundo4j.org |
Deeplearning4j es una biblioteca de programación Java utilizada como marco de aprendizaje profundo [2] [3] [4] . Incluye implementaciones de Restricted Boltzmann Machine , Deep Web of Trust , Deep Autoencoder , Stacked Autoencoder with Noise Filtering, Recursive Tensor Neural Network , word2vec , doc2vec y GloVe . Estos algoritmos también se incluyen en las versiones informáticas distribuidas de la biblioteca integrada con las arquitecturas Apache Hadoop y Spark [5] .
Es un software de código abierto distribuido bajo la licencia Apache 2.0 [6] ; los principales desarrolladores son un grupo de aprendizaje automático en San Francisco dirigido por Adam Gibson [7] [8] , las implementaciones comerciales respaldan la puesta en marcha de Skymind .
Deeplearning4j está implementado en Java y se ejecuta en un entorno compatible con Clojure e incluye una interfaz ( API ) para el lenguaje Scala . La biblioteca opcional de código abierto ND4J proporciona computación en GPU habilitadas para CUDA [9] [10] . Además, existen herramientas para trabajar con la biblioteca Python a través del framework Keras [11] .
El marco le permite combinar componentes, combinando redes neuronales ordinarias con máquinas de Boltzmann, redes neuronales convolucionales, codificadores automáticos y redes recurrentes en un solo sistema. Además, se admiten herramientas de visualización avanzadas [12] . El entrenamiento se lleva a cabo tanto con la ayuda de redes neuronales multicapa convencionales, como para redes complejas en las que se define un grafo de cálculo [13] .
El aprendizaje en Deeplearning4j se realiza a través de clústeres. Las redes neuronales se entrenan en iteraciones paralelas, el proceso es compatible con las arquitecturas Hadoop -YARN y Spark [7] [14] . Deeplearning4j también se integra con la arquitectura central CUDA para operaciones de GPU puras y distribución de operaciones a GPU.
Deeplearning4j incluye una clase para trabajar con datos n - dimensionales en la biblioteca ND4J . Esto facilita el cálculo para tareas científicas en Java y Scala, mientras que la funcionalidad es similar al lenguaje NumPy para Python . El uso de estas herramientas permite resolver eficazmente problemas de álgebra lineal y transformaciones de matrices en aplicaciones prácticas.
La biblioteca DataVec vectoriza archivos en varios formatos de entrada y salida de manera similar a MapReduce ; mientras que los datos se transforman en una forma vectorial. DataVec vectoriza formato tabular CSV , imágenes, sonidos, textos, videos y secuencias de tiempo de datos [15] [16] .
Para procesar grandes volúmenes de textos utilizando la potencia de las GPU paralelas, Deeplearning4j utiliza herramientas de modelado de temas y vectores de Java .
La biblioteca incluye implementaciones de inversión de frecuencia ( TF-IDF ), aprendizaje profundo , el algoritmo word2vec [17] Mikolov [17] , doc2vec y GloVe, que están optimizados en Java. Esto utiliza el principio de incrustación estocástica de vecinos con la distribución de Student ( t-SNE ) para implementar una nube de palabras.
La biblioteca incluye protección contra interferencias externas y seguridad contra piratería, lo que es especialmente importante en tareas financieras [18] [19] , en sistemas industriales, en comercio electrónico y emprendimiento, se utilizan el reconocimiento de anomalías [20] y el reconocimiento de patrones [21]. . Deeplearning4j está integrado con otras plataformas de aprendizaje automático como RapidMiner, Prediction.io [22] y Weka [23] .
La comparación de rendimiento muestra que Deeplearning4j es comparable a Caffe en tareas de reconocimiento de patrones no triviales que involucran GPU paralelas [24] . Para los programadores que no están familiarizados con JVM HPC , existen varios parámetros que se pueden ajustar para mejorar el rendimiento del entrenamiento de la red neuronal. Estas opciones incluyen ajuste de memoria dinámica, algoritmo de recolección de basura , paginación de memoria y almacenamiento previo de datos para acelerar ETL [25] . Al combinar estas configuraciones, puede aumentar el rendimiento de Deeplearning4j hasta diez veces.
Programas de aprendizaje profundo | |
---|---|
software libre |
|
software no libre |
|
|