Tu primera red neuronal con Keras
Clase 4 de 29 • Curso de Fundamentos de Redes Neuronales con Python y Keras
Resumen
¿Cómo crear una red neuronal en Keras usando MNIST?
En el fascinante mundo de las redes neuronales, dar el primer paso puede resultar intimidante. Sin embargo, herramientas como Keras nos ofrecen la posibilidad de iniciar de manera sencilla y eficiente. En esta guía, exploraremos cómo construir tu primera red neuronal utilizando el conjunto de datos MNIST, un banco de imágenes de dígitos manuscritos ampliamente utilizado en el aprendizaje automático. Aprenderás a configurar el entorno, cargar y preparar los datos, y desarrollar una arquitectura básica de red neuronal.
¿Cómo configurar el entorno de trabajo?
Antes de sumergirnos en el código, es esencial asegurarnos de que nuestro entorno de trabajo esté adecuadamente configurado para maximizar el uso de recursos computacionales disponibles.
- Utiliza Google Colab: Esta plataforma no solo proporciona un entorno de Python interactivo, sino que también ofrece acceso a potentes GPUs que aceleran el entrenamiento de modelos.
- Configura el uso de GPU:
- Ve a
Runtime
>Change runtime type
. - Selecciona
GPU
como el acelerador de hardware.
- Ve a
¿Cuáles son las librerías necesarias?
Para comenzar nuestro trabajo con redes neuronales, necesitamos importar algunas librerías cruciales que nos permitirán manejar los datos y construir el modelo de manera efectiva.
import numpy as np
from keras import layers, models
from keras.utils import to_categorical
from keras.datasets import mnist
import matplotlib.pyplot as plt
¿Cómo cargar y explorar el dataset MNIST?
El dataset MNIST es fundamental para la formación de redes neuronales debido a su simplicidad y facilidad de uso.
# Cargar el dataset
(train_data, train_labels), (test_data, test_labels) = mnist.load_data()
# Inspeccionar la forma de los datos de entrenamiento
print(train_data.shape) # Output: (60000, 28, 28)
- El dataset contiene 70,000 imágenes de 28x28 píxeles en escala de grises.
- Los valores de los píxeles varían entre 0 y 255.
¿Cómo visualizar y entender los datos?
Para comprender mejor al conjunto de datos, podemos visualizar ejemplos individuales.
plt.imshow(train_data[0], cmap='gray')
plt.title(f"Etiquetas: {train_labels[0]}")
plt.show()
¿Cómo construir la arquitectura de la red neuronal?
La construcción de la red neuronal implica definir los modelos y las capas adecuadas para procesar los datos.
# Definir el modelo secuencial
model = models.Sequential()
# Agregar las capas
model.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))
model.add(layers.Dense(10, activation='softmax'))
¿Cómo preparar los datos para el modelo?
Antes de entrenar, necesitamos preparar los datos para una optimización eficaz. Esto implica transformar las dimensiones y codificar las etiquetas.
# Replantear y normalizar los datos de entrada
x_train = train_data.reshape((60000, 28 * 28)).astype('float32') / 255
x_test = test_data.reshape((10000, 28 * 28)).astype('float32') / 255
# Codificar las etiquetas
y_train = to_categorical(train_labels)
y_test = to_categorical(test_labels)
¿Cuál es el siguiente paso: compilar y evaluar el modelo?
Una vez que el modelo está definido, lo compilamos y evaluamos su rendimiento.
# Compilar el modelo
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
# Ver resumen de la arquitectura del modelo
model.summary()
- Optimizer: Se utiliza
rmsprop
para ajustar los pesos del modelo. - Loss:
categorical_crossentropy
es apropiada para problemas multicategoría. - Metrics: La métrica de éxito es
accuracy
.
¿Cómo se preparan los datos para el entrenamiento de la red?
El pre-procesamiento de datos es crucial para mejorar el rendimiento y la claridad del modelo.
- Reformatear dimensiones: Se ajustan de 3D a 2D.
- Normalización: Los valores de píxel se escalan a un rango de 0-1.
- Codificación One-Hot: Las etiquetas se transforman en un formato que destila mejor las clases para la red.
En este tutorial, has aprendido a establecer las bases esenciales para trabajar con redes neuronales utilizando Keras y el dataset MNIST. Con estos conocimientos, estás bien preparado para entrenar y evaluar tu modelo en las siguientes fases. ¡No te detengas aquí y sigue explorando el apasionante universo del aprendizaje automático!