Inicio/Profesional/TICs y Computación/Programación/PYTHON DEEP LEARNING – Introducción práctica con Keras y TensorFlow 2

PYTHON DEEP LEARNING – Introducción práctica con Keras y TensorFlow 2

$688

Hay existencias

Autor:  TORRES I VIÑALS, Jordi

Páginas:   384

Año:   2020

Edición:   1

Editorial:  Alfaomega –  Marcombo

Apoyos:   Web

Presentación:

E-Book:

Nivel:  

Encuadernación:  Rústica

Hay existencias

ISBN: 9786075386133 Categorías: ,

Descripción

El presente libro está enfocado en mostrar al lector, de una manera práctica y concreta, el interesante mundo que surge al usar Deep Learning; se trata de una guía para adquirir los conocimientos que permitan trabajar con Deep Learning mediante la librería TensorFlow, la cual es preciso utilizar si se quiere desarrollar y evaluar modelos Deep Learning. La librería TensorFlow permite prescindir en gran medida de las matemáticas al iniciarse o crear proyectos generadores de valor para una empresa. El contenido de esta obra muestra ejemplos de código práctico introducidos de forma lineal para explicar los conceptos fundamentales en lugar de enfocarse en conceptos teóricos que pueden resultar abrumadores para un lector que no cuenta con los conocimientos previos mínimos en Machine Learning. Empero, es imperativo tener en cuenta que aquí sólo se puede analizar una pequeña parte, ya que es imposible exponer en un único libro el alcance total de Deep Learning.

VENTAJAS

• Cuenta con una página web que contiene material complementario y cuyo código aparece en las primeras páginas del libro.
• Contiene notas de referencia y explicativas al pie de página, además de múltiples figuras explicativas.
• Cuenta con numerosos ejemplos prácticos.
• Contiene un índice alfabético que servirá al lector para una consulta puntual en determinado concepto de interés.

CONOZCA

• En qué consiste Deep Learning y cuál es su entorno de trabajo.
• Las características y el funcionamiento de las principales librerías de Python.
• Cómo funcionan las redes neuronales.
• Cada una de las fases de un proyecto Deep Learning.

APRENDA

• A entrenar una red neuronal usando la API de Keras.
• A programar modelos de Deep Learning con Keras.
• A trabajar con las actuales redes neuronales llamadas Generative Adversarial Networks (GAN).
• A programar una red neuronal convolucional.

DESARROLLE SUS HABILIDADES PARA

• Evaluar cómo se comporta una red neuronal con datos nuevos de prueba (test).
• Desarrollar aplicaciones de Deep Learning en el entorno de trabajo TensorFlow.
• Utilizar hiperparámetros para la configuración de la estructura de una red neuronal.
• Conseguir los datos para entrenar redes neuronales.

Prefacio ………………………………………………………………………………………………………….. 17
Acerca de este libro ………………………………………………………………………………………… 19
PARTE 1: INTRODUCCIÓN ………………………………………………………………………………. 23
CAPÍTULO 1. ¿Qué es el Deep Learning? ………………………………………………………… 25
1.1. Inteligencia artificial ……………………………………………………………………………….. 26
1.1.1. La inteligencia artificial está cambiando nuestras vidas ……………………….. 26
1.1.2. Clases de inteligencia artificial ………………………………………………………….. 28
1.2. Machine Learning ………………………………………………………………………………….. 29
1.3. Redes neuronales y Deep Learning …………………………………………………………. 31
1.3.1. Redes neuronales artificiales ……………………………………………………………. 31
1.3.2. Las Deep Networks básicas ……………………………………………………………… 33
1.4. ¿Por qué ahora? …………………………………………………………………………………… 34
1.4.1. La supercomputación corazón del Deep Learning ………………………………. 34
1.4.2. Los datos, el combustible para la inteligencia artificial …………………………. 42
1.4.3. Democratización de la computación ………………………………………………….. 43
1.4.4. Una comunidad de investigación muy colaborativa ……………………………… 44
CAPÍTULO 2. Entorno de trabajo ……………………………………………………………………… 47
2.1. Entorno de trabajo …………………………………………………………………………………. 47
2.2. TensorFlow y Keras ………………………………………………………………………………. 52
2.2.1. TensorFlow …………………………………………………………………………………….. 52
2.2.2. Keras …………………………………………………………………………………………….. 54
CAPÍTULO 3. Python y sus librerías ………………………………………………………………… 57
3.1. Conceptos básicos de Python …………………………………………………………………. 57
3.1.1. Primeros pasos ………………………………………………………………………………. 57
3.1.2. Sangrado en Python ……………………………………………………………………….. 59
3.1.3. Variables, operadores y tipos de datos ………………………………………………. 60
3.1.4. Tipos de estructuras de datos …………………………………………………………… 62
3.1.5. Sentencias de control de flujo …………………………………………………………… 65
3.1.6. Funciones ………………………………………………………………………………………. 67
3.1.7. Clases …………………………………………………………………………………………… 68
3.1.8. Decoradores …………………………………………………………………………………… 70
3.2. Librería NumPy ……………………………………………………………………………………… 72
3.2.1. Tensor …………………………………………………………………………………………… 72
3.2.2. Manipulación de los tensores ……………………………………………………………. 75
3.2.3. Valor máximo en un tensor ………………………………………………………………. 77

