Tema
Arquitecturas convolucionales
- Aprendizaje profundo
- Nivel intermedio
Las arquitecturas convolucionales célebres comparten un patrón en el que la resolución baja mientras el número de canales sube, y se diferencian por la profundidad, por el tamaño del núcleo y por las conexiones de salto.
Nombre en inglés
Convolutional architectures
Intuición
Apilar núcleos pequeños sale más barato que usar uno grande y además mete una no linealidad entre medias, razón por la que VGG sustituyó los núcleos de 5 y de 7 por pilas de núcleos de 3. Al pasar de veinte capas a cien, la señal del gradiente se degrada y la red profunda rinde peor que la corta, algo que no se explica por sobreajuste. La conexión de salto de ResNet da al gradiente un camino directo hacia abajo y convierte el problema en aprender la diferencia respecto de la identidad, que resulta más fácil de representar cuando la capa no hace falta.
Fórmula
y = F(x, W) + x \qquad \text{dos capas } 3 \times 3 \text{ cubren } 5 \times 5 \text{ con } 18 C^2 \text{ pesos frente a } 25 C^2
Ejemplo resuelto
Con C canales de entrada y C de salida, una capa de 5 por 5 tiene 25 veces C al cuadrado pesos, mientras que dos capas de 3 por 3 seguidas cubren el mismo campo receptivo de 5 por 5 con 18 veces C al cuadrado, es decir, un 28 % menos, y de propina añaden una activación intermedia. Con C = 64 la cuenta baja de 102400 a 73728 pesos. En cuanto a las conexiones de salto, un bloque residual calcula la suma de F(x) y de x, de modo que la derivada de la salida respecto de la entrada vale la derivada de F más 1, y ese 1 garantiza que el gradiente llegue a la capa de abajo aunque F aporte poco.
Errores frecuentes
- Creer que más capas siempre dan menos error, cuando sin conexiones de salto una red de 56 capas llegó a rendir peor que una de 20 sobre el mismo conjunto.
- Contar el campo receptivo como si fuera el tamaño del núcleo de la última capa, cuando crece al acumular las capas anteriores.
- Colocar la conexión de salto entre tensores de forma distinta sin una proyección que ajuste canales o resolución, lo que impide la suma.
Ejercicio
Tres capas de 3 por 3 seguidas, con paso 1 y sin agrupamiento, ¿qué campo receptivo cubren sobre la entrada?
Ver la solución
Cada capa de núcleo k con paso 1 amplía el campo receptivo en k menos 1, es decir, en 2. Se empieza en 1 y se suman tres veces 2, lo que da 7. Las tres capas equivalen en alcance a un núcleo de 7 por 7, con 27 veces C al cuadrado pesos frente a los 49 veces C al cuadrado del núcleo grande.
Respuesta: 7 por 7
Temas relacionados
- Convolución y agrupamiento
- Detección y segmentación
- Aprendizaje por transferencia
- Inicialización de pesos