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 XX y un filtro WW se define de la siguiente manera:

Dada una matriz de entrada XX de tamaño m×nm\times n y un filtro WW de tamaño p×qp\times q, el mapa de características resultante ZZ después de aplicar la convolución se calcula como:

Zi,j=u=1pv=1qXi+u1,j+v1Wu,vZ_{i,j} = \sum_{u=1}^{p} \sum_{v=1}^{q} X_{i+u-1, j+v-1} \cdot W_{u,v}

Donde:

  • Zi,jZ_{i,j} es el elemento en la posición del mapa de características.

  • Xi+u1,j+v1X_{i+u-1, j+v-1} son los elementos de la matriz de entrada afectados por el filtro en la posición u,vu, v .

  • Wu,v W_{u,v} son los pesos del filtro en la posición u,vu, v .

Esta operación se repite para todas las posiciones válidas del filtro WW en la matriz de entrada XX, generando así el mapa de características completo ZZ.

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 XX de tamaño 4×44\times 4 :

X=[12345678910111213141516]X = \begin{bmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ 13 & 14 & 15 & 16 \end{bmatrix}

Y tenemos un filtro WW de tamaño 3×33\times 3

W=[010121010]W = \begin{bmatrix} 0 & 1 & 0 \\ 1 & 2 & 1 \\ 0 & 1 & 0 \\ \end{bmatrix}

Vamos a calcular el elemento Z1,1Z_{1,1} del mapa de características ZZ aplicando la convolución matricial:

Z1,1=u=13v=13Xu,vWu,vZ_{1,1} = \sum_{u=1}^{3} \sum_{v=1}^{3} X_{u,v} \cdot W_{u,v}

Sustituyendo los valores de XX y WW obtenemos:

Z1,1=(10)+(21)+(30)+(51)+(62)+(71)+(90)+(101)+(110)Z1,1=0+2+0+5+12+7+0+10+0=36Z1,1=36Z_{1,1} = (1 \cdot 0) + (2 \cdot 1) + (3 \cdot 0) + (5 \cdot 1) + (6 \cdot 2) + (7 \cdot 1) + (9 \cdot 0) + (10 \cdot 1) + (11 \cdot 0) \\ Z_{1,1} = 0 + 2 + 0 + 5 + 12 + 7 + 0 + 10 + 0 = 36\\ Z_{1,1} = 36

Por lo tanto, el primer elemento del mapa de características ZZ es 3636 . 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