Aprendizaje profundo

Book description

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Aunque el interés por el aprendizaje automático ha alcanzado su punto más alto, las grandes expectativas a menudo echan por tierra los proyectos antes de que lleguen muy lejos. ¿Cómo puede el aprendizaje máquina, especialmente las redes neuronales profundas, marcar una diferencia real en tu organización? Esta guÃa práctica no sólo proporciona la información más práctica disponible sobre el tema, sino que también te ayuda a empezar a construir redes de aprendizaje profundo eficientes.

Los autores Adam Gibson y Josh Patterson proporcionan teorÃa sobre el aprendizaje profundo antes de presentar su biblioteca de código abierto Deeplearning4j (DL4J) para desarrollar flujos de trabajo de clase de producción. A través de ejemplos del mundo real, aprenderás métodos y estrategias para entrenar arquitecturas de redes profundas y ejecutar flujos de trabajo de aprendizaje profundo en Spark y Hadoop con DL4J.

  • Sumérgete en los conceptos del aprendizaje automático en general, así como en el aprendizaje profundo en particular
  • Comprender cómo evolucionaron las redes profundas a partir de los fundamentos de las redes neuronales
  • Explorar las principales arquitecturas de redes profundas, incluidas las Convolucionales y Recurrentes
  • Aprende a asignar redes profundas específicas al problema adecuado
  • Recorre los fundamentos del ajuste de redes neuronales generales y arquitecturas de redes profundas específicas
  • Utiliza técnicas de vectorización para distintos tipos de datos con DataVec, la herramienta de flujo de trabajo de DL4J
  • Aprende a utilizar DL4J de forma nativa en Spark y Hadoop

