En nuestra vida cotidiana realizamos acciones todos los días de forma natural en las que detrás de ellas hay una inteligencia artificial bajo modelos de aprendizaje automático de forma transparente para nosotros. Por ejemplo, la detección de la matrícula de un vehículo al pasar a un parking o la detección facial de nosotros mismos para poder acceder a un Smartphone son dos claros casos de identificación de imágenes a través de algoritmos de redes neuronales convolucionales. De esto venimos a hablarte en este post, ¡no te lo pierdas!
Índice de contenidos
¿Qué son las Redes Neuronales Convolucionales (CNNs)?
Las Redes Neuronales Convolucionales, o CNNs, son la cúspide del procesamiento de imágenes, funcionando como si fuesen un experto artista digital. Imagina una máquina que, sin haber observado nunca una imagen, aprende a distinguir formas, colores y patrones con una exactitud casi perfecta. Las CNNs están diseñadas para examinar imágenes pretando una atención meticulosa, desglosándolas en fragmentos para identificar características esenciales como bordes, texturas y contrastes, para luego reconstruir una comprensión compleja del todo.
El Secreto de su Brillantez
La esencia de las CNNs radica en sus capas convolucionales, que funcionan como filtros sofisticados. Cada capa se especializa en capturar información específica: una capta líneas, otra colores, y así sucesivamente. Al fusionar esta información, la CNN puede identificar patrones sofisticados, como el rostro de una persona o la figura de un automóvil. Es como tener múltiples perspectivas sobre una misma imagen.
Evolución Natural: Del Cerebro a la Máquina
La trayectoria de las CNNs es un viaje fascinante a través de la evolución tecnológica. En la década de 1950, el Perceptrón fue pionero en la clasificación de problemas, aunque limitado en su capacidad para manejar complejidades. Las redes neuronales de múltiples capas (MLP) y el algoritmo de retropropagación avanzaron el campo, pero las imágenes seguían siendo un desafío. Fue Yann LeCun quien, en los años 90 con LeNet-5, una de las primeras CNNs, revolucionó el campo enseñando a las máquinas a aprender de los detalles menores de una imagen, similar a como lo haría un ser humano.
También te puede interesar: Master en Data Science
En 2012, una convolutional neural network, ganó por primera vez y con gran margen la competición de reconocimiento de objetos ImageNet, consistente en la clasificación de 1000 objetos en un conjunto de más de un millón de imágenes. Durante los años siguientes, nuevas redes profundas aumentaron enormemente la capacidad de clasificar imágenes hasta el punto de que el problema se considera prácticamente resuelto.
Estructura de capas de una red neuronal convolucional CNN y su funcionamiento
Las CNN utilizan distintos tipos de capas o layers. La capa más importante, y la que da nombre a la red, es la capa convolucional.
Esta layer funciona a partir de unos filtros de tres dimensiones de pequeño tamaño, que van desplazándose por la imagen obteniendo las salidas de la capa.
Veamos un ejemplo para una imagen RGB de 32 pixeles de ancho y alto. La imagen en este caso tiene un tamaño de 32x32x3, mientras que el filtro es más pequeño, 5x5x3. Los filtros siempre tienen la misma profundidad (depth) que la imagen (en este caso, 3), ya que se desplazarán a través de la primera y segunda dimensión (paso 1 de la imagen).
El filtro recorre todas las posiciones posibles en la imagen (paso 2 de la imagen), de izquierda a derecha y de arriba a abajo, y por cada posición obtiene una activación o un valor de salida.
La idea aquí es que el filtro va recorriendo la imagen y obteniendo features relevantes reduciendo al mismo tiempo el tamaño de la imagen resultante.
Es habitual aplicar varios filtros para obtener más features en cada posición de la imagen (paso 3 de la imagen). La idea es que cada uno de estos filtros obtenga ciertas características de la imagen que serán importantes a la hora de obtener una representación suficientemente expresiva de la misma.
Creando una red neuronal convolucional CNN
Como se puede ver, las capas convolucionales aplican distintos filtros sobre una imagen de entrada y crean nuevos volúmenes, por lo que las propiedades espaciales de la imagen se mantienen.
Lo más común es aplicar capas convolucionales seguidas de funciones de activación llamadas ReLU (paso 4). La unidad ReLU se aplicaría sobre cada valor de activación salido de un filtro aplicado sobre un área.
La idea aquí es que, al configurar una red de esta forma, las distintas capas van obteniendo una representación jerárquica de las features, con las primeras capas reconociendo elementos más simples en una imagen y las siguientes obteniendo representaciones de más alto nivel a partir de estos elementos simples.
Por ejemplo, las primeras capas pueden detectar bordes, para que en capas sucesivas se puedan detectar objetivos.
Ejemplo de una red neuronal convolucional
En la siguiente imagen, podemos ver un ejemplo de una red convolucional aplicada a un problema de clasificación de imágenes.
La capa de pooling (POOL) es un tipo de capa que está presente en una gran cantidad de arquitecturas CNN. Su utilidad consiste en reducir las representaciones obtenidas de manera que estas se hagan más pequeñas y sean más manejables computacionalmente, reduciendo el número de parámetros necesarios.
La última capa de una red convolucional para problemas de clasificación es una fully connected layer, ya que necesitamos una neurona de salida para cada clase que nos diga, por ejemplo, si hay o no un coche en una imagen cualquier.
Normalmente, esto se hace mediante una capa softmax. Muchas CNN llevan varias «fully connected layers» como últimas capas para obtener las representaciones finales después de las capas de convolutions + pooling.
Aunque pueda parecer que las CNNs son exclusivas para expertos en tecnología, la verdad es que las utilizamos diariamente: al desbloquear nuestros teléfonos con reconocimiento facial, cuando una app identifica un objeto en una foto, o cuando sistemas de seguridad detectan intrusos. El potencial de las CNNs está apenas comenzando a desplegarse, con nuevas aplicaciones y mejoras surgiendo constantemente.
Si quieres aprender de Machine Learning y otras aplicaciones de la Inteligencia Artificial, no puedes perderte el Master en Data Science con el que aprenderás, desde la práctica, a utilizar todas las herramientas que la Ciencia de Datos, el Big Data y el Business Intelligence nos proporcionan y serás capaz de utilizar algoritmos de IA, a través de Machine Learning para anticipar y predecir el futuro.