VAHID MIRJALILI / RASCHKA, SEBASTIAN / LIU, YUXI (HAYDEN)
Prefacio xxi
1. Dotar a los ordenadores de la capacidad de aprender de los datos 1
Creación de máquinas inteligentes para transformar los datos
en conocimiento ............................................................................................. 2
Los tres tipos de aprendizaje automático .......................................................... 3
Formulación de pronósticos sobre el futuro con el aprendizaje supervisado ? 3
Clasifi cación para pronosticar etiquetas de clase ? 4
Regresión para el pronóstico de resultados continuos ? 5
Resolución de problemas interactivos con el aprendizaje reforzado ? 7
Descubrimiento de estructuras ocultas con el aprendizaje no supervisado ? 8
Detección de subgrupos mediante el agrupamiento (clustering) ? 8
Reducción de la dimensionalidad para comprimir los datos ? 9
Introducción a la terminología básica y la notación ........................................ 10
Notación y convenciones que se utilizan en el libro ? 10
Terminología del aprendizaje automático ? 12
Hoja de ruta para crear sistemas de aprendizaje automático ........................... 13
Preprocesamiento: cómo dar forma a los datos ? 14
Entrenamiento y selección de modelos predictivos ? 14
Evaluación de modelos y pronóstico de instancias de datos ocultos ? 15
Utilización de Python en aprendizaje automático ........................................... 16
Instalación de Python y sus paquetes desde Python Package Index ? 16
Uso del gestor de paquetes y distribucion de Anaconda Python ? 17
Paquetes para computación científi ca, ciencia de datos y
aprendizaje automático ? 18
Resumen ....................................................................................................... 20
2. Entrenamiento de algoritmos sencillos de aprendizaje automático
para tareas de clasificación ............................................................ 21
Neuronas artifi ciales: un vistazo a la historia de los inicios del aprendizaje
automático .................................................................................................... 22
Defi nición formal de neurona artifi cial ? 23
Regla de aprendizaje del perceptrón ? 25
Implementación de algoritmos de aprendizaje del perceptrón en Python ........ 28
Una API del perceptrón orientada a objetos API ? 28
Entrenamiento de un modelo de perceptrón con el conjunto de datos Iris ? 32
Neuronas lineales adaptativas y convergencia del aprendizaje ......................... 38
Minimización de las funciones de pérdida con el descenso del gradiente ? 39
Implementación de Adaline en Python ? 42
Mejora del descenso del gradiente mediante el escalado de características ? 46
Aprendizaje automático a gran escala y descenso del gradiente estocástico ? 49
Resumen ....................................................................................................... 54
3. Un recorrido por los clasificadores de aprendizaje automático
con Scikit-learn ............................................................................ 57
Elección de un algoritmo de clasifi cación ....................................................... 57
Primeros pasos con Scikit-learn: entrenamiento del precetrón ........................ 58
Modelización de las probabilidades de clase mediante regresión logística ....... 64
Regresión logística y probabilidades condicionales ? 65
Aprendizaje de los pesos del modelo mediante la función de pérdida logística ? 69
Conversión de una implementación de Adaline en un algoritmo
de regresión logística ? 72
Entrenamiento de un modelo de regresión logística con Scikit-learn ? 76
Cómo abordar el sobreajuste utilizando la regularización ? 79
Clasifi cación de margen máximo con máquinas de vectores de soporte ........... 82
Intuición de margen máximo ? 83
Tratamiento de un caso no separable linealmente mediante variables
de holgura ? 84
Implementaciones alternativas en Scikit-learn ? 86
Resolución de problemas no lineales utilizando el kernel en SVM ................... 86
Métodos del kernel para datos no separables linealmente ? 86
Uso del truco del kernel para encontrar hiperplanos de separación
en un espacio de alta dimensión ? 89
Aprendizaje utilizando árboles de decisión ..................................................... 92
Maximización de IG: cómo sacar el máximo partido a su dinero ? 93
Creación de un árbol de decisión ? 98
Combinación de múltiples árboles de decisión mediante bosques aleatorios ? 100
K vecinos más cercanos: un algoritmo de aprendizaje perezoso .................... 104
Resumen ..................................................................................................... 108
4. Elaboración de conjuntos de datos de entrenamiento adecuados:
preprocesamiento ...................................................................... 109
Tratamiento de los datos que faltan .............................................................. 109
Identifi cación de los valores que faltan en las tablas de datos ? 110
Eliminación de ejemplos de entrenamiento o de características
con valores perdidos ? 111
Atribución de valores perdidos ? 112
Interpretación de la API del estimador de Scikit-learn ? 114
Tratamiento de datos categóricos ................................................................. 115
Codifi cación de datos categóricos con Pandas ? 115
Asignación de las características ordinales ? 116
Codifi cación de las etiquetas de clase ? 117
Codifi cación one-hot de las características nominales ? 118
Opcional: codifi cación de características ordinales ? 121
Partición del conjunto de datos en conjuntos de entrenamiento y
de prueba separados .................................................................................... 122
Las características deben estar en la misma escala ....................................... 125
Selección de características signifi cativas ..................................................... 128
Regularizaciones L1 y L2 como penalizaciones contra la complejidad
del modelo ? 128
Interpretación geométrica de la regularización L2 ? 129
Soluciones dispersas con la regularización L1 ? 130
Algoritmos de selección secuencial de características ? 134
Evaluación de la importancia de las características con bosques aleatorios .... 141
Resumen ..................................................................................................... 143
5. Compresión de datos mediante la reducción de la dimensionalidad .. 145
Reducción de la dimensionalidad no supervisada mediante el análisis
de componentes principales ....................................................................... 146
Etapas más importantes del análisis de componentes principales ? 146
Extracción de los componentes principales paso a paso ? 148
Varianzas total y explicada ? 151
Transformación de características ? 153
Análisis de componentes principales en Scikit-learn ? 156
Evaluación de las contribuciones de las características ? 159
Compresión de datos supervisados mediante el análisis discriminante lineal 162
Análisis de componentes principales frente al análisis discriminante lineal ? 162
Funcionamiento interno del análisis discriminante lineal ? 163
Cálculo de matrices de dispersión ? 164
Selección de discriminantes lineales para el nuevo espacio de características ?
166
Proyección de ejemplos en el nuevo espacio de características ? 169
LDA mediante Scikit-learn ? 170
Reducción de la dimensionalidad no lineal y visualización de datos .............. 172
¿Por qué considerar la reducción de la dimensionalidad no lineal? ? 172
Visualización de datos mediante la incorporación de vecinos estocásticos
distribuidos en t ? 174
Resumen ..................................................................................................... 177
6. Aprendizaje de las mejores prácticas para la evaluación
de modelos y el ajuste de hiperparámetros .................................... 179
Optimización de fl ujos de trabajo con pipelines ............................................ 179
Carga del conjunto de datos Breast Cancer Wisconsin ? 180
Combinación de transformadores y estimadores en una pipeline ? 182
Uso de la validación cruzada de k iteraciones (k subconjuntos) para
evaluar el rendimiento del modelo ............................................................... 184
El método de retención ? 184
Validación cruzada de k iteraciones ? 185
Depuración de algoritmos con curvas de aprendizaje y validación ................. 189
Diagnóstico de problemas de sesgo y varianza con curvas de aprendizaje ? 190
Como abordar el sobreajuste y el infraajuste con curvas de validación ? 193
Ajuste de los modelos de aprendizaje automático mediante
la búsqueda en la red ................................................................................... 195
Ajuste de hiperparámetros mediante la búsqueda en la red ? 195
Confi guraciones de los hiperparámetros con la búsqueda aleatoria ? 197
Búsqueda de hiperparámetros más efi ciente en recursos
con reducción sucesiva a la mitad ? 200
Selección de algoritmos con validación cruzada anidada ? 202
Observación de diferentes métricas de evaluación del rendimiento ............... 204
Lectura de la matriz de confusión ? 204
Optimización de la precisión y la recuperación de un modelo de clasifi cación ? 206
Representación de la característica operativa del receptor ? 209
Métricas de puntuación para la clasifi cación multiclase ? 211
Cómo hacer frente al desequilibrio de clases ? 212
Resumen ..................................................................................................... 215
7. Combinación de diferentes modelos para el aprendizaje de conjunto .... 217
Aprendizaje de conjunto .............................................................................. 217
Combinación de clasifi cadores mediante el voto mayoritario ......................... 221
Implementación de un clasifi cador de voto mayoritario sencillo ? 221
Utilización del principio de votación por mayoría para hacer pronósticos ? 226
Evaluación y ajuste del clasifi cador conjunto ? 229
Bagging: elaboración de un conjunto de clasifi cadores a partir
de muestras bootstrap .................................................................................. 235
Bagging en pocas palabras ? 236
Aplicación de bagging para clasifi car ejemplos en el conjunto de datos Wine ? 237
Aprovechamiento de los alumnos débiles mediante el refuerzo adaptativo ...... 241
Cómo funciona el refuerzo adaptativo ? 242
Apicación de AdaBoost con Scikit-learn ? 246
Refuerzo del gradiente: entrenamiento de un conjunto basado
en los gradientes de pérdida ........................................................................ 250
Comparación de AdaBoost con el refuerzo del gradiente ? 250
Esquema del algoritmo general de refuerzo del gradiente ? 251
Explicación del algoritmo de refuerzo del gradiente para la clasifi cación ? 253
Ilustración del refuerzo del gradiente para la clasifi cación ? 254
Utilización de XGBoost ? 257
Resumen ..................................................................................................... 259
8. Aplicación del aprendizaje automático al análisis de opiniones ........ 261
Preparación de datos de reseñas de películas de IMDb para
el tratamiento de textos ............................................................................... 262
Obtención del conjunto de datos de reseñas de películas ? 262
Preprocesamiento del conjunto de datos de películas en un formato
más conveniente ? 263
Presentación del modelo bolsa de palabras .................................................. 265
Transformación de palabras en vectores de características ? 265
Evaluación de la relevancia de las palabras mediante la frecuencia
de los términos-frecuencia inversa de los documentos ? 267
Limpieza de datos de texto ? 270
Procesamiento de documentos en tokens ? 272
Entrenamiento de un modelo de regresión logística para la clasifi cación
de documentos ............................................................................................ 274
Trabajo con conjuntos de datos más grandes: algoritmos en línea
y aprendizaje fuera del núcleo ..................................................................... 277
Modelado de temas con asignación latente de Dirichlet ................................. 281
Descomposición de documentos de texto con LDA ? 282
LDA con Scikit-learn ? 282
Resumen ..................................................................................................... 286
9. Pronóstico de variables objetivo continuas con análisis de regresión ... 289
Introducción a la regresión lineal ................................................................ 290
Regresión lineal simple ? 290
Regresión lineal múltiple ? 291
Exploración del conjunto de datos Ames Housing ......................................... 292
Carga del conjunto de datos Ames Housing en un DataFrame ? 292
Visualización de las características importantes de un conjunto de datos ? 294
Obserevaciones de las relaciones mediante la matriz de correlación ? 296
Implementación del modelo de regresión lineal mediante
mínimos cuadrados ordinarios .................................................................... 298
Resolución de la regresión para los parámetros de regresión
con el descenso del gradiente ? 299
Estimación del coefi ciente del modelo de regresión mediante Scikit-learn ? 303
Ajuste del modelo de regresión robusto mediante RANSAC ........................... 306
Evaluación del rendimiento de los modelos de regresión lineal ..................... 309
Uso de métodos regularizados para la regresión ........................................... 314
Conversión del modelo de regresión lineal en una curva:
regresión polinómica .................................................................................. 316
Adición de términos polinómicos usando Scikit-learn ? 316
Modelado de relaciones no lienales en el conjunto de datos Ames Housing ? 318
Tratamiento de relaciones no lineales mediante bosques aleatorios ............... 321
Regresión de árbol de decisión ? 321
Regresión de bosque aleatorio ? 323
Resumen ..................................................................................................... 326
10. El trabajo con datos no etiquetados: análisis de clustering ............. 327
Agrupación de objetos por similitud mediante k-means ................................ 328
Clustering de k-means con Scikit-learn ? 328
Una forma más inteligente de colocar los centroides iniciales
de los clústeres utilizando k-means++ ? 333
Clustering duro frente a clustering blando ? 334
Uso del método del codo para encontrar el número óptimo de clústeres ? 336
Cuantifi ación de la calidad del clustering mediante gráfi cos de silueta ? 337
Organización de clústeres en forma de árbol jeráquico ................................. 342
Agrupación de clústeres de forma ascendente ? 343
Realización de la agrupación jeráquica en la matriz de distancias ? 344
Anexión de dendrogramas a un mapa de calor ? 348
Aplicación de clustering aglomerativo a través de Scikit-learn ? 350
Localización de regiones de alta densidad mediante DBSCAN ........................ 351
Resumen ..................................................................................................... 356
11. Implementación de una red neuronal artificial multicapa desde cero .... 359
Modelado de funciones complejas con redes neuronales artifi ciales .............. 359
Resumen de redes neuronales de una capa ? 361
Introducción a la arquitectura de redes neuronales multicapa ? 363
Activación de una red neuronal por propagación hacia delante ? 365
Clasifi cación de dígitos escritos a mano ........................................................ 368
Obtención y preparación del conjunto de datos MNIST ? 368
Implementación del perceptrón multicapa ? 372
Codifi cación del bucle de entrenamiento de la red neuronal ? 377
Evaluación del rendimiento de la red neuronal ? 382
Entrenamiento de redes neuronales artifi ciales ............................................ 386
Cálculo de la función de pérdida ? 386
Desarrollo de conocimiento de la retropropagación ? 388
Entrenamiento de redes neuronales por retropropagación ? 390
Sobre la convergencia en redes neuronales .................................................. 394
Unas últimas palabras sobre la implementación de redes neuronales ............ 395
Resumen ..................................................................................................... 396
12. Paralelización de redes neuronales con PyTorch ............................ 397
PyTorch y el rendimiento del entrenamiento ................................................ 397
Retos del rendmiento ? 398
¿Qué es PyTorch? ? 399
Cómo vamos a aprender PyTorch ? 400
Primeros pasos con PyTorch ........................................................................ 400
Instalación de PyTorch ? 401
Creación de tensores en PyTorch ? 402
Manipulación del tipo de datos y la forma de tensores ? 403
Aplicación de operaciones matemáticas a tensores ? 404
División, apilamiento y concatenación de tensores ? 405
Elaboración de pipelines de entrada en PyTorch ........................................... 407
Creación de PyTorch DataLoader a partir de tensores existentes ? 408
Combinación de dos tensores en un conjunto de datos mixto ? 409
Barajar, agrupar y repetir ? 410
Creación de conjuntos de datos a partir de archivos del disco
de almacenamiento local ? 412
Obtención de los conjuntos de datos disponibles en la biblioteca
torchvision.datasets ? 416
Elaboración de modelos de NN en PyTorch ................................................... 420
Módulo de redes neuronales de PyTorch (torch.nn) ? 420
Elaboración de un modelo de regresión lineal ? 421
Entrenamiento de modelos mediante los módulos torch.nn y torch.optim ? 425
Elaboración de un perceptrón multicapa para clasifi car fl ores
en el conjunto de datos Iris ? 426
Evaluación del modelo entrenado en el conjunto de datos de prueba ? 429
Almacenamineto y recarga del modelo entrenado ? 430
Elección de funciones de activación para redes reuronales multicapa ............ 431
Recapitulación de la función logística ? 431
Estimación de las probabilidades de clase en la clasifi cación multiclase
mediante la función soft max ? 433
Ampliación del espectro de salida mediante la tangente hiperbólica ? 434
Activación de la unidad lineal rectifi cada ? 434
Resumen ..................................................................................................... 438
13. Profundización: la mecánica de PyTorch ...................................... 441
Características esenciales de PyTorch .......................................................... 442
Grafos de computación de PyTorch .............................................................. 443
Comprensión de los grafos de computación ? 443
Creación de grafos en PyTorch ? 443
Objetos tensoriales PyTorch para almacenar y actualizar
los parámetros del modelo ........................................................................... 444
Cálculo de gradientes mediante diferenciación automática ........................... 447
Cálculo de gradientes de pérdida con respecto a las variables entrenables ? 447
Comprensión de la diferenciación automática ? 449
Ejemplos adversarios ? 449
Simplifi cación de las implementaciones de arquitecturas más frecuentes
mediante el módulo torch.nn ....................................................................... 449
Implementación de modelos basados en nn.Sequential ? 450
Elección de la función de pérdida ? 451
Resolución de problemas de clasifi cación XOR ? 452
Cómo fl exibilizar la elaboración de modelos con nn.Module ? 457
Cómo escribir capas personalizadas en PyTorch ? 459
Proyecto uno: pronóstico de la efi ciencia de combustibles de coches ............. 464
Trabajo a realizar con columnas de características ? 464
Entrenamiento de modelos de regresión DNN ? 468
Proyecto dos: clasifi cación de dígitos escritos a mano del MNIST .................. 470
Las API de PyTorch de alto nivel: una breve introducción
a PyTorch-Lightning .................................................................................... 473
Confi guración del modelo PyTorch Lightning ? 474
Confi guración de los cargadores de datos para Lightning ? 477
Entrenamiento de modelos con la clase PyTorch Lightning Trainer ? 479
Evaluación del modelo con TensorBoard ? 479
Resumen ..................................................................................................... 483
14. Clasificación de imágenes con redes neuronales
convolucionales profundas ........................................................ 485
Componentes de las CNN ............................................................................. 485
Comprensión de las CNN y jerarquías de características ? 486
Realización de convoluciones discretas ? 488
Convoluciones discretas en una dimensión ? 489
Entradas de relleno para controlar el tamaño de los mapas
de características de salida ? 491
Determinación del tamaño de la salida de la convolución ? 493
Realización de convoluciones discretas en 2D ? 494
Capas de submuestreo ? 498
Poner todo junto: implementación de CNN ................................................... 499
Trabajo con varios canales de entrada o de color ? 500
Regularización de NN con regularización y abandono de L2 ? 503
Funciones de pérdida para la clasifi cación ? 507
Implementación de CNN profundas utilizando PyTorch ................................ 509
La arquitectura de CNN multicapa ? 509
Carga y preprocesamiento de datos ? 510
Implementación de CNN usando el módulo torch.nn ? 512
Confi guración de capas de CNN en PyTorch ? 512
Construcción de CNN en PyTorch ? 513
Clasifi cación de sonrisas a partir de imágenes faciales mediante CNN ........... 519
Carga del conjunto de datos CelebA ? 519
Transformación de imágenes e incremento de datos ? 520
Entrenamiento de un clasifi cador de sonrisas CNN ? 527
Resumen ..................................................................................................... 534
15. Modelado de datos secuenciales mediante redes neuronales
recurrentes ............................................................................... 537
Introducción a los datos secuenciales .......................................................... 537
Modelado de datos secuenciales: el orden importa ? 538
Datos secuenciales frente a datos de series temporales ? 538
Representación de secuencias ? 539
Diferentes categorías del modelado de secuencias ? 539
RNN para modelar secuencias ...................................................................... 541
Comprender el fl ujo de datos en las RNN ? 541
Cálculo de activaciones en RNN ? 543
Recurrencia oculta frente a recurrencia de salida ? 545
Retos del aprendizaje de las interacciones de largo alcance ? 548
Células de memoria a corto y largo plazo ? 550
Implementación de RNN para el modelado de secuencias en PyTorch ........... 552
Proyecto uno: pronóstico de las opiniones en las reseñas de cine de IMDb ? 552
Preparación de los datos de reseñas de películas ? 553
Capas de incorporación (embedding) para la codifi cación de frases ? 558
Elaboración de modelos RNN ? 560
Elaboración de un modelo RNN para la tarea de análisis de opiniones ? 561
Proyecto dos: modelado lingüístico a nivel de caracteres en PyTorch ? 566
Preprocesamiento del conjunto de datos ? 567
Elaboración de un modelo RNN a nivel de carácter ? 572
Fase de evaluación: generación de nuevos pasajes de texto ? 574
Resumen ..................................................................................................... 579
16. Transformadores: mejora del procesamiento del lenguaje
natural con mecanismos de atención ........................................... 581
Adición de un mecanismo de atención a las RNN .......................................... 582
El mecanismo de atención ayuda a las RNN a acceder a la información ? 582
Mecanismo de atención original para las RNN ? 583
Procesamiento de entradas mediante RNN bidireccional ? 584
Generación de salidas a partir de vectores de contexto ? 585
Cálculo de los pesos de atención ? 586
Introducción al mecanismo de autoatención ................................................ 587
Empezando por una forma básica de autoatención ? 587
Parameterización del mecanismo de autoatención: atención
del producto punto escalado ? 591
La atención es todo lo que necesitamos: introdución a la arquitectura
original del transformador .......................................................................... 595
Codifi cación de las incorporaciones de contexto mediante atención
multicabezal ? 597
Aprendizaje de un modelo lingüístico: decodifi cador y atención
multicabezal enmascarada ? 601
Detalles de la implementación: codifi caciones posicionales y
normalización de capas ? 602
Elaboración de modelos lingüísticos a gran escala aprovechando
los datos no etiquetados .............................................................................. 605
Preentrenamiento y ajuste de los modelos de transformadores ? 605
Aprovechamiento de datos no etiquetados con GPT ? 608
Utilización de GPT-2 para generar texto nuevo ? 612
Preentrenamiento bidireccional con BERT ? 614
Lo mejor de ambos mundos: BART ? 618
Reajuste de modelos BERT en PyTorch .......................................................... 621
Carga del conjunto de datos de reseñas de películas de IMDb ? 622
Tokenización del conjunto de datos ? 624
Carga y reajuste de modelos BERT preentrenados ? 625
Cómo reajustar los transformadores de forma más cómoda
mediante la API Trainer ? 630
Resumen ..................................................................................................... 634
17. Redes generativas antagónicas con las que sintetizar nuevos datos .... 637
Introducción a las redes generativas antagónicas .......................................... 637
Empezando por los autocodifi cadores ? 638
Modelos generativos para sintetizar nuevos datos ? 640
Generación de nuevas muestras con GAN ? 642
Comprensión de las funciones de perdida de las redes generadoras y
discriminadoras en un modelo GAN ? 643
Implementación de un modelo GAN desde cero ............................................ 645
Entrenamiento de modelos GAN en Google Colab ? 646
Implementación de las redes generadora y discriminadora ? 649
Defi nición del conjunto de datos de entrenamiento ? 652
Entrenamiento de modelos GAN ? 654
Mejora de la calidad de las imágenes sintetizadas mediante
GAN convolucionales y de Wasserstein .......................................................... 661
Convolución traspuesta ? 661
Normalización por lotes ? 663
Implementación del generador y del discriminador ? 666
Medidas de disimilitud entre dos distribuciones ? 673
Uso de la distancia EM en la prática para las GAN ? 677
Penalización del gradiente ? 677
Implementación de WGAN-GP para entrenar modelos DCGAN ? 678
Colapso de modo ? 683
Otras aplicaciones de las GAN ...................................................................... 684
Resumen ..................................................................................................... 685
18. Redes neuronales de grafos para captar las dependencias
en datos estructurados en grafos ................................................. 687
Introducción a los datos de grafos ................................................................ 688
Grafos no dirigidos ? 688
Grafos dirigidos ? 689
Grafos etiquetados ? 690
Representación de las moléculas como grafos ? 690
Comprensión de las convoluciones de grafos ................................................ 690
Motivaciones para utilizar las convoluciones de grafos ? 691
Implementación de una convolución básica de grafos ? 693
Implementación de GNN en PyTorch desde cero ........................................... 698
Defi nición del modelo NodeNetwork ? 698
Codifi cación de la capa de convolución del grafo de NodeNetwork ? 700
Preparación de DataLoader ? 704
Uso de NodeNetwork para hacer pronósticos ? 707
Implementación de GNN con la biblioteca PyTorch Geometric ...................... 708
Otras capas de GNN y desarrollos recientes .................................................. 714
Convoluciones de grafos espectrales ? 714
Reducción (pooling) ? 716
Normalización ? 718
Referencias a las redes neuronales de grafos en la literatura avanzada ? 719
Resumen ...................................................................................................... 721
19. Aprendizaje reforzado para la toma de decisiones
en entornos complejos .............................................................. 723
Introducción: aprender de la experiencia ..................................................... 724
Comprensión del aprendizaje reforzado ? 724
Defi nición de la interfaz agente-entorno de los sistemas
de aprendizaje reforzado ? 726
Fundamentos teóricos de RL ........................................................................ 727
Procesos de decisión de Markov ? 727
Formulación de los procesos de decisión de Markov ? 728
Visualización del proceso de Markov ? 730
Tareas episodicas o continuas ? 731
Terminología RL: retorno, política y función de valor ? 731
Retorno ? 732
Política ? 733
Función de valor ? 734
Programación dinámica mediante la ecuación de Bellman ? 735
Algoritmos de aprendizaje reforzado ............................................................ 736
Programación dinámica ? 737
Evaluación de políticas: pronóstico de la función de valor
con programación dinámica ? 738
Mejora de la política mediante la función de valor estimada ? 738
Iteración de la política ? 739
Itearción del valor ? 739
Aprendizaje reforzado con Monte Carlo ? 740
Estimación de la función de valor del estado mediante MC ? 741
Estimación de la función de valor de la acción mediante MC ? 741
Consecución de la política óptima mediante el control de MC ? 741
Mejora de la política: cálculo de la política codiciosa a partir
de la función de valor de la acción ? 742
Aprendizaje por diferencia temporal ? 742
Pronóstico TD ? 743
Control de TD en la política (SARSA) ? 744
Control de TD fuera de la política (Q-learning) ? 744
Implementación de nuestro primer algoritmo RL ......................................... 745
Presentación del kit de herramientas OpenAI Gym ? 745
El trabajo con los entornos existentes en OpenAI Gym ? 746
Ejemplo del tipo mundo cuadriculado ? 748
Implementación del entorno de mundo cuadriculado en OpenAI Gym ? 748
Resolución del problema de mundo cuadriculado con Q-learning ? 755
Un vistazo a Q-learning profundo ................................................................. 760
Entrenamiento de modelos DQN según el algoritmo Q-learning ? 761
Memoria de repetición ? 761
Determinación de los valores objetivo para el cálculo de la pérdida ? 762
Implementación del algoritmo Q-learning profundo ? 764
Resumen del capítulo y del libro .................................................................. 768
Si busca un manual de referencia sobre Machine Learning y Deep Learning con PyTorch, ha llegado al libro indicado. En él se explica paso a paso cómo construir sistemas de aprendizaje automático con éxito. Mientras que en algunos libros solo se enseña a seguir instrucciones, en este descubrirá los principios para crear modelos y aplicaciones por sí mismo. Encontrará multitud de explicaciones claras, visualizaciones y ejemplos, y aprenderá en profundidad todas las técnicas esenciales de Machine Learning.