La capa convolucional es el bloque de creación principal de una CNN y es donde se realizan la mayoría de los cálculos. Requiere algunos componentes, como los datos de entrada, un filtro y un mapa de características. Supongamos que la entrada es una imagen en color compuesta por una matriz de píxeles en 3D. Esto significa que la entrada tendrá tres dimensiones: altura, anchura y profundidad, que corresponden a la composición RGB en una imagen. También hay un detector de características, conocido como kernel o filtro, que se mueve por los campos receptivos de la imagen para comprobar si la característica está presente. Este proceso se denomina convolución.
El detector de características es una matriz bidimensional (2D) de pesos que representa una parte de la imagen. Aunque su tamaño puede variar, el tamaño del filtro suele ser una matriz de 3x3; esto también determina el tamaño del campo receptivo. A continuación, el 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. Después, el filtro se desplaza un poco y repite el proceso hasta que el kernel haya recorrido toda la imagen. El resultado final de la serie de productos escalares de la entrada y el filtro se conoce como mapa de características, mapa de activación o característica convolucionada.
Observe que los pesos del detector de características permanecen fijos a medida que se desplaza por la imagen, lo que también se conoce como compartición de parámetros. Algunos parámetros, como los valores de peso, se ajustan durante el entrenamiento mediante el proceso de retropropagación y descenso del gradiente. Sin embargo, hay tres hiperparámetros que afectan al tamaño del volumen de la salida y que deben configurarse antes de que comience el entrenamiento de la red neuronal. Entre ellas se incluyen:
1. El número de filtros afecta a la profundidad de la salida. Por ejemplo, tres filtros distintos producirían tres mapas de entidades diferentes, lo que crearía una profundidad de tres.
2. El stride es la distancia, o el número de píxeles, que el kernel mueve sobre la matriz de entrada. Aunque los valores de stride iguales o superiores a dos son poco frecuentes, un stride mayor produce una salida menor.
3. El zero-padding suele utilizarse cuando los filtros no se ajustan a la imagen de entrada. Esto pone a cero todos los elementos que quedan fuera de la matriz de entrada, produciendo una salida de mayor o igual tamaño. Existen tres tipos de padding:
- Valid padding: también conocido como no padding. En este caso, la última convolución se descarta si las dimensiones no se alinean.
- Same padding: este garantiza que la capa de salida tenga el mismo tamaño que la capa de entrada.
- Full padding: este tipo de padding aumenta el tamaño de la salida añadiendo ceros al borde de la entrada.
Después de cada operación de convolución, la CNN aplica una transformación de unidad lineal rectificada (ReLU) al mapa de características, introduciendo la no linealidad en el modelo.