Inicio · Parte 15 — Matemática de Deep Learning
x̂ = (x − μ)/√(σ² + ε); y = γx̂ + β
batch norm: μ y σ por característica sobre el lote
layer norm: μ y σ por muestra sobre las características
Normalizar las activaciones internas estabiliza el entrenamiento y permite learning rates mayores. La operación es la misma en ambos casos —restar media, dividir por desviación, reescalar con parámetros aprendidos γ y β—; lo único que cambia es sobre qué eje se calculan las estadísticas.
Batch normalization normaliza cada característica a lo largo del lote: la columna. Eso la hace muy eficaz en redes convolucionales, donde los lotes son grandes, pero introduce una dependencia incómoda del tamaño de lote y obliga a mantener estadísticas móviles para inferencia. Mezclar las estadísticas de entrenamiento con las de inferencia es un error clásico que produce resultados desastrosos e inexplicables.
Layer normalization normaliza cada muestra a lo largo de sus características: la fila. No depende del lote en absoluto, funciona igual con lote de tamaño 1, y se comporta idénticamente en entrenamiento y en inferencia. Por eso es la elección de los Transformers, donde las secuencias tienen longitudes variables y el tamaño de lote efectivo cambia.
El mecanismo por el que ayudan resultó no ser el que se propuso originalmente. El artículo de batch norm lo atribuyó a reducir el «desplazamiento interno de covariables»; trabajo posterior mostró que esa explicación no se sostiene, y que el efecto real es suavizar el paisaje de optimización, permitiendo pasos más grandes. Es un buen ejemplo de técnica que funciona antes de entenderse.
El mismo lote normalizado por columna y por fila.
lote original (4 muestras × 3 características):
[ 10 200 3]
[ 12 190 5]
[ 8 210 1]
[ 14 195 x]
escalas por característica: [6,0 ; 20,0 ; 6,0]
la segunda característica domina completamente
batch norm (por columna):
[−0,4472 0,1690 −0,4472]
[ 0,4472 −1,1832 0,4472]
media por columna tras BN: [0, 0, 0] ✓
layer norm (por fila):
[−0,6684 1,4135 −0,7451]
[−0,6658 1,4134 −0,7476]
media por fila tras LN: [0, 0, 0, 0] ✓
Batch norm y layer norm: qué eje se normaliza.
python classes/part-15-matematica-de-deep-learning/308-batch-normalization-y-layer-normalization/lab.py
compmath run 308
lote_originalescalas_por_featurebatch_norm_(por_columna)layer_norm_(por_fila)media_por_columna_tras_BNmedia_por_fila_tras_LNbatch_norm_depende_del_lotelayer_norm_no_depende_del_lotepor_que_los_Transformers_usan_LNgamma_y_beta{
"lote_original": [
[
10.0,
200.0,
3.0
],
[
12.0,
190.0,
5.0
],
[
8.0,
210.0,
1.0
],
[
14.0,
195.0,
7.0
]
],
"escalas_por_feature": [
6.0,
20.0,
6.0
],
"batch_norm_(por_columna)": [
[
-0.4472,
0.169,
-0.4472
],
[
0.4472,
-1.1832,
0.4472
],
[
-1.3416,
1.5213,
-1.3416
],
[
1.3416,
-0.5071,
1.3416
]
],
"layer_norm_(por_fila)": [
[
-0.6684,
1.4135,
-0.7451
],
[
-0.6658,
1.4134,
-0.7476
],
[
-0.6707,
1.4136,
-0.7429
],
[
-0.6665,
1.4135,
-0.7469
]
],
"media_por_columna_tras_BN": [
0.0,
0.0,
0.0
],
"media_por_fila_tras_LN": [
0.0,
0.0,
0.0,
-0.0
]
}
Estabilización de redes convolucionales, layer norm en Transformers, entrenamiento con learning rates altos y arquitecturas residuales.
Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.
10.48550/arxiv.1502.03167 verificado en DataCite (2026-08-19).10.48550/arxiv.1805.11604 verificado en DataCite (2026-08-19).