Convolutional Neural Network: Guía para entenderlas
El campo de la visión artificial y la IA ha experimentado un increíble crecimiento durante los últimos años.
La capacidad de las redes neuronales para reconocer patrones complejos en los datos las convierte en una herramienta importante para la IA. Te explicamos a fondo su funcionamiento y los casos de uso más importantes.
¿Qué son los Convolutional Neural Network?
Las Convolutional Neural Network (CNN) o redes neuronales convolucionales son un subconjunto del Machine Learning y son el corazón de los algoritmos de Deep Learning. Están compuestas por capas de nodos que contienen una capa de entrada, una o más capas ocultas y una capa de salida.
Cada nodo se conectar a otro y tiene un peso y umbral asociados. Si la salida de cualquier nodo individual supera el valor de umbral especificado, ese nodo se activa y envía datos a la siguiente capa de la red. De lo contrario, no se transmiten datos a la siguiente capa de la red.
Son particularmente eficaces para procesar y analizar datos visuales, y se utilizan distintos tipos de redes neuronales para distintos tipos de datos y casos de uso. Por ejemplo, las redes neuronales recurrentes suelen utilizarse para procesar el lenguaje natural y el reconocimiento de voz, mientras que las CNN se emplean más para tareas de clasificación y visión artificial.
¿Cómo funcionan las Convolutional Neural Network?
Antes de empezar, hay que dejar claros algunos conceptos básicos sobre redes neuronales:
- Neuronas: son la unidad más básica de una red neuronal. Están compuestas por una suma de funciones lineales y se les aplica una función no lineal, conocida como función de activación.
- Capa de entrada: cada neurona de la capa de entrada corresponde a una de las características de entrada.
- Capa oculta: son las capas que se encuentran entre la capa de entrada y la de salida. Cada neurona de esta capa se suma con el resultado de las neuronas de las capas anteriores y se multiplica por una función no lineal.
- Capa de salida: el número de neuronas en la capa de salida corresponde al número de clases de salida. Una vez realizada una predicción, se calcula una pérdida y la red entra en un proceso iterativo de automejora a través del cual se ajustan los pesos con retropropagación para reducir este error.
Las redes neuronales convolucionales utilizan una serie de capas, cada una de las cuales detecta distintas características de una imagen de entrada. Según la complejidad de su finalidad, una CNN puede contener hasta miles de capas, cada una de las cuales se basan en los resultados de las anteriores para reconocer patrones detallados.
El proceso comienza deslizando un filtro diseñado para detectar ciertas características sobre la imagen de entrada, conocido como operación de convolución. El resultado de este proceso es un mapa de características que resalta la presencia de las características detectadas de la imagen.
Los filtros iniciales suelen detectar características básicas, como líneas o texturas simples. Los filtros de las capas posteriores son más complejos y combinan las características básicas identificadas anteriormente para reconocer patrones más complejos.
Entre estas capas, la red toma medidas para reducir las dimensiones espaciales de los mapas de características a fin de mejorar la eficiencia y la precisión. En las capas finales, el modelo toma una decisión final en función del resultado de las capas anteriores.
Fuente: Towards Data Science
Arquitectura de las redes neuronales convolucionales
Como hemos dicho más arriba, el funcionamiento de las CNN puede parece simple a primera vista: el usuario proporciona una imagen de entrada en forma de matriz de píxeles, la cual tiene 3 dimensiones:
- Dos dimensiones para una escala de grises.
- Una tercera dimensión con una profundidad de 3 para representar los colores fundamentales (rojo, verde, azul).
A diferencia de un modelo estándar de perceptrón multicapa (MLP), que contiene solo una parte de clasificación, la arquitectura de la red convolucional tiene varias capas
Capa convolucional
Este es el componente fundamental de una CNN y donde se realizan la mayoría de los cálculos. Esta capa utiliza un filtro o núcleo para moverse a través del campo receptivo de una imagen de entrada y detectar la presencia de características específicas.
El proceso comienza deslizando el núcleo sobre el ancho y la altura de la imagen, para luego recorrer toda la imagen en varias iteraciones. En cada posición se calcula un producto escalar entre los pesos del núcleo y los valores de los píxeles de la imagen bajo el núcleo. Esto transforma la imagen de entrada en un conjunto de mapas de características, cada una de las cuales representa la presencia e intensidad de una característica determinada en varios puntos de la imagen.
Supongamos que la entrada es una imagen en color, que está formada por una matriz de píxeles en 3D. Así, la entrada tendrá tres dimensiones (alto, ancho y profundidad), además de un detector de características, que se moverá por los campos receptivos de la imagen para comprobar si la característica está presente (convolución).
Este detector o filtro es una matriz bidimensional de pesos que representa parte de la imagen. Aunque puede variar de tamaño, suele ser una matriz de 3×3, lo que también determina el tamaño del campo receptivo. Este filtro se aplica a un área de la imagen y se calcula un producto escalar entre los píxeles de entrada y el filtro. Este producto escalar se introduce en una matriz de salida. El resultado final de la serie de productor escalares de la entrada y el filtro se conoce como mapa de características, mapa de activación o característica convolucionada.
Algunos parámetros se ajustan durante el entrenamiento a través del proceso de retropropagación y descenso de gradiente. Pero hay tres parámetros que afectan el tamaño del volumen de la salida que deben configurarse antes de que comience el entrenamiento de la red neuronal:
- La cantidad de filtros afecta a la profundidad del resultado.
- El paso es la distancia o la cantidad de píxeles que recorre el núcleo sobre la matriz de entrada. Aunque es poco común encontrar valores de paso de dos o más, un paso mayor produce un resultado menor.
- El relleno con ceros se utiliza cuando los filtros no se ajustan a la imagen de entrada. Esto establece en cero todos los elementos que quedan fuera de la matriz de entrada, lo que produce una salida más grande o de igual tamaño. Los tipos son:
- Relleno válido: se omite la última convolución si las dimensiones no se alinean.
- Mismo relleno: garantiza que la capa de salida tenga el mismo tamaño que la capa de entrada.
- Relleno completo: aumenta el tamaño de la salida agregando ceros al borde de la entrada.
Después de cada operación, una CNN aplica una transformación de unidad lineal rectificada al mapa de características, introduciendo no linealidad en el modelo.
Fuente: Developers Break
Capa convolucional adicional
Cuando una capa de convolución sigue a la capa inicial, la estructura de la CNN puede volverse jerárquica, ya que las capas posteriores pueden ver los píxeles dentro de los campos receptivos de las capas anteriores.
Cada parte individual de la imagen conforman un patrón de nivel inferior en la red neuronal, y la combinación de sus partes representa un patrón de nivel superior, creando una jerarquía de características dentro de la CNN. Finalmente, la capa convolucional convierte la imagen en valores numéricos, lo que permite que la red neuronal interprete y extraiga patrones relevantes.
Capa de agrupamiento
También conocidas como reducción de muestreo, realizan una reducción de dimensionalidad, lo que reduce la cantidad de parámetros en la entrada.
De manera similar a la primera capa, la operación de agrupamiento barre con un filtro toda la entrada, pero la diferencia es que este filtro no tiene pesos. En cambio, el núcleo aplica una función de agregación a los valores dentro del campo receptivo, llenando la matriz de salida. Hay dos tipos:
- Agrupamiento máximo: a medida que el filtro se desplaza por la entrada, selecciona el píxel con el valor máximo para enviarlo a la matriz de salida.
- Agrupamiento promedio: a medida que el filtro se mueve a través de la entrada, calcula el valor promedio dentro del campo receptivo para enviar a la matriz de salida.
La desventaja de esta capa es que se puede perder mucha información, pero también ayuda a reducir la complejidad, mejorar la eficiencia y limitar el riesgo de sobreajuste.
Capa completamente conectada
Los valores de los píxeles de la imagen de entrada no están conectados directamente a la capa de saluda en las capas parcialmente conectadas. Ahí es donde entra la capa completamente conectada, donde cada nodo de la capa de salida se conecta directamente a un nodo de la capa anterior.
Esta capa realiza la tarea de clasificación en función de las características extraídas a través de las capas anteriores y sus diferentes filtros.
Aplicaciones Convolutional Neural Network
Antes de que existieran las CNN, los objetos se identificaban mediante métodos de extracción de características que consumían mucho tiempo y que debían llevarse a cabo manualmente. Con estas redes convolucionales se obtiene un enfoque más escalable para la clasificación de imágenes y la detección de objetos.
Al emplear principios de álgebra lineal, las CNN pueden reconocer patrones en una imagen. Por ello, sus aplicaciones más extendidas son:
- Reconocimiento de imágenes y voz: estas redes reconocen automáticamente objetos o personas en imágenes y vídeos, como el etiquetado de fotografías en smartphones, sistemas de reconocimiento facial o asistentes de voz.
- Diagnósticos médicos: la tecnología de reconocimiento de imágenes con IA mejora el diagnóstico médico gracias a su capacidad para analizar imágenes médicas como radiografías, resonancias, etc.
- Vehículos autónomos: las CNN se utilizan en los coches autónomos a la hora de reconocer obstáculos y características concretas de la vía o carretera.
- Redes sociales: también son comúnmente usadas para la minería de texto, lo que permite a las plataformas de redes sociales moderar automáticamente el contenido y crear publicidad personalizada.
- Marketing y venta minorista: se pueden utilizar para extraer datos, lo que permite realizar búsquedas visuales de productos y su ubicación.
- Agricultura: se utilizan para monitorear cultivos, detectar enfermedades y predecir el rendimiento. Pueden analizar imágenes captadas por drones o satélites para brindar información a los agricultores.
Convolutional Neural Network vs Generative Adversarial Network
Las redes neuronales convolucionales (CNN) y las redes generativas antagónicas (GAN) son dos tecnologías fundamentales que han desempeñado papeles fundamentales en el avance de la visión artificial.
Como resumen de lo ya hablado a lo largo del artículo, las CNN se inspiran en la estructura y el funcionamiento del sistema visual humano y constan de varias capas, incluidas capas convolucionales, capas de agrupación y capas completamente conectadas.
Por su parte, las Generative Adversarial Network (GAN) constan de dos redes neuronales, un generador y un discriminador, que se entrenan simultáneamente a través de un proceso competitivo. El generador intenta crear datos falsos que no se pueden distinguir de los datos reales, mientras que el discriminador intenta diferenciar entre datos reales y falsos. Las GAN son más conocidas por sus capacidades generativas y su potencial para crear imágenes realistas, pero también tienen aplicaciones en el procesamiento de imágenes para la visión artificial.
Si comparamos una con otra, las principales diferencias que encontramos son las siguientes:
Extracción de características
Las CNN están diseñadas para la extracción de características gracias al uso de capas convolucionales para capturar estas características jerárquicas de los datos de entrada. Esto es crucial para tareas como el reconocimiento, la segmentación y la detección de objetos. Además, pueden aprender características discriminativas directamente de los datos.
Por su parte, las GAN no están diseñadas intrínsecamente para la extracción de características. Aunque su discriminador aprende a diferenciar características, no es su propósito principal, pues se centran en la generación y manipulación de datos.
Fuente: LeewayHertz
Generación de datos
Como ya hemos comentado antes, la función principal de las CNN es procesar datos existentes para tareas de clasificación, detección o segmentación, no suelen utilizarse para la generación de datos. Sin embargo, hay algunas variantes, como los autocodificadores variacionales (VAE), que pueden adaptarse para la generación de datos.
Al contrario, las GAN destacan en esta tarea, pues pueden crear imágenes sumamente realistas, lo que las convierte en la mejor opción para casos de uso como síntesis de imágenes, superresolución y transferencia de estilo.
Transferencia de aprendizaje
En este caso, las CNN son muy adecuadas para el aprendizaje por transferencia, pues hay modelo preentrenados disponibles y fácil de ajustar para tareas específicas, lo que es muy beneficioso cuando se trabaja con datos limitados.
Por su parte, aunque los GAN se utilizan con menos frecuencia en este escenario, algunos modelos están entrenados previamente.
Tipo de modelo
Las CNN son modelos discriminativos, ya que se centran en distinguir y clasificar datos.
Al contrario, las GAN son modelos generativos, diseñadas para crear nuevos datos que se pueden distinguir de los datos reales.
Realismo y calidad
Las CNN procesan imágenes existentes, no las producen, por lo que su rendimiento depende de la calidad y cantidad de los datos utilizados para el entrenamiento. Aunque son capaces de lograr una alta precisión en tareas de reconocimiento, no generar imágenes realistas de manera inherente.
Las GAN tienen la capacidad de producir imágenes que pueden «engañar» a los humanos debido a su realismo, por lo que han establecido puntos de referencia en la generación y calidad de imágenes.
Complejidad computacional
Por un lado, encontramos las CNN, que requieren de un gran esfuerzo computacional durante el entrenamiento, especialmente cuando se trabaja con arquitecturas profundas y grandes conjuntos de datos. Aunque también son relativamente rápidas a la hora de realizar predicciones una vez entrenadas.
Las GAN también requieren de un uso intensivo de recursos computaciones y de entrenamiento. Al tener estas demandas, las aplicaciones en tiempo real pueden ser un desafío.
Cuestiones éticas y de seguridad
En este tema encontramos similitudes, pues ambas se enfrentan a desafíos éticos y de seguridad que aún hay que resolver. Por ejemplo, las CNN han suscitado preocupaciones éticas relacionados con la privacidad, los prejuicios y la vigilancia, especialmente con lo relativo al reconocimiento facial.
Las GAN no se quedan atrás en estos retos, pues su uso para crear deepfakes hace que se planteen problemas importantes éticos y de seguridad, pues se puede utilizar la tecnología para desinformar, suplantar la identidad u otros fines maliciosos.
Por tanto, tanto las CNN como las GAN tienen sus propias ventas y aplicaciones en el campo de la IA, especialmente en la visión artificial. La elección entre una u otra depende de los requisitos específicos de la tarea a realizar. Las CNN son la opción ideal para tareas que implican reconocer y analizar datos existentes, mientras que las GAN destacan en tareas que exigen generación de datos, síntesis de imágenes y expresión creativa.
Sin embargo, estas tecnologías no son mutuamente excluyentes, pues, en algunas aplicaciones, se pueden complementar entre sí. A medida que la visión artificial siga evolucionando, tanto una como otra desempeñarán un papel fundamental en la configuración del futuro de la percepción y la comprensión visual.
Convolutional Neural Network en tu negocio
Las CNN han revolucionado el campo de la IA y ofrece numerosos beneficios en diversos sectores. De hecho, otros avances, como las mejoras de hardware, los nuevos métodos de recopilación de datos y las arquitecturas avanzadas, como las redes de cápsulas, pueden optimizar aún más las CNN e integrarlas en más tecnologías, lo que se traduce en una ampliación de casos de uso.
Si quieres llevar tu negocio al siguiente con las soluciones de inteligencia artificial que mejor se adapten a tu caso, los expertos de Plain Concepts pueden ayudarte. Diseñamos tu estrategia, proteger tu entorno, elegir las mejores soluciones, cerrar las brechas de tecnología y datos, y a establecer una supervisión rigurosa que consiga una IA responsable. Así podrás lograr un aumento rápido de la productividad y construir las bases para nuevos modelos comerciales basados en la hiperpersonalización o el acceso continuo a los datos e información relevante.
Contamos con un equipo de expertos que lleva aplicando exitosamente esta tecnología en numerosos proyectos, asegurando la seguridad de los clientes. Llevamos más de 10 años llevando la IA a nuestros clientes y ahora te proponemos un Framework de adopción de IA:
- Desbloquea el potencial de la IA generativa de extremo a extremo.
- Acelera tu viaje hacia la IA con nuestros expertos.
- Comprende cómo deben estar estructurados y gobernados tus datos.
- Explora casos de uso de IA generativa que se ajusten a tus objetivos.
- Crea un plan a medida con plazos y estimaciones realistas.
- Construye los patrones, procesos y equipos que necesites.
- Implanta soluciones de IA para apoyar tu transformación digital.
¡Comienza tu viaje a la innovación desde hoy mismo!