Inicio · Parte 15 — Matemática de Deep Learning
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
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.
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.
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
arquitecturatrazacampo_receptivo_finalformulados_conv_3x3_equivalen_a_una_5x5parametros_2x(3x3)parametros_1x(5x5)ventaja{
"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
}
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.
Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.
10.48550/arxiv.1409.1556 verificado en DataCite (2026-08-19).10.48550/arxiv.1701.04128 verificado en DataCite (2026-08-19).