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:
- Se selecciona un lote de datos
- Se calcula la pérdida (loss)
- Se calcula el gradiente
- 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
| Aspecto | Lotes pequeños | Lotes grandes |
|---|---|---|
| Ruido en gradiente | Alto | Bajo |
| Generalización | Mejor (a menudo) | Peor (a veces) |
| Velocidad por paso | Rápida | Más lenta |
| Uso de memoria | Bajo | Alto |
| Estabilidad | Menor | Mayor |
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 ficticiodataset = [(x, x*2) for x in range(100)]# definir batch sizebatch_size = 16dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)for batch in dataloader: inputs, targets = batch print(inputs)
Conceptos relacionados
- Descenso de gradiente por mini-lotes
- Tasa de aprendizaje
- Epoch vs Iteration
- Optimización
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.