🧮 Computational Mathematics

Inicio · Parte 15 — Matemática de Deep Learning

311 — CNN y receptive fields

deep-learning clase 11 de 20 4 horas demostración cnn_receptive_fields

Dos convoluciones de 3×3 ven lo mismo que una de 5×5 con menos parámetros y más no linealidad.

Fórmulas

RF_l = RF_{l−1} + (k_l − 1)·Π sᵢ
dos 3×3 ⟹ campo receptivo 5, 18 parámetros
una 5×5 ⟹ campo receptivo 5, 25 parámetros

Desarrollo

El campo receptivo de una activación es la región de la imagen de entrada que puede influir en su valor. En la primera capa coincide con el núcleo; al apilar capas crece, y con pooling o stride crece mucho más rápido porque cada paso vale por varios píxeles originales.

La fórmula recursiva lo cuantifica: cada capa añade (k−1) multiplicado por el producto de todos los strides anteriores. Ese producto —el «salto»— es lo que hace que el crecimiento sea multiplicativo y no aditivo, y por eso unas pocas capas con reducción bastan para ver la imagen entera.

La observación práctica más rentable es la de VGG: dos convoluciones de 3×3 apiladas tienen el mismo campo receptivo que una de 5×5, pero usan 18 parámetros en vez de 25 y aplican dos no linealidades en vez de una. Tres de 3×3 equivalen a una de 7×7 con 27 parámetros frente a 49. Por eso las arquitecturas modernas usan casi exclusivamente núcleos 3×3.

El campo receptivo importa porque limita lo que la red puede ver. Si un objeto ocupa 100 píxeles y el campo receptivo efectivo de la capa final es de 50, ninguna neurona podrá integrarlo completo. Diseñar la profundidad y la reducción es, en buena medida, diseñar el campo receptivo.

Ejemplo trabajado

Crecimiento del campo receptivo en cinco capas.

arquitectura:
  conv k=3 s=1  →  conv k=3 s=1  →  pool k=2 s=2
  →  conv k=3 s=1  →  conv k=3 s=1

capa   tipo   campo receptivo   salto
  1    conv          3            1
  2    conv          5            1
  3    pool          6            2
  4    conv         10            2
  5    conv         14            2

campo receptivo final: 14 píxeles

Comparación de coste:
  dos conv 3×3:  campo 5,  18 parámetros, 2 ReLU
  una conv 5×5:  campo 5,  25 parámetros, 1 ReLU

28 % menos parámetros y el doble de no linealidad.

Qué calcula el laboratorio

Campo receptivo: cómo crece al apilar capas.

python classes/part-15-matematica-de-deep-learning/311-cnn-y-receptive-fields/lab.py
compmath run 311

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "arquitectura": [
    "conv k=3 s=1",
    "conv k=3 s=1",
    "pool k=2 s=2",
    "conv k=3 s=1",
    "conv k=3 s=1"
  ],
  "traza": [
    {
      "capa": 1,
      "tipo": "conv",
      "campo_receptivo": 3,
      "salto": 1
    },
    {
      "capa": 2,
      "tipo": "conv",
      "campo_receptivo": 5,
      "salto": 1
    },
    {
      "capa": 3,
      "tipo": "pool",
      "campo_receptivo": 6,
      "salto": 2
    },
    {
      "capa": 4,
      "tipo": "conv",
      "campo_receptivo": 10,
      "salto": 2
    },
    {
      "capa": 5,
      "tipo": "conv",
      "campo_receptivo": 14,
      "salto": 2
    }
  ],
  "campo_receptivo_final": 14,
  "formula": "RF_{l} = RF_{l-1} + (k_l - 1)·Π s_i",
  "dos_conv_3x3_equivalen_a_una_5x5": true,
  "parametros_2x(3x3)": 18
}

Errores comunes

Dónde se usa

Diseño de arquitecturas convolucionales, segmentación semántica, detección de objetos y elección de profundidad según el tamaño de los objetos.

Idea rectora de la parte

Backpropagation es la regla de la cadena aplicada en orden topológico inverso.

Error a evitar

Aplicar softmax sin restar el máximo y provocar overflow.

Conexión con IA

Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.

Bibliografía de la clase

Archivos de la clase