stringtranslate.com

Aprendizaje profundo4j

Eclipse Deeplearning4j es una biblioteca de programación escrita en Java para la máquina virtual Java (JVM). [2] [3] Es un marco con amplio soporte para algoritmos de aprendizaje profundo. [4] Deeplearning4j incluye implementaciones de la máquina restringida de Boltzmann , red de creencias profundas , codificador automático profundo, codificador automático de eliminación de ruido apilado y red tensorial neuronal recursiva , word2vec , doc2vec y GloVe . Todos estos algoritmos incluyen versiones paralelas distribuidas que se integran con Apache Hadoop y Spark . [5]

Deeplearning4j es un software de código abierto lanzado bajo la licencia Apache 2.0, [6] desarrollado principalmente por un grupo de aprendizaje automático con sede en San Francisco . [7] Cuenta con el respaldo comercial de la startup Skymind, que incluye DL4J, TensorFlow , Keras y otras bibliotecas de aprendizaje profundo en una distribución empresarial llamada Skymind Intelligence Layer. [8] Deeplearning4j se contribuyó a la Fundación Eclipse en octubre de 2017. [9] [10]

Introducción

Deeplearning4j se basa en el lenguaje de programación ampliamente utilizado Java , aunque es compatible con Clojure e incluye una interfaz de programación de aplicaciones (API) Scala . Está impulsado por su propia biblioteca de computación numérica de código abierto, ND4J, y funciona tanto con unidades centrales de procesamiento (CPU) como con unidades de procesamiento de gráficos (GPU). [11] [12]

Deeplearning4j se ha utilizado en varias aplicaciones comerciales y académicas. El código está alojado en GitHub . [13] Se mantiene un foro de soporte en Gitter . [14]

El marco es componible, lo que significa que se pueden agregar redes neuronales poco profundas, como máquinas de Boltzmann restringidas, redes convolucionales, codificadores automáticos y redes recurrentes, para crear redes profundas de distintos tipos. También cuenta con amplias herramientas de visualización [15] y un gráfico de cálculo. [dieciséis]

Repartido

El entrenamiento con Deeplearning4j se produce en un clúster. Las redes neuronales se entrenan en paralelo mediante una reducción iterativa, que funciona en Hadoop -YARN y en Spark . [7] [17] Deeplearning4j también se integra con kernels CUDA para realizar operaciones puras de GPU y funciona con GPU distribuidas.

Computación científica para la JVM

Deeplearning4j incluye una clase de matriz de n dimensiones que utiliza ND4J y que permite la computación científica en Java y Scala, similar a las funciones que NumPy proporciona a Python . Se basa efectivamente en una biblioteca para álgebra lineal y manipulación de matrices en un entorno de producción.

Biblioteca de vectorización DataVec para aprendizaje automático

DataVec vectoriza varios formatos de archivos y tipos de datos utilizando un sistema de formato de entrada/salida similar al uso de MapReduce por parte de Hadoop; es decir, convierte varios tipos de datos en columnas de escalares denominadas vectores . DataVec está diseñado para vectorizar archivos CSV, imágenes, sonido, texto, video y series de tiempo. [18] [19]

Texto y PNL

Deeplearning4j incluye un kit de herramientas de modelado de espacios vectoriales y modelado de temas , implementado en Java y que se integra con GPU paralelas para mejorar el rendimiento. Está diseñado para manejar grandes conjuntos de texto.

Deeplearning4j incluye implementaciones de frecuencia de términos-frecuencia de documentos inversa ( tf–idf ), aprendizaje profundo y el algoritmo word2vec de Mikolov, [20] doc2vec y GloVe, reimplementados y optimizados en Java. Se basa en la incrustación de vecinos estocásticos distribuidos en t (t-SNE) para visualizaciones de nubes de palabras.

Casos de uso e integraciones del mundo real

Los casos de uso del mundo real para Deeplearning4j incluyen detección de intrusiones en la red y ciberseguridad, detección de fraude para el sector financiero, [21] [22] detección de anomalías en industrias como la manufactura, sistemas de recomendación en comercio electrónico y publicidad, [23] y reconocimiento de imágenes. . [24] Deeplearning4j se ha integrado con otras plataformas de aprendizaje automático como RapidMiner, Prediction.io, [25] y Weka . [26]