Table of contents

  1. Prefacio
    1. ¿Qué contiene este libro?
    2. ¿Quién es "el profesional"?
    3. ¿Quién debería leer este libro?
      1. El Profesional del Aprendizaje Automático en la Empresa
      2. El Ejecutivo de Empresa
      3. El académico
    4. Convenciones utilizadas en este libro
    5. Utilizar ejemplos de código
    6. Notas administrativas
    7. Safari O'Reilly
    8. Cómo contactar con nosotros
    9. Agradecimientos
      1. Josh
      2. Adam
  2. 1. Una revisión del aprendizaje automático
    1. Las máquinas de aprender
      1. ¿Cómo pueden aprender las máquinas?
      2. Inspiración biológica
      3. ¿Qué es el aprendizaje profundo?
      4. Bajando por la madriguera del conejo
    2. Formular las preguntas
    3. Las matemáticas detrás del aprendizaje automático: Álgebra lineal
      1. Escaras
      2. Vectores
      3. Matrices
      4. Tensores
      5. Hiperplanos
      6. Operaciones matemáticas relevantes
      7. Convertir datos en vectores
      8. Resolución de sistemas de ecuaciones
    4. Las matemáticas detrás del aprendizaje automático: Estadística
      1. Probabilidad
      2. Probabilidades condicionales
      3. Probabilidad posterior
      4. Distribuciones
      5. Muestras frente a población
      6. Métodos de remuestreo
      7. Sesgo de selección
      8. Probabilidad
    5. ¿Cómo funciona el aprendizaje automático?
      1. Regresión
      2. Clasificación
      3. Agrupación
      4. Infraadaptación y sobreadaptación
      5. Optimización
      6. Optimización convexa
      7. Descenso Gradiente
      8. Descenso Gradiente Estocástico
      9. Métodos de Optimización Quasi-Newton
      10. Modelos Generativos Versus Discriminativos
    6. Regresión logística
      1. La función logística
      2. Comprender los resultados de la regresión logística
    7. Evaluación de modelos
      1. La matriz de la confusión
    8. Comprender el aprendizaje automático
  3. 2. Fundamentos de las redes neuronales y el aprendizaje profundo
    1. Redes neuronales
      1. La neurona biológica
      2. El perceptrón
      3. Redes Multicapa Feed-Forward
    2. Entrenamiento de redes neuronales
      1. Aprendizaje por retropropagación
    3. Funciones de activación
      1. Lineal
      2. Sigmoide
      3. Tanh
      4. Tanh Duro
      5. Softmax
      6. Rectificado Lineal
    4. Funciones de pérdida
      1. Notación de la función de pérdida
      2. Funciones de pérdida para la regresión
      3. Funciones de pérdida para la clasificación
      4. Funciones de pérdida para la reconstrucción
    5. Hiperparámetros
      1. Tasa de aprendizaje
      2. Regularización
      3. Impulso
      4. Dispersión
  4. 3. Fundamentos de las redes profundas
    1. Definición del aprendizaje profundo
      1. ¿Qué es el aprendizaje profundo?
      2. Organización de este capítulo
    2. Principios arquitectónicos comunes de las redes profundas
      1. Parámetros
      2. Capas
      3. Funciones de activación
      4. Funciones de pérdida
      5. Algoritmos de optimización
      6. Hiperparámetros
      7. Resumen
    3. Bloques de construcción de las redes profundas
      1. RBMs
      2. Autocodificadores
      3. Autocodificadores variacionales
  5. 4. Principales arquitecturas de las redes profundas
    1. Redes preentrenadas no supervisadas
      1. Redes profundas de creencias
      2. Redes Generativas Adversariales
    2. Redes neuronales convolucionales (CNN)
      1. Inspiración biológica
      2. Intuición
      3. Visión general de la arquitectura de la CNN
      4. Capas de entrada
      5. Capas convolucionales
      6. Agrupar capas
      7. Capas totalmente conectadas
      8. Otras aplicaciones de las CNN
      9. CNNs de interés
      10. Resumen
    3. Redes neuronales recurrentes
      1. Modelar la dimensión temporal
      2. Entrada volumétrica 3D
      3. ¿Por qué no modelos de Markov?
      4. Arquitectura general de la red neuronal recurrente
      5. Redes LSTM
      6. Aplicaciones específicas de dominio y redes combinadas
    4. Redes neuronales recursivas
      1. Arquitectura de red
      2. Variedades de redes neuronales recursivas
      3. Aplicaciones de las redes neuronales recursivas
    5. Resumen y debate
      1. ¿Hará obsoleto el aprendizaje profundo a otros algoritmos?
      2. Diferentes problemas tienen diferentes mejores métodos
      3. ¿Cuándo necesito aprendizaje profundo?
  6. 5. Construir redes profundas
    1. Adaptar las redes profundas al problema adecuado
      1. Datos Columnares y Perceptrones Multicapa
      2. Imágenes y redes neuronales convolucionales
      3. Secuencias de series temporales y redes neuronales recurrentes
      4. Utilizar redes híbridas
    2. El conjunto de herramientas DL4J
      1. Vectorización y DataVec
      2. Tiempos de ejecución y ND4J
    3. Conceptos básicos de la API DL4J
      1. Cargar y guardar modelos
      2. Obtener información para el modelo
      3. Configurar la arquitectura del modelo
      4. Formación y evaluación
    4. Modelado de datos CSV con redes perceptrón multicapa
      1. Configurar los datos de entrada
      2. Determinar la arquitectura de red
      3. Entrenar el modelo
      4. Evaluación del modelo
    5. Modelado de imágenes manuscritas mediante CNNs
      1. Listado de código Java para la CNN LeNet
      2. Cargar y vectorizar las imágenes de entrada
      3. Arquitectura de red para LeNet en DL4J
      4. Entrenamiento de la CNN
    6. Modelización de datos secuenciales mediante redes neuronales recurrentes
      1. Generar Shakespeare mediante LSTMs
      2. Clasificación de secuencias de series temporales de sensores mediante LSTMs
    7. Uso de autocodificadores para la detección de anomalías
      1. Listado de código Java para el ejemplo de autocodificador
      2. Configurar los datos de entrada
      3. Arquitectura y entrenamiento de la red de autocodificadores
      4. Evaluación del modelo
    8. Uso de autocodificadores variacionales para reconstruir dígitos MNIST
      1. Listado de códigos para reconstruir dígitos MNIST
      2. Examinar el modelo VAE
    9. Aplicaciones del Aprendizaje Profundo en el Procesamiento del Lenguaje Natural
      1. Aprender a incrustar palabras con Word2Vec
      2. Representaciones distribuidas de frases con vectores de párrafos
      3. Utilización de vectores de párrafo para la clasificación de documentos
  7. 6. Ajuste de redes profundas
    1. Conceptos básicos en el ajuste de redes profundas
      1. Una intuición para construir redes profundas
      2. Construir la intuición como un proceso paso a paso
    2. Adecuación de los datos de entrada y las arquitecturas de red
      1. Resumen
    3. Relacionar las capas de objetivos y resultados del modelo
      1. Capa de salida del modelo de regresión
      2. Capa de salida del modelo de clasificación
    4. Trabajar con el recuento de capas, el recuento de parámetros y la memoria
      1. Redes neuronales multicapa Feed-Forward
      2. Control de los recuentos de capas y parámetros
      3. Estimación de los requisitos de memoria de la red
    5. Estrategias de inicialización del peso
    6. Uso de las funciones de activación
      1. Tabla resumen de las funciones de activación
    7. Aplicación de las funciones de pérdidas
    8. Comprender los ritmos de aprendizaje
      1. Utilizar la relación entre actualizaciones y parámetros
      2. Recomendaciones específicas para los índices de aprendizaje
    9. Cómo afecta la dispersión al aprendizaje
    10. Aplicación de métodos de optimización
      1. Buenas prácticas de la SGD
    11. Utilizar la paralelización y las GPU para un entrenamiento más rápido
      1. Aprendizaje en línea y algoritmos iterativos paralelos
      2. Paralelizar SGD en DL4J
      3. GPUs
    12. Controlar las épocas y el tamaño de los minilotes
      1. Comprender las ventajas y desventajas del tamaño de los minilotes
    13. Cómo utilizar la regularización
      1. Priores como regularizadores
      2. Regularización Max-Normal
      3. Abandono
      4. Otros temas de regularización
    14. Trabajar con el desequilibrio de clases
      1. Métodos de muestreo de clases
      2. Funciones de pérdida ponderada
    15. Hacer frente al sobreajuste
    16. Uso de las Estadísticas de Red desde la IU de Ajuste
      1. Detectar una mala inicialización del peso
      2. Detectar datos no barajados
      3. Detectar problemas con la regularización
  8. 7. Ajuste de arquitecturas específicas de redes profundas
    1. Redes neuronales convolucionales (CNN)
      1. Patrones arquitectónicos convolucionales comunes
      2. Configuración de las capas convolucionales
      3. Configurar capas de agrupamiento
      4. Aprendizaje por transferencia
    2. Redes neuronales recurrentes
      1. Datos de entrada a la red y capas de entrada
      2. Capas de salida y RnnOutputLayer
      3. Formación de la Red
      4. Depuración de problemas comunes con LSTMs
      5. Relleno y enmascaramiento
      6. Evaluación y puntuación con enmascaramiento
      7. Variantes de Arquitecturas de Redes Recurrentes
    3. Máquinas de Boltzmann restringidas
      1. Unidades ocultas y modelización de la información disponible
      2. Utilizar diferentes unidades
      3. Uso de la regularización con RBM
    4. DBNs
      1. Utilizar el impulso
      2. Utilizar la regularización
      3. Determinar el recuento de unidades ocultas
  9. 8. Vectorización
    1. Introducción a la vectorización en el aprendizaje automático
      1. ¿Por qué necesitamos vectorizar los datos?
      2. Estrategias para tratar atributos de datos brutos en columnas
      3. Ingeniería de rasgos y técnicas de normalización
    2. Uso de DataVec para ETL y vectorización
    3. Vectorizar datos de imagen
      1. Representación de datos de imagen en DL4J
      2. Normalización de datos de imagen y vectores con DataVec
    4. Trabajar con datos secuenciales en vectorización
      1. Principales variaciones de las fuentes de datos secuenciales
      2. Vectorizar datos secuenciales con DataVec
    5. Trabajar con texto en vectorización
      1. Bolsa de palabras
      2. TF-IDF
      3. Comparación entre Word2Vec y VSM
    6. Trabajar con gráficos
  10. 9. Uso del Aprendizaje Profundo y DL4J en Spark
    1. Introducción al uso de DL4J con Spark y Hadoop
      1. Utilizar Spark desde la línea de comandos
    2. Configurar y ajustar la ejecución de Spark
      1. Ejecutar Spark en Mesos
      2. Ejecutar Spark en YARN
      3. Guía general de ajuste de la chispa
      4. Ajuste de trabajos DL4J en Spark
    3. Configuración de un modelo de objetos de proyecto Maven para Spark y DL4J
      1. Una plantilla de dependencia del archivo pom.xml
      2. Configurar un archivo POM para CDH 5.X
      3. Configuración de un archivo POM para HDP 2.4
    4. Solución de problemas de Spark y Hadoop
      1. Problemas comunes con ND4J
    5. Ejecución paralela de DL4J en Spark
      1. Un ejemplo de entrenamiento Spark mínimo
    6. Buenas prácticas de la API DL4J para Spark
    7. Ejemplo de chispa de perceptrón multicapa
      1. Configuración de la arquitectura de red MLP para Spark
      2. Entrenamiento distribuido y evaluación de modelos
      3. Construir y ejecutar un trabajo DL4J Spark
    8. Generar textos de Shakespeare con Spark y la memoria a largo plazo
      1. Configuración de la arquitectura de la red LSTM
      2. Formación, seguimiento del progreso y comprensión de los resultados
    9. Modelado de MNIST con una red neuronal convolucional en Spark
      1. Configurar el trabajo Spark y cargar los datos MNIST
      2. Configuración de la arquitectura LeNet CNN y entrenamiento
  11. A. ¿Qué es la Inteligencia Artificial?
    1. La historia hasta ahora
      1. Definición del aprendizaje profundo
      2. Definición de Inteligencia Artificial
    2. ¿Qué está impulsando el interés actual por la IA?
    3. Llega el invierno
  12. B. RL4J y aprendizaje por refuerzo
    1. Preliminares
      1. Proceso de Decisión de Markov
      2. Terminología
    2. Diferentes ajustes
      1. Sin modelo
      2. Entorno de observación
      3. Juegos de un jugador y de adversario
    3. Q-Learning
      1. De la política a las redes neuronales
      2. Iteración de la política
      3. Exploración frente a explotación
      4. Ecuación de Bellman
      5. Muestreo del estado inicial
      6. Implantación de Q-Learning
      7. Modelización Q(s,a)
      8. Repetición de la experiencia
      9. Capas convolucionales y preprocesamiento de imágenes
      10. Procesamiento histórico
      11. Doble aprendizaje Q
      12. Recorte
      13. Escala de recompensas
      14. Repetición priorizada
    4. Gráfico, visualización y media Q
    5. RL4J
    6. Conclusión
  13. C. Números que todo el mundo debería conocer
  14. D. Redes neuronales y retropropagación: Un enfoque matemático
    1. Introducción
    2. La retropropagación en un perceptrón multicapa
  15. E. Utilizar la API de ND4J
    1. Diseño y uso básico
      1. Comprender las NDArrays
      2. Sintaxis general de ND4J
      3. Aspectos básicos del trabajo con NDArrays
      4. Conjunto de datos
    2. Crear vectores de entrada
      1. Fundamentos de la creación de vectores
    3. Uso de MLLibUtil
      1. Conversión de INDArray a Vector MLLib
      2. Conversión de vector MLLib a INDArray
    4. Hacer predicciones de modelos con DL4J
      1. Utilizar juntos el DL4J y el ND4J
  16. F. Uso de DataVec
    1. Cargar datos para el aprendizaje automático
    2. Cargar datos CSV para Perceptrones Multicapa
    3. Cargar datos de imágenes para redes neuronales convolucionales
    4. Cargar datos de secuencias para redes neuronales recurrentes
    5. Transformación de datos: Manipulación de datos con DataVec
      1. Transformaciones DataVec: Conceptos clave
      2. Funcionalidad de la Transformación DataVec: Un ejemplo
  17. G. Trabajar con DL4J desde el origen
    1. Verificar que Git está instalado
    2. Clonación de proyectos clave DL4J GitHub
    3. Descarga del código fuente mediante un archivo Zip
    4. Utilizar Maven para compilar código fuente
  18. H. Configuración de proyectos DL4J
    1. Crear un nuevo proyecto DL4J
      1. Java
      2. Trabajar con Maven
      3. IDEs
    2. Configuración de otros POM de Maven
      1. ND4J y Maven
  19. I. Configuración de GPUs para proyectos DL4J
    1. Cambiar Backends a GPU
      1. Elegir una GPU
      2. Entrenamiento en un sistema de múltiples GPU
    2. CUDA en diferentes plataformas
    3. Monitoreo del rendimiento de la GPU
      1. Interfaz de Gestión del Sistema NVIDIA
  20. J. Resolución de problemas en instalaciones DL4J
    1. Instalación anterior
    2. Errores de memoria al instalar desde el origen
    3. Versiones anteriores de Maven
    4. Variables Maven y PATH
    5. Versiones JDK malas
    6. C++ y otras herramientas de desarrollo
    7. Ventanas y rutas de inclusión
    8. Monitoreo de GPUs
    9. Utilizar la JVisualVM
    10. Trabajar con Clojure
    11. OS X y la compatibilidad con flotadores
    12. Error de Fork-Join en Java 7
    13. Precauciones
      1. Otros repositorios locales
      2. Comprueba las dependencias de Maven
      3. Reinstalar dependencias
      4. Si todo lo demás falla
    14. Diferentes plataformas
      1. OS X
      2. Windows
      3. Linux
  21. Índice
  22. Sobre los autores

Product information

  • Title: Aprendizaje profundo
  • Author(s): Josh Patterson, Adam Gibson
  • Release date: October 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9798341602717