Desentrañando el Poder Visual: Redes Neuronales Convolucionales en Acción
Redes Neuronales Convolucionales (Imágenes):
En esta oportinidad, exploraremos un avance crucial en el aprendizaje profundo: las Redes Neuronales Convolucionales (CNN). Diseñadas específicamente para procesar datos visuales, las CNN han transformado la manera en que abordamos problemas de reconocimiento de imágenes.
Entenderemos cómo las capas convolucionales detectan patrones visuales como bordes y texturas y cómo las capas de agrupación reducen la dimensionalidad para extraer características relevantes. Nos sumergiremos en ejemplos prácticos, incluyendo la clasificación de dígitos escritos a mano (MNIST dataset), para apreciar la eficacia de las CNN en la visión por computadora.
Conceptos claves:
- Redes neuronales convolucionales (CNNs): Un tipo de red neuronal artificial que se utiliza para procesar imágenes y datos espaciales.
- Convolución: Una operación matemática que se utiliza para detectar patrones en imágenes.
- Pooling: Una operación matemática que se utiliza para reducir la dimensionalidad de una imagen.
- Capas completamente conectadas: Capas que se utilizan al final de una CNN para realizar la clasificación o la regresión.
Para mejor comprensión:
Aplicación práctica:
Trabajaremos en un código que pueda identificar números de manera gráfica, para facilitar el proceso te sugiero que tengas a mano un archivo de tipo imagen y que su contenido sea un número de entre el 0 y el 9.
Ejecutando este código, entrenamos al modelo agregando la parte de clasificación y el resultado de la precisión de la prueba es la siguiente:
Epoch 1/10 1875/1875 [=] - 12s 4ms/step - loss: 0.1460 - accuracy: 0.9565 - val_loss: 0.0485 - val_accuracy: 0.9841 Epoch 2/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0438 - accuracy: 0.9861 - val_loss: 0.0350 - val_accuracy: 0.9889 Epoch 3/10 1875/1875 [=] - 7s 4ms/step - loss: 0.0307 - accuracy: 0.9906 - val_loss: 0.0261 - val_accuracy: 0.9921 Epoch 4/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0240 - accuracy: 0.9929 - val_loss: 0.0313 - val_accuracy: 0.9905 Epoch 5/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0185 - accuracy: 0.9941 - val_loss: 0.0327 - val_accuracy: 0.9892 Epoch 6/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0150 - accuracy: 0.9951 - val_loss: 0.0383 - val_accuracy: 0.9886 Epoch 7/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0129 - accuracy: 0.9957 - val_loss: 0.0247 - val_accuracy: 0.9938 Epoch 8/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0103 - accuracy: 0.9966 - val_loss: 0.0398 - val_accuracy: 0.9909 Epoch 9/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0101 - accuracy: 0.9966 - val_loss: 0.0284 - val_accuracy: 0.9919 Epoch 10/10 1875/1875 [=] - 8s 4ms/step - loss: 0.0080 - accuracy: 0.9973 - val_loss: 0.0433 - val_accuracy: 0.9904 313/313 - 1s - loss: 0.0433 - accuracy: 0.9904 - 612ms/epoch - 2ms/step Test accuracy: 0.9904000163078308
Al 99% de efectividad, para probar el modelo, crearemos una función para cargar una imagen y que esta pueda ser leída por el programa, estea es:
Ahora solo ejecutamos el modelo con la predicción de la imagen cargada que desde luego debe ser un número.
Si el número a predecir lo cargamos y ejecutamos el modelo el resultado es:
1/1 [==============================] - 0s 17ms/step Número predicho: 0
Desde luego si trabajas desde GoogleColab, debes cargar la imagen del número a predecir como lo siguiente:
Puedes probar con todos los números, la idea es probar el modelo y ajustar si es necesario. También puedes practicar en el siguiente enlace: https://ringa-tech.com/cnn/numeros/.
Conclusión
Al finalizar, reflexionaremos sobre cómo las CNN han revolucionado la visión por computadora, permitiendo a las máquinas "ver" e interpretar el mundo visual de manera similar a los humanos. Destacaremos la importancia de las CNN en campos como el reconocimiento de objetos, segmentación de imágenes y más.
Fomentaremos una actitud de aprecio por la capacidad de las redes neuronales convolucionales para capturar y comprender patrones visuales, impulsando aplicaciones desde la clasificación de dígitos hasta la creación de tecnologías innovadoras como vehículos autónomos y diagnósticos médicos basados en imágenes.
- Las CNNs son una herramienta poderosa para el procesamiento de imágenes.
- Las CNNs se pueden utilizar para una amplia gama de tareas, como la clasificación de imágenes, la detección de objetos y la segmentación de imágenes.
- Es importante comprender los fundamentos de las CNNs para poder utilizarlas de forma efectiva.
Comentarios
Publicar un comentario