PARTE 2: FUNDAMENTOS DEL DEEP LEARNING ……………………………………………. 79
CAPÍTULO 4. Redes neuronales densamente conectadas ………………………………… 81
4.1. Caso de estudio: reconocimiento de dígitos ……………………………………………… 81
4.2. Una neurona artificial …………………………………………………………………………….. 84
4.2.1. Introducción a la terminología y notación básica …………………………………. 84
4.2.2. Algoritmos de regresión …………………………………………………………………… 85
4.2.3. Una neurona artificial simple …………………………………………………………….. 86
4.3. Redes neuronales …………………………………………………………………………………. 89
4.3.1. Perceptrón ……………………………………………………………………………………… 89
4.3.2. Perceptrón multicapa ………………………………………………………………………. 90
4.3.3. Perceptrón multicapa para clasificación …………………………………………….. 93
4.4. Función de activación softmax ………………………………………………………………… 94
CAPÍTULO 5. Redes neuronales en Keras ……………………………………………………….. 99
5.1. Precarga de los datos en Keras ………………………………………………………………. 99
5.2. Preprocesado de datos de entrada en una red neuronal ………………………….. 102
5.3. Definición del modelo …………………………………………………………………………… 105
5.4. Configuración del proceso de aprendizaje ………………………………………………. 108
5.5. Entrenamiento del modelo ……………………………………………………………………. 108
5.6. Evaluación del modelo …………………………………………………………………………. 110
5.7. Generación de predicciones ………………………………………………………………….. 112
5.8. Todos los pasos de una tirada ………………………………………………………………. 114
CAPÍTULO 6. Cómo se entrena una red neuronal …………………………………………… 125
6.1. Proceso de aprendizaje de una red neuronal ………………………………………….. 125
6.1.1. Visión global …………………………………………………………………………………. 125
6.1.2. Proceso iterativo de aprendizaje de una red neuronal ……………………….. 128
6.1.3. Piezas clave del proceso de backpropagation…………………………………… 130
6.2. Descenso del gradiente ………………………………………………………………………… 130
6.2.1. Algoritmo básico de descenso del gradiente …………………………………….. 131
6.2.2. Tipos de descenso del gradiente …………………………………………………….. 133
6.3. Función de pérdida ………………………………………………………………………………. 135
6.4. Optimizadores …………………………………………………………………………………….. 136
CAPÍTULO 7. Parámetros e hiperparámetros en redes neuronales …………………. 139
7.1. Parametrización de los modelos ……………………………………………………………. 139
7.1.1. Motivación por los hiperparámetros …………………………………………………. 139
7.1.2. Parámetros e hiperparámetros ……………………………………………………….. 140
7.1.3. Grupos de hiperparámetros ……………………………………………………………. 141

