7 · Funciones de pérdida: cuál para cada tarea
MSE, MAE, Huber, BCE, CCE — el menú de funciones de pérdida y el supuesto probabilístico oculto en cada una.
Elegir la pérdida = elegir el modelo de ruido: MSE para regresión gaussiana, MAE para regresión robusta, BCE para binario, CCE para multi-clase, Huber/cuantil para casos especiales.
Sin esto:
Pérdida incorrecta = objetivo incorrecto = tu modelo optimiza lo que no debe.
Toda función de pérdida es secretamente una log-verosimilitud negativa bajo algún modelo probabilístico:
| Pérdida | Modelo de ruido implícito | Cuándo usar | |---------|--------------------------|-------------| | MSE | Errores gaussianos | Regresión, datos limpios | | MAE | Errores de Laplace | Regresión, robusto a outliers | | Huber | Gaussiano + Laplace | Lo mejor de ambos mundos | | BCE | Bernoulli | Clasificación binaria | | CCE | Categórica | Clasificación multi-clase |
Esta conexión no es trivia académica — te dice exactamente qué supuesto distribucional estás haciendo y si se corresponde con tus datos. Elegir MSE cuando los errores son de cola pesada (pocos outliers masivos) significa que esos outliers dominan la pérdida y el modelo los persigue.
Antes de escribir una sola línea de código de red, pregúntate: "¿Cuál es el modelo probabilístico de mis salidas?"
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Guía rápida de selección de pérdida — regresión, clasificación y la conexión con MLE
¿Qué pérdida usar para predecir precios de casas donde algunas son mansiones (outliers)?
- Toda función de pérdida = una log-verosimilitud negativa bajo algún supuesto probabilístico. Elegir mal = optimizar lo incorrecto.
- MSE penaliza outliers cuadráticamente; MAE trata todos los errores linealmente; Huber combina ambos — usa Huber cuando tus datos tienen errores grandes ocasionales.
- BCE para clasificación binaria, CCE para multi-clase — usar MSE para clasificación produce probabilidades no calibradas y convergencia lenta.
- PyTorch: `nn.MSELoss`, `nn.L1Loss`, `nn.HuberLoss`, `nn.BCEWithLogitsLoss`, `nn.CrossEntropyLoss` — cada uno se combina con la salida de arquitectura correcta (logits vs. probabilidades).
Elegir la pérdida correcta es la diferencia entre un modelo que aprende y uno que no. El capítulo 7 del track de estadística cubrió MLE; toda pérdida ES un MLE bajo alguna distribución.
Si lo quitas: Usarías MSE en todas partes — que falla silenciosamente para clasificación y sobrepondera silenciosamente los outliers en regresión. La pérdida incorrecta es la fuente más insidiosa de mal rendimiento del modelo.