En esta presentación, exploraremos cómo usar redes neuronales profundas para reconocer dígitos escritos a mano utilizando el dataset MNIST.
El MNIST (Modified National Institute of Standards and Technology) es un conjunto de datos de imágenes de dígitos escritos a mano, ampliamente utilizado en el aprendizaje automático y la visión por computadora.
Usamos la librería `Keras` para cargar el dataset MNIST en Python.
# Cargar el dataset MNIST
from tensorflow.keras.datasets import mnist
# Cargar los datos de entrenamiento y prueba
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# Normalizar las imágenes a valores entre 0 y 1
x_train, x_test = x_train / 255.0, x_test / 255.0
Ahora, vamos a crear y entrenar un modelo de red neuronal utilizando Keras.
# Importar las librerías necesarias
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam
# Crear el modelo secuencial
model = Sequential([
Flatten(input_shape=(28, 28)), # Convertir las imágenes 28x28 a un vector
Dense(128, activation='relu'), # Capa densa con 128 neuronas
Dense(10, activation='softmax') # Capa de salida con 10 clases
])
# Compilar el modelo
model.compile(optimizer=Adam(),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# Entrenar el modelo
model.fit(x_train, y_train, epochs=5)
Después de entrenar el modelo, podemos evaluarlo utilizando el conjunto de prueba.
# Evaluar el modelo
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Precisión en el conjunto de prueba: {test_acc}")
Finalmente, podemos usar el modelo para hacer predicciones sobre nuevas imágenes.
# Hacer una predicción sobre una imagen
import numpy as np
import matplotlib.pyplot as plt
# Seleccionar una imagen aleatoria del conjunto de prueba
image = x_test[0]
# Predecir el dígito
prediction = model.predict(np.expand_dims(image, axis=0))
predicted_digit = np.argmax(prediction)
# Mostrar la imagen y la predicción
plt.imshow(image, cmap='gray')
plt.title(f"Predicción: {predicted_digit}")
plt.show()
Al evaluar el modelo con el conjunto de datos de prueba, podemos calcular la precisión del modelo para medir su efectividad en la clasificación de imágenes.
El dataset MNIST es una excelente herramienta para comenzar con el aprendizaje automático en reconocimiento de imágenes. Hemos cubierto desde la preparación de los datos hasta la evaluación del modelo.