7.2. Hiperparámetros relacionados con el algoritmo de aprendizaje …………………. 141
7.2.1. Número de epochs ………………………………………………………………………… 141
7.2.2. Batch size …………………………………………………………………………………….. 142
7.2.3. Learning rate y learning rate decay …………………………………………………. 142
7.2.4. Momentum …………………………………………………………………………………… 143
7.2.5. Inicialización de los pesos de los parámetros ……………………………………. 145
7.3. Funciones de activación ……………………………………………………………………….. 145
7.4. Practicando con una clasificación binaria ……………………………………………….. 148
7.4.1. TensorFlow Playground …………………………………………………………………. 148
7.4.2. Clasificación con una sola neurona …………………………………………………. 151
7.4.3. Clasificación con más de una neurona …………………………………………….. 152
7.4.4. Clasificación con varias capas ………………………………………………………… 154
CAPÍTULO 8. Redes neuronales convolucionales…………………………………………… 157
8.1. Introducción a las redes neuronales convolucionales……………………………….. 157
8.2. Componentes básicos de una red neuronal convolucional ……………………….. 159
8.2.1. Operación de convolución ………………………………………………………………. 159
8.2.2. Operación de pooling …………………………………………………………………….. 162
8.3. Implementación de un modelo básico en Keras ………………………………………. 165
8.3.1. Arquitectura básica de una red neuronal convolucional ……………………… 165
8.3.2. Un modelo simple …………………………………………………………………………. 166
8.3.3. Configuración, entrenamiento y evaluación del modelo ……………………… 169
8.4. Hiperparámetros de la capa convolucional ……………………………………………… 170
8.4.1. Tamaño y número de filtros ……………………………………………………………. 170
8.4.2. Padding ……………………………………………………………………………………….. 170
8.4.3. Stride …………………………………………………………………………………………… 172
8.5. Conjunto de datos Fashion-MNIST ………………………………………………………… 173
8.5.1. Modelo básico ………………………………………………………………………………. 173
8.5.2. Capas y optimizadores …………………………………………………………………… 174
8.5.3. Capas de Dropout y BatchNormalization ………………………………………….. 177
8.5.4. Decaimiento del ratio de aprendizaje ……………………………………………….. 179
PARTE 3: TÉCNICAS DEL DEEP LEARNING ………………………………………………….. 183
CAPÍTULO 9. Etapas de un proyecto Deep Learning ………………………………………. 185
9.1. Definición del problema ………………………………………………………………………… 186
9.2. Preparar los datos ……………………………………………………………………………….. 187
9.2.1. Obtener los datos ………………………………………………………………………….. 187
9.2.2. Separar los datos para entrenar y evaluar el modelo …………………………. 190

9.3. Desarrollar el modelo …………………………………………………………………………… 194
9.3.1. Definir el modelo …………………………………………………………………………… 194
9.3.2. Configuración del modelo ………………………………………………………………. 195
9.3.3. Entrenamiento del modelo ……………………………………………………………… 197
9.4. Evaluación del modelo …………………………………………………………………………. 199
9.4.1. Visualización del proceso de entrenamiento …………………………………….. 199
9.4.2. Overfitting …………………………………………………………………………………….. 200
9.4.3. Early stopping……………………………………………………………………………….. 201
9.4.4. Evaluación del modelo con los datos de prueba ……………………………….. 203
9.4.5. Entrenamiento con MAE ………………………………………………………………… 203
CAPÍTULO 10. Datos para entrenar redes neuronales …………………………………….. 205
10.1. ¿Dónde encontrar datos para entrenar redes neuronales? ……………………… 205
10.1.1. Conjuntos de datos públicos ………………………………………………………….. 206
10.1.2. Conjuntos de datos precargados ……………………………………………………. 207
10.1.3. Conjuntos de datos de Kaggle ……………………………………………………….. 207
10.2. ¿Cómo descargar y usar datos reales? …………………………………………………. 208
10.2.1. Caso de estudio: «Dogs vs. Cats» ………………………………………………….. 208
10.2.2. Datos para entrenar, validar y probar ……………………………………………… 210
10.2.3. Modelo de reconocimiento de imágenes reales ……………………………….. 216
10.2.4. Preprocesado de datos reales con ImageDataGenerator ………………….. 219
10.3. Solucionar problemas de sobreentrenamiento ……………………………………….. 220
10.3.1. Modelos a partir de conjuntos de datos pequeños ……………………………. 220
10.3.2. Visualización del comportamiento del entrenamiento ………………………… 223
10.3.3. Técnicas de prevención del sobreentrenamiento ……………………………… 227
CAPÍTULO 11. Data Augmentation y Transfer Learning ………………………………….. 231
11.1. Data Augmentation …………………………………………………………………………….. 231
11.1.1. Transformaciones de imágenes ……………………………………………………… 231
11.1.2. Configuración de ImageGenerator ………………………………………………….. 232
11.1.3. Código del caso de estudio ……………………………………………………………. 234
11.2. Transfer Learning ……………………………………………………………………………….. 238
11.2.1. Concepto de Transfer Learning ……………………………………………………… 238
11.2.2. Feature Extraction ………………………………………………………………………… 239
11.2.3. Fine-Tuning …………………………………………………………………………………. 246
CAPÍTULO 12. Arquitecturas avanzadas de redes neuronales ………………………… 255
12.1. API funcional de Keras ……………………………………………………………………….. 255
12.1.1. Modelo secuencial ………………………………………………………………………… 255

