Sobes.tech
Middle — Senior

¿Qué tipos de normalización existen (Batch, Layer, Instance, Group, RMSNorm)?

sobes.tech AI

Respuesta de la IA

La normalización en redes neuronales ayuda a estabilizar y acelerar el entrenamiento, reduciendo el desplazamiento interno de la distribución de activaciones. Los principales tipos de normalización:

  • Normalización por lotes (Batch Normalization, BatchNorm) — normalización por lote. Calcula la media y la varianza por mini-lote para cada característica, luego escala y desplaza los valores. Es efectiva, pero depende del tamaño del lote.

  • Normalización por capa (Layer Normalization, LayerNorm) — normalización por capa. Calcula estadísticas para todos los neuronas de una capa para cada ejemplo individual, sin depender del tamaño del lote. Se usa frecuentemente en RNN y transformadores.

  • Normalización por instancia (Instance Normalization, InstanceNorm) — normalización por ejemplo y canal, común en tareas de procesamiento de imágenes, por ejemplo, en transferencia de estilo.

  • Normalización por grupo (Group Normalization, GroupNorm) — divide los canales en grupos y normaliza dentro de cada grupo. Funciona de manera estable con tamaños pequeños de lote.

  • RMSNorm (Root Mean Square Normalization) — normalización por la raíz cuadrada de la media de los cuadrados de los valores, sin restar la media. Alternativa simplificada a LayerNorm, a veces da mejores resultados en transformadores.

Ejemplo de BatchNorm en PyTorch:

import torch
import torch.nn as nn

batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10)  # lote de 32 ejemplos
output = batch_norm(x)