El paso siguiente sería utilizar la tecnica de “Max-pooling” con un tamaño de 2×2. Esto quiere decir que recorreremos cada una de las 32 imágenes de características obtenidas anteriormente de 28x28px de izquierda-derecha, arriba-abajo PERO en vez de tomar de a 1 pixel, tomaremos de «2×2» (2 de alto por 2 de ancho = 4 pixeles) e iremos preservando el valor «más alto» de entre esos 4 pixeles (por eso lo de «Max»). En este caso, usando 2×2, la imagen resultante es reducida «a la mitad»y quedará de 14×14 pixeles. Luego de este proceso de submuestreo nos quedarán 32 imágenes de 14×14, pasando de 25.088 neuronas a 6272, las cuales son bastantes menos y que -en teoría- deberían seguir almacenando la información más importante para detectar características deseadas.
La imagen superior representa esa primera convolución: consiste de una entrada, un conjunto de filtros, generamos un mapa de características y hacemos el submuestreo. Con lo cual, en el ejemplo de imágenes de 1 sólo color tendremos:
PRIMERA CONVOLUCION | 2)Aplico Kernel | 3)Obtengo Feature Mapping | 4)Aplico Max-Pooling | 5)Obtengo «Salida» de la 1era Convolución |
28x28x1 = 784 neuronas | 32 filtros de 3×3 | 28x28x 32 kernel = 25.088 neuronas | de 2×2 | 14x14x32 = 6.272 neuronas |
La primer convolución es capaz de detectar características primitivas como lineas ó curvas. A medida que hagamos más capas con las convoluciones, los mapas de características serán capaces de reconocer formas más complejas, y el conjunto total de capas de convoluciones podrá «reconocer».