12.1.2. Modelos complejos ……………………………………………………………………….. 258
12.2. Redes neuronales preentreenadas ……………………………………………………….. 262
12.2.1. Redes neuronales con nombre propio …………………………………………….. 262
12.2.2. Acceso a redes preentrenadas con la API Keras ……………………………… 263
12.3. Uso de redes preentrenadas con Keras ………………………………………………… 268
12.3.1. Conjunto de datos CIFAR-10 …………………………………………………………. 268
12.3.2. Red neuronal ResNet50 ………………………………………………………………… 270
12.3.3. Red neuronal VGG19 ……………………………………………………………………. 272
PARTE 4: DEEP LEARNING GENERATIVO …………………………………………………….. 275
CAPÍTULO 13. Redes neuronales recurrentes ………………………………………………… 277
13.1. Conceptos básicos de las redes neuronales recurrentes …………………………. 278
13.1.1. Neurona recurrente ………………………………………………………………………. 278
13.1.2. Memory cell …………………………………………………………………………………. 279
13.1.3. Backpropagation a través del tiempo ………………………………………………. 280
13.1.4. Exploding Gradients y Vanishing Gradients……………………………………… 281
13.1.5. Long-Short Term Memory ……………………………………………………………… 282
13.2. Vectorización de texto …………………………………………………………………………. 282
13.2.1. One-hot encoding …………………………………………………………………………. 283
13.2.2. Word embedding ………………………………………………………………………….. 284
13.2.3. Embedding layer de Keras …………………………………………………………….. 286
13.2.4. Usando embedding preentrenados …………………………………………………. 286
13.3. Programando una RNN: generación de texto …………………………………………. 287
13.3.1. Character-Level Language Models …………………………………………………. 288
13.3.2. Descarga y preprocesado de los datos ……………………………………………. 289
13.3.3. Preparación de los datos para ser usados por la RNN ………………………. 291
13.3.4. Construcción del modelo RNN ……………………………………………………….. 294
13.3.5. Entrenamiento del modelo RNN …………………………………………………….. 297
13.3.6. Generación de texto usando el modelo RNN……………………………………. 299
13.3.7. Generando texto falso de Shakespeare …………………………………………… 303
CAPÍTULO 14. Generative Adversarial Networks ……………………………………………. 307
14.1. Generative Adversarial Networks …………………………………………………………. 307
14.1.1. Motivación por las GAN …………………………………………………………………. 308
14.1.2. Arquitectura de las GAN ………………………………………………………………… 309
14.1.3. Proceso de entrenamiento …………………………………………………………….. 310
14.2. Programando una GAN ………………………………………………………………………. 311
14.2.1. Preparación del entorno y descarga de datos ………………………………….. 314

14.2.2. Creación de los modelos ……………………………………………………………….. 315
14.2.3. Funciones de pérdida y optimizadores ……………………………………………. 321
14.3. Entrenamiento con la API de bajo nivel de TensorFlow ………………………….. 323
14.3.1. API de bajo nivel de TensorFlow …………………………………………………….. 323
14.3.2. Algoritmo de aprendizaje a bajo nivel ……………………………………………… 324
14.3.3. Entrenamiento de las redes GAN …………………………………………………… 325
14.3.4. Mejora del rendimiento computacional con decoradores de funciones … 329
14.3.5. Evaluación de los resultados …………………………………………………………. 330
Clausura ……………………………………………………………………………………………………….. 337
Apéndices …………………………………………………………………………………………………….. 339
Apéndice A: Traducción de los principales términos ……………………………………… 341
Apéndice B: Tutorial de Google Colaboratory ………………………………………………… 345
Apéndice C: Breve tutorial de TensorFlow Playground ………………………………….. 359
Apéndice D: Arquitectura de ResNet50 ………………………………………………………….. 369
Agradecimientos …………………………………………………………………………………………… 377
Índice alfabético ……………………………………………………………………………………………. 379

Información adicional

Peso .950 kg
Dimensiones 23 × 17 × 3 cm

Título

Ir a Arriba