Servidor de modelo de aprendizaje automático

Deeplearning4j ofrece modelos de aprendizaje automático para la inferencia en producción utilizando la edición gratuita para desarrolladores de SKIL, Skymind Intelligence Layer. [27] [28] Un servidor de modelos sirve a los modelos paramétricos de aprendizaje automático que toman decisiones sobre los datos. Se utiliza para la etapa de inferencia de un flujo de trabajo de aprendizaje automático, después de la canalización de datos y el entrenamiento de modelos. Un servidor modelo es la herramienta que permite implementar la investigación de ciencia de datos en un entorno de producción del mundo real.

Lo que un servidor web es para Internet, un servidor modelo es para la IA. Cuando un servidor web recibe una solicitud HTTP y devuelve datos sobre un sitio web, un servidor modelo recibe datos y devuelve una decisión o predicción sobre esos datos: por ejemplo, envía una imagen, un servidor modelo puede devolver una etiqueta para esa imagen, identificando rostros. o animales en fotografías.

El servidor de modelos SKIL puede importar modelos de marcos de Python como Tensorflow, Keras, Theano y CNTK, superando una barrera importante en la implementación de modelos de aprendizaje profundo.

Puntos de referencia

Deeplearning4j es tan rápido como Caffe para tareas de reconocimiento de imágenes no triviales que utilizan múltiples GPU. [29] Para los programadores que no están familiarizados con HPC en la JVM, existen varios parámetros que deben ajustarse para optimizar el tiempo de entrenamiento de la red neuronal. Estos incluyen configurar el espacio del montón, el algoritmo de recolección de basura, emplear memoria fuera del montón y guardar previamente los datos (decapado) para un ETL más rápido. [30] En conjunto, estas optimizaciones pueden conducir a una aceleración 10 veces mayor en el rendimiento con Deeplearning4j.

Lenguajes API: Java, Scala, Python, Clojure y Kotlin

Deeplearning4j se puede utilizar a través de múltiples lenguajes API, incluidos Java, Scala, Python, Clojure y Kotlin. Su API Scala se llama ScalNet. [31] Keras sirve como su API de Python. [32] Y su envoltorio Clojure se conoce como DL4CLJ. [33] Los lenguajes principales que realizan las operaciones matemáticas a gran escala necesarias para el aprendizaje profundo son C, C++ y CUDA C.

Tensorflow, Keras y aprendizaje profundo4j

Tensorflow, Keras y Deeplearning4j trabajan juntos. Deeplearning4j puede importar modelos de Tensorflow y otros marcos de Python si se han creado con Keras. [34]

Ver también

