🧮 Computational Mathematics

Inicio · Parte 15 — Matemática de Deep Learning

308 — Batch normalization y layer normalization

deep-learning clase 8 de 20 4 horas demostración normalization

Batch norm promedia por columna y layer norm por fila: ese eje es toda la diferencia.

Fórmulas

x̂ = (x − μ)/√(σ² + ε);   y = γx̂ + β
batch norm: μ y σ por característica sobre el lote
layer norm: μ y σ por muestra sobre las características

Desarrollo

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.

Ejemplo trabajado

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]              ✓

Qué calcula el laboratorio

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

Salidas del laboratorio (10)

Muestra de la ejecución real

{
  "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
  ]
}

Errores comunes

Dónde se usa

Estabilización de redes convolucionales, layer norm en Transformers, entrenamiento con learning rates altos y arquitecturas residuales.

Idea rectora de la parte

La inicialización controla la varianza de las activaciones y de los gradientes.

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