Tema
Convolución y agrupamiento
- Aprendizaje profundo
- Nivel base
- Con simulador interactivo
Una capa convolucional desliza un mismo núcleo pequeño por toda la imagen y produce un mapa de respuestas, con lo que reparte los mismos pesos entre todas las posiciones.
Nombre en inglés
Convolution and pooling
Intuición
Un detector de bordes verticales sirve igual en la esquina superior izquierda que en el centro, de modo que aprender un juego de pesos por posición repetiría miles de veces el mismo hallazgo. Al compartir el núcleo, el número de parámetros deja de depender del tamaño de la imagen y la respuesta se desplaza cuando el objeto se desplaza. El agrupamiento resume ventanas vecinas y añade cierta tolerancia a los desplazamientos pequeños.
Fórmula
S(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n) \qquad \text{salida} = \left\lfloor \frac{n + 2p - k}{s} \right\rfloor + 1
Ejemplo resuelto
Sea una imagen de 4 por 4 cuyas dos columnas izquierdas valen 0 y cuyas dos columnas derechas valen 3, y un núcleo de 2 por 2 con la primera columna de unos y la segunda de menos unos. Con paso 1 y sin relleno la salida mide 3 por 3, ya que (4 más 0 menos 2) dividido entre 1 más 1 da 3. Cada fila de la salida vale 0, -6 y 0, porque solo la ventana que cae sobre el cambio de columna responde, y allí el cálculo da (0 más 0) menos (3 más 3) = -6. El signo negativo indica que el borde va de oscuro a claro, así que una ReLU colocada detrás lo borraría por completo y haría falta el núcleo de signo contrario para detectarlo. Un agrupamiento máximo de 2 por 2 con paso 1 sobre esa salida devuelve ceros, mientras que sobre la salida del núcleo contrario devolvería seises.
Errores frecuentes
- Contar los parámetros de una capa convolucional como si dependieran del tamaño de la imagen, cuando dependen solo del tamaño del núcleo, del número de canales de entrada y del número de filtros.
- Confundir el paso con el relleno al calcular la forma de la salida, fallo que se evita aplicando la fórmula del tamaño antes de escribir código.
- Esperar del agrupamiento una invariancia total a la traslación, cuando solo tolera desplazamientos menores que su ventana.
Ejercicio
Una entrada de 32 por 32 pasa por una capa convolucional con núcleo de 5 por 5, paso 1 y relleno 2. ¿Qué tamaño espacial tiene la salida?
Ver la solución
La fórmula del tamaño resta el núcleo, suma dos veces el relleno, divide entre el paso y suma 1. El numerador vale 32 más 4 menos 5 = 31, la división entre 1 lo deja igual y la suma final da 32. El relleno de 2 es justo el que conserva el tamaño con un núcleo de 5, porque la mitad entera de 5 menos 1 vale 2.
Respuesta: 32 por 32
Temas relacionados
- Arquitecturas convolucionales
- Detección y segmentación
- Aprendizaje por transferencia
- Matrices y transformaciones lineales
Cursos a los que prepara
Simulador
Este tema tiene un simulador interactivo en la guía.