Referencias

  1. ^ "Lanzamientos · eclipse/deeplearning4j". github.com . Consultado el 3 de abril de 2021 .
  2. ^ Metz, Cade (2 de junio de 2014). "La misión de llevar la IA de Google al resto del mundo". Cableado.com . Consultado el 28 de junio de 2014 .
  3. ^ Vance, Ashlee (3 de junio de 2014). "Aprendizaje profundo para (algunas) personas". Semana empresarial de Bloomberg . Archivado desde el original el 4 de junio de 2014 . Consultado el 28 de junio de 2014 .
  4. ^ Novet, Jordania (14 de noviembre de 2015). "¿Quiere un marco de aprendizaje profundo de código abierto? Elija". VentureBeat . Consultado el 24 de noviembre de 2015 .
  5. ^ "Adam Gibson, DeepLearning4j sobre Spark y ciencia de datos en JVM con nd4j, SF Spark @Galvanize 20150212". Reunión de SF Spark . 2015-02-12 . Consultado el 1 de marzo de 2015 .
  6. ^ "Repositorio Github". GitHub . Abril 2020.
  7. ^ ab "deeplearning4j.org".
  8. ^ "Edición comunitaria Skymind Intelligence Layer". Archivado desde el original el 7 de noviembre de 2017 . Consultado el 2 de noviembre de 2017 .
  9. ^ "Página del proyecto Eclipse Deeplearning4j". 22 de junio de 2017.
  10. ^ "Deeplearning4j de Skymind, la Fundación Eclipse y la informática científica en la JVM". Jaxenter . 13 de noviembre de 2017 . Consultado el 15 de noviembre de 2017 .
  11. ^ Harris, Derrick (2 de junio de 2014). "Se lanza una startup llamada Skymind, que impulsa el aprendizaje profundo de código abierto". GigaOM.com . Archivado desde el original el 28 de junio de 2014 . Consultado el 29 de junio de 2014 .
  12. ^ Novet, Jordania (2 de junio de 2014). "Skymind se lanza con funciones de aprendizaje profundo plug-and-play de código abierto para su aplicación" . Consultado el 29 de junio de 2014 .
  13. ^ "aprendizaje profundo4j/aprendizaje profundo4j". 29 de abril de 2023 . Recuperado 29 de abril de 2023 - vía GitHub.
  14. ^ "Elemento". aplicación.gitter.im . Consultado el 29 de abril de 2023 .
  15. ^ "Herramientas de visualización Deeplearning4j". Archivado desde el original el 10 de agosto de 2017 . Consultado el 17 de agosto de 2016 .
  16. ^ "Gráfico de computación Deeplearning4j". Archivado desde el original el 10 de agosto de 2017 . Consultado el 17 de agosto de 2016 .
  17. ^ "Reducción iterativa". GitHub . 15 de marzo de 2020.
  18. ^ "DataVec ETL para aprendizaje automático". Archivado desde el original el 2 de octubre de 2017 . Consultado el 18 de septiembre de 2016 .
  19. ^ "Detección de anomalías para datos de series temporales con aprendizaje profundo". InfoQ . Consultado el 29 de abril de 2023 .
  20. ^ "Google Code Archive: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code". código.google.com . Consultado el 29 de abril de 2023 .
  21. ^ "Copia archivada". Archivado desde el original el 10 de marzo de 2016 . Consultado el 22 de febrero de 2016 .{{cite web}}: CS1 maint: archived copy as title (link)
  22. ^ "skymind.ai". skymind.ai . Consultado el 29 de abril de 2023 .
  23. ^ "Copia archivada". Archivado desde el original el 10 de marzo de 2016 . Consultado el 22 de febrero de 2016 .{{cite web}}: CS1 maint: archived copy as title (link)
  24. ^ "skymind.ai". skymind.ai . Consultado el 29 de abril de 2023 .
  25. ^ "DeepLearning4J (estable) | RapidMiner China". www.rapidminerchina.com . Archivado desde el original el 18 de mayo de 2016 . Consultado el 22 de mayo de 2022 .
  26. ^ "Inicio - WekaDeeplearning4j". deeplearning.cms.waikato.ac.nz . Consultado el 29 de abril de 2023 .
  27. ^ "Productos". Archivado desde el original el 21 de septiembre de 2017 . Consultado el 20 de septiembre de 2017 .
  28. ^ "Servidor modelo para aprendizaje profundo e inteligencia artificial: Deeplearning4j: aprendizaje profundo distribuido de código abierto para JVM". Archivado desde el original el 21 de septiembre de 2017 . Consultado el 20 de septiembre de 2017 .
  29. ^ "GitHub - deeplearning4j/Dl4j-benchmark: repositorio para rastrear el código de referencia dl4j". GitHub . 19 de diciembre de 2019.
  30. ^ "Parámetros de referencia de Deeplearning4j: Deeplearning4j: aprendizaje profundo distribuido y de código abierto para JVM". Archivado desde el original el 9 de agosto de 2017 . Consultado el 30 de enero de 2017 .
  31. ^ "Scala, Spark y Deeplearning4j - Deeplearning4j: aprendizaje profundo distribuido de código abierto para JVM". Archivado desde el original el 25 de febrero de 2017 . Consultado el 25 de febrero de 2017 .
  32. ^ "Ejecución de Keras con Deeplearning4j - Deeplearning4j: aprendizaje profundo distribuido de código abierto para JVM". Archivado desde el original el 25 de febrero de 2017 . Consultado el 25 de febrero de 2017 .
  33. ^ "Aprendizaje profundo con Clojure - Deeplearning4j: aprendizaje profundo distribuido de código abierto para JVM". Archivado desde el original el 25 de febrero de 2017 . Consultado el 25 de febrero de 2017 .
  34. ^ "Tensorflow y Deeplearning4j - Deeplearning4j: aprendizaje profundo distribuido de código abierto para JVM". Archivado desde el original el 8 de septiembre de 2017 . Consultado el 7 de septiembre de 2017 .