Convolutional Neural Network: ¿qué es una red neuronal convolucional (CNN)?

Las redes neuronales convolucionales (ConvNets, CNN) son redes neuronales artificiales cuyas capas (convolutional layers) se aplican a los datos de entrada para extraer características y, finalmente, identificar un objeto. Esto convierte a las ConvNets en una parte importante del deep learning.

¿Qué son las convolutional neural networks (CNN)?

Las convolutional neural networks (en español: redes neuronales convolucionales) son tipos especializados de redes neuronales artificiales muy efectivas para el procesamiento y análisis de datos visuales como imágenes y vídeos. Estas redes son importantes en el machine learning y, en particular, en el deep learning.

Las ConvNets están formadas por capas de nodos que incluyen una capa de entrada, una o más capas ocultas y una capa de salida. Los nodos están interconectados y tienen una ponderación correspondiente y un valor umbral. Cuando la salida de un nodo supera el umbral especificado, se activa y envía datos a la siguiente capa de la red.

Existen diferentes tipos de redes neuronales que se utilizan para distintas aplicaciones y tipos de datos. Por ejemplo, las redes neuronales recurrentes se usan comúnmente para el procesamiento de lenguaje natural y el reconocimiento de voz, mientras que las redes neuronales convolucionales (CNN) se utilizan más para tareas de clasificación y visión por ordenador. Su capacidad para reconocer patrones complejos en los datos las convierte en una herramienta importante de la inteligencia artificial.

Herramientas de IA
Saca el máximo partido a la inteligencia artificial
  • Crea tu página web en tiempo récord
  • Impulsa tu negocio gracias al marketing de IA
  • Ahorra tiempo y obtén mejores resultados

Estructura y construcción de las redes neuronales convolucionales

Las ConvNets se diferencias de otras redes neuronales por su rendimiento superior en el procesamiento de señales de imagen, voz o audio. Tienen tres tipos principales de capas, y con cada una, la CNN se vuelve más compleja e identifica, por ejemplo, partes más grandes de una imagen.

Compatibilidad de una imagen con el algoritmo de las ConvNets

Las imágenes son reconocidas por los ordenadores como combinaciones de cifras, es decir, la cantidad de píxeles. Esto también se aplica al algoritmo CNN: una imagen en blanco y negro se representa con la longitud m y la anchura n como una matriz 2D de tamaño mXn; en el caso de una imagen en color del mismo tamaño, se utiliza una matriz 3D. Cada celda en esta matriz contiene el valor de píxel correspondiente y cada imagen se representa mediante los valores de píxel respectivos en tres canales diferentes, cada uno perteneciente a un canal rojo, azul y verde.

A continuación, se identifican las características más importantes de la imagen. Estas se extraen mediante un método conocido como convolución. Se trata de una operación donde una función modifica (o pliega) la forma de otra función. Las convoluciones en las imágenes se utilizan generalmente por varias razones, como para enfocar, suavizar y mejorar. En la CNN, sin embargo, las convoluciones se utilizan para extraer características destacadas en las imágenes.

Para extraer características importantes de una imagen, se utiliza un filtro o núcleo. Un filtro es una matriz que representa la característica que extraer. Este filtro se superpone a la matriz de entrada y la matriz resultante es una matriz bidimensional que contiene la correlación de la imagen con respecto al filtro utilizado. La matriz de salida se denomina mapa de características.

Características de las diferentes capas de convolución

Durante el proceso de convolución, el campo de entrada se convierte en un campo más pequeño, manteniendo la correlación especial entre los píxeles mediante la aplicación de filtros. A continuación, se presentan los tres tipos principales de capas de convolución:

  • Convolutional layer: esta capa de convolución es la primera capa de una red convolucional. Utiliza filtros (pequeñas matrices de pesos) que se deslizan sobre la imagen para reconocer características locales como bordes, esquinas y texturas. Cada filtro genera un mapa de características que resalta patrones específicos. Otra capa de convolución puede seguir a la primera, haciendo que la estructura de la CNN sea jerárquica, ya que las capas posteriores pueden ver los píxeles dentro de los campos receptivos de las capas anteriores.
  • Pooling layer: esta capa reduce el tamaño de los mapas de características, resumiendo áreas locales y descartando información no relevante. Esto reduce la complejidad computacional mientras mantiene la información más importante.
  • Fully connected layer: esta capa conecta todas las neuronas entre sí, de forma similar a una red neuronal natural. Sirve para la clasificación final y combina las características extraídas en una decisión, hasta identificar finalmente el objeto deseado.

Ilustración del proceso de convolución

Imagina que intentas determinar si una imagen contiene un rostro humano. Puedes imaginar el rostro como una suma de sus partes: tiene dos ojos, nariz, boca, dos orejas, etc. El proceso de convolución sería el siguiente:

  1. Primera capa de convolución: las primeras capas convolucionales utilizan filtros para reconocer características de los píxeles individuales. Un filtro podría reconocer un borde vertical que representa el borde de un ojo. Como se mencionó anteriormente, las características locales forman patrones que se registran en un mapa de características durante la convolución. En este caso, un mapa de características podría representar los bordes de los ojos, la nariz y la boca.
  2. Capas de convolución adicionales: a las capas de convolución iniciales pueden seguirles más capas de convolución o capas de pooling. De esta manera, los patrones individuales se combinan gradualmente para formar una imagen de un rostro humano. Las siguientes capas de convolución combinan características simples en patrones más complejos. Los bordes y las esquinas se combinan en formas que representan ojos. Estas capas ven áreas más grandes de la imagen (campos receptivos) y reconocen estructuras compuestas, llamadas jerarquías de características dentro de las capas de convolución. Una capa posterior podría reconocer que dos ojos y una boca en una disposición particular forman un rostro.
  3. Capas de pooling: estas reducen el tamaño de los mapas de características y las abstraen aún más. Mantienen las características esenciales y reducen la cantidad de datos a procesar.
  4. Fully connected layer: finalmente, se forma la última capa del ConvNet, la fully connected layer. En este caso, produciría la imagen de un rostro humano, que gracias a la convolución se distinguiría claramente de otro rostro.
diagrama-de-convolutional-neural-network.png
Las ConvNets extraen automáticamente características relevantes e identifican objetos en imágenes

Además, técnicas como Dropout y la regularización optimizan las redes evitando el sobreajuste. Las funciones de activación como ReLU (Rectified Linear Unit) proporcionan no linealidad y ayudan a la red a reconocer patrones más complejos, ya que no todas las neuronas realizan los mismos cálculos. Además, la normalización por lotes estabiliza y acelera el entrenamiento, procesando los datos de manera más uniforme.

Áreas de aplicación de las redes neuronales convolucionales

Antes de que existieran las CNN, se utilizaban métodos manuales y laboriosos de extracción de características para identificar objetos en imágenes. Las redes neuronales convolucionales ofrecen un enfoque más escalable para tareas de clasificación de imágenes y reconocimiento de objetos. Utilizan principios de álgebra lineal para reconocer patrones en una imagen (especialmente la multiplicación de matrices). Actualmente, las CNN se utilizan en diversas aplicaciones:

  • Reconocimiento de imágenes y voz: reconocimiento automático de objetos o personas en imágenes y vídeos, por ejemplo, para servicios de etiquetado de fotos en smartphones, sistemas de reconocimiento facial o asistentes de voz como Siri o Alexa.
  • Diagnóstico médico: análisis de imágenes médicas gracias al reconocimiento de imágenes por IA para apoyar el diagnóstico, por ejemplo, en radiografías, tomografías computarizadas y resonancias magnéticas.
  • Vehículos autónomos: reconocimiento de características de la carretera y obstáculos, por ejemplo, para coches autónomos.
  • Redes sociales: las CNN se utilizan, por ejemplo, en relación con el text mining en estas plataformas para moderar contenidos automáticamente y crear publicidad personalizada.
  • Marketing y comercio minorista: por ejemplo, búsqueda visual y colocación de productos gracias al data mining.

Ventajas y desventajas de las redes neuronales convolucionales

Las CovNets pueden extraer automáticamente características relevantes de los datos y lograr una alta precisión. Sin embargo, el entrenamiento efectivo de las CNN requiere considerables recursos computacionales, ya que necesitan grandes cantidades de datos etiquetados y potentes GPU para obtener buenos resultados.

Ventajas Desventajas
Extracción automática de características Alto coste computacional
Alta precisión Necesidad de grandes conjuntos de datos
En resumen

Las CNN han revolucionado el campo de la inteligencia artificial y ofrecen enormes ventajas en distintos ámbitos. Desarrollos futuros como mejoras en hardware, nuevos métodos de recopilación de datos o arquitecturas avanzadas como las redes de cápsulas podrían permitir una mayor optimización e integración en diversas tecnologías, lo que permitiría un uso aún más amplio de las CNN.

¿Le ha resultado útil este artículo?
Page top