Definición
Una red neuronal convolucional (CNN) es un tipo de red neuronal profunda para procesar datos que tienen una topología en forma de cuadrícula.
La palabra convolucionalindica que la red aplica la operación matemática de convolución en al menos una de sus capas.
Convolución Matricial
La operación de convolución matricial entre una matriz de entrada y un filtro se define de la siguiente manera:
Dada una matriz de entrada de tamaño y un filtro de tamaño , el mapa de características resultante después de aplicar la convolución se calcula como:
Donde:
es el elemento en la posición del mapa de características.
son los elementos de la matriz de entrada afectados por el filtro en la posición .
son los pesos del filtro en la posición .
Esta operación se repite para todas las posiciones válidas del filtro en la matriz de entrada , generando así el mapa de características completo .
En términos más generales, la convolución matricial en el contexto de las CNNs es una operación fundamental para extraer características significativas de los datos de entrada, como imágenes, mediante la aplicación de filtros que detectan patrones locales en la información.
Ejemplo.
Supongamos que tenemos la siguiente matriz de entrada de tamaño :
Y tenemos un filtro de tamaño
Vamos a calcular el elemento del mapa de características aplicando la convolución matricial:
Sustituyendo los valores de y obtenemos:
Por lo tanto, el primer elemento del mapa de características es . Repitiendo este proceso para los demás elementos válidos, obtendríamos el mapa de características completo después de aplicar la operación de convolución matricial.
Redes Convolucionales
Una CNN es un tipo de modelo de aprendizaje profundo diseñado específicamente para el procesamiento de datos estructurados de manera jerárquica, como imágenes o secuencias. La definición de una CNN se puede desglosar en varios componentes clave:
Pre-procesamiento:
La red toma como entrada los pixeles de una imagen. Si tenemos una imagen (escala de grises) con 28×28 pixeles de alto y ancho, esto equivale a utilizar 784 neuronas. Si tuviéramos una imagen a color, necesitaríamos 3 canales RGB (red, green, blue) y entonces usaríamos 28x28x3 = 2352 neuronas Estas neuronas constituyen nuestra capa de entrada.
Capas de Convolución: Las capas de convolución son la característica central de las CNN. Utilizan filtros (kernels) para realizar operaciones de convolución sobre la entrada.
Cada filtro detecta patrones específicos en la entrada y genera mapas de características que resaltan esas características.
Funciones de Activación: Después de la convolución, se aplica una función de activación no lineal, como ReLU (Rectified Linear Unit), para introducir no linealidades en el modelo. Esto permite a la red aprender relaciones más complejas en los datos.
Capas de Agrupamiento (Pooling): Las capas de agrupamiento reducen la dimensionalidad de los mapas de características generados por las capas de convolución.
Esto se logra mediante operaciones como el máximo o el promedio de un conjunto de valores en una región específica, lo que ayuda a conservar la información importante mientras se reduce el tamaño de los datos.
Capas Totalmente Conectadas:
Después de varias capas de convolución y agrupamiento, se pueden agregar capas totalmente conectadas para realizar tareas específicas, como clasificación o regresión.
Estas capas aplican transformaciones lineales y no lineales a las características aprendidas en etapas anteriores.
Diagrama de una CNN
Ejemplo online de una CNN
En resumen, una red neuronal convolucional es un modelo de aprendizaje profundo diseñado para aprender patrones jerárquicos en datos estructurados, como imágenes, a través de capas de convolución, activación, agrupamiento y capas totalmente conectadas, con el objetivo de realizar tareas como clasificación, detección de objetos, segmentación, entre otras.
Last updated