Tamaño de lote

Definición breve

El tamaño de lote (batch size) es el número de ejemplos de datos que un modelo procesa antes de actualizar sus parámetros durante el entrenamiento.

Definición detallada

En el entrenamiento de modelos de aprendizaje automático, los datos no se procesan todos a la vez (en la mayoría de los casos), sino en grupos llamados lotes.

El tamaño de lote determina:

  • Cuántos ejemplos se utilizan en cada paso de entrenamiento
  • Con qué frecuencia se actualizan los pesos del modelo
  • El equilibrio entre estabilidad y eficiencia

Por ejemplo:

  • Batch size = 1 → actualización tras cada ejemplo (stochastic)
  • Batch size = N → actualización tras N ejemplos
  • Batch size = dataset completo → batch gradient descent

Cómo funciona en el entrenamiento

Durante el entrenamiento:

  1. Se selecciona un lote de datos
  2. Se calcula la pérdida (loss)
  3. Se calcula el gradiente
  4. Se actualizan los pesos

👉 Este ciclo se repite hasta procesar todo el dataset

Impacto del tamaño de lote

El tamaño de lote influye directamente en:

  • Estabilidad del entrenamiento
  • Velocidad de convergencia
  • Uso de memoria
  • Generalización del modelo

Comparación: lotes pequeños vs grandes

AspectoLotes pequeñosLotes grandes
Ruido en gradienteAltoBajo
GeneralizaciónMejor (a menudo)Peor (a veces)
Velocidad por pasoRápidaMás lenta
Uso de memoriaBajoAlto
EstabilidadMenorMayor

Ventajas y desventajas

Tamaño de lote pequeño

Ventajas:

  • Mejor generalización
  • Menor uso de memoria
  • Puede escapar de mínimos locales

Desventajas:

  • Entrenamiento más inestable
  • Mayor número de actualizaciones

Tamaño de lote grande

Ventajas:

  • Gradientes más estables
  • Mejor uso de hardware (GPU)
  • Entrenamiento más eficiente en paralelo

Desventajas:

  • Requiere más memoria
  • Puede generalizar peor
  • Riesgo de convergencia a soluciones subóptimas

¿Cómo elegir el tamaño de lote?

Depende de varios factores:

✔️ Recursos disponibles

  • GPU/VRAM limita el tamaño máximo

✔️ Tipo de modelo

  • Modelos grandes → batch más grandes
  • Modelos pequeños → más flexibilidad

✔️ Dataset

  • Datos complejos → batch más pequeños pueden ayudar

Insight clave

👉 Batch pequeño = más ruido, mejor exploración
👉 Batch grande = más estabilidad, menos exploración

Relación con otros conceptos

El tamaño de lote está estrechamente relacionado con:

  • Learning rate
  • Convergencia
  • Generalización
  • Optimización

Ejemplo en PyTorch

from torch.utils.data import DataLoader
# dataset ficticio
dataset = [(x, x*2) for x in range(100)]
# definir batch size
batch_size = 16
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)
for batch in dataloader:
inputs, targets = batch
print(inputs)

Conceptos relacionados

Conclusión

El tamaño de lote es un hiperparámetro clave en el entrenamiento:

  • Define cómo fluye la información durante el aprendizaje
  • Afecta estabilidad, velocidad y rendimiento

No existe un valor universal—el mejor tamaño depende del modelo, los datos y los recursos.