El error absoluto medio (MAE) y la pérdida de Huber
Índice de contenidos
El error absoluto medio (MAE) promedia el valor absoluto de la diferencia entre predicción y realidad, así que un valor atípico pesa lo justo y no dispara la pérdida. La pérdida de Huber combina esa robustez con la suavidad del error cuadrático medio mediante un parámetro delta que decide dónde cambia de comportamiento.
El error absoluto medio mide cuánto se equivoca un modelo promediando el valor absoluto de cada error, y por eso resiste bien los valores atípicos. Cuando un dato raro se cuela en el conjunto de entrenamiento, el error cuadrático medio lo eleva al cuadrado y deja que domine la pérdida; el MAE, en cambio, lo trata con proporción. La pérdida de Huber toma lo mejor de las dos: se comporta como el error cuadrático cerca del acierto y como el MAE cuando el error crece. Esta guía explica las tres ideas y cuándo conviene cada una. La misma explicación está disponible en inglés.
Puntos clave
- El error absoluto medio (MAE, o pérdida L1) es el promedio de $\lvert y_i-\hat{y}_i\rvert$: la distancia media entre la predicción y el valor real, en las mismas unidades que el objetivo.
- Frente al error cuadrático medio (MSE), el MAE no eleva los errores al cuadrado, así que un valor atípico influye de forma lineal y no arrastra el entrenamiento.
- Su punto débil es la derivada: el gradiente del MAE vale $+1$ o $-1$ en casi todo el recorrido y no existe en el cero, lo que complica el ajuste fino.
- La pérdida de Huber, propuesta por Peter Huber en 1964, es cuadrática para errores pequeños y lineal para los grandes.
- El parámetro delta marca la frontera entre ambas zonas: por debajo de delta la pérdida es suave; por encima, robusta.
¿Qué es el MAE?
El error absoluto medio responde a una pregunta sencilla: de media, ¿por cuánto falla el modelo? Para cada ejemplo se calcula la diferencia entre el valor real $y_i$ y la predicción $\hat{y}_i$, se toma su valor absoluto para que los signos no se cancelen, y se promedian todas las diferencias sobre los $n$ ejemplos. En notación compacta:
$$\mathrm{MAE} = \frac{1}{n}\sum_{i=1}^{n}\lvert y_i-\hat{y}_i\rvert$$
Su gran virtud es la interpretabilidad. Si un modelo que predice el precio de una vivienda tiene un MAE de 12.000 euros, la lectura es directa: de media se desvía 12.000 euros del precio real. Esa transparencia lo convierte en la primera métrica que conviene mirar en un problema de regresión, como recoge la documentación de scikit-learn[1]. En el aprendizaje profundo, el MAE también se conoce como pérdida L1 y se implementa directamente, por ejemplo en PyTorch[2] como nn.L1Loss.
MAE frente a MSE
La diferencia clave está en cómo castiga los errores grandes. El error cuadrático medio eleva cada diferencia al cuadrado, de modo que un error de 100 aporta 10.000 a la suma, mientras que en el MAE aporta solo 100. Ese factor cuadrático hace que el MSE persiga con obsesión a los valores atípicos, algo útil cuando cada gran fallo es realmente grave, pero perjudicial cuando los atípicos son simple ruido de medición.
El MAE, al ser lineal, reparte su atención de manera más equilibrada. Estadísticamente, el modelo que minimiza el MAE tiende hacia la mediana de los datos, que resiste hasta un 50 % de contaminación antes de descontrolarse; el que minimiza el MSE tiende hacia la media, mucho más sensible. Por eso, en un conjunto con etiquetas ruidosas, el MAE suele dar predicciones más estables. La contrapartida es el entrenamiento: como la derivada del valor absoluto es constante ($+1$ o $-1$) y salta bruscamente en el cero, el descenso de gradiente da pasos del mismo tamaño esté cerca o lejos del mínimo, lo que dificulta afinar la solución. Puedes repasar por qué importa la derivada en las reglas de derivación esenciales.
Regla mnemotécnica: minimizar el MAE empuja el modelo hacia la mediana de los datos, mientras que minimizar el MSE lo empuja hacia la media. La mediana ignora el tamaño de los atípicos y por eso es más robusta.
La pérdida de Huber, lo mejor de ambas
La pérdida de Huber resuelve esa tensión combinando las dos funciones en una sola. Para errores pequeños se comporta como el MSE, con su curva suave que facilita la convergencia; para errores grandes cambia a un tramo lineal como el del MAE, que no se deja arrastrar por los atípicos. Su definición por tramos, con error $r=y-\hat{y}$, es cuadrática cuando $\lvert r\rvert \le \delta$ y lineal cuando $\lvert r\rvert > \delta$:
$$L_\delta(r) = \begin{cases} \frac{1}{2}\,r^2 & \text{si } \lvert r\rvert \le \delta \ \delta\left(\lvert r\rvert-\tfrac{1}{2}\delta\right) & \text{si } \lvert r\rvert > \delta \end{cases}$$
Ambas piezas se unen de forma continua y con derivada continua en la frontera, y esa costura suave es lo que da a Huber su comportamiento equilibrado.
Ver la derivación
La constante $\tfrac{1}{2}\delta$ del tramo lineal no es arbitraria: se elige para que las dos piezas encajen. En $\lvert r\rvert=\delta$ el tramo cuadrático vale $\tfrac{1}{2}\delta^2$ y el lineal vale $\delta\left(\delta-\tfrac{1}{2}\delta\right)=\tfrac{1}{2}\delta^2$, así que la pérdida es continua. Sus derivadas también coinciden: la del tramo cuadrático es $r$, que en $r=\delta$ vale $\delta$, y la del lineal es $\delta$ de forma constante. Al igualar valor y pendiente en la frontera, Huber pasa de cuadrática a lineal sin ningún salto.
Peter Huber la introdujo en su artículo de 1964 sobre estimación robusta. Como él mismo resumió años después el espíritu de todo el enfoque, «la robustez significa insensibilidad frente a pequeñas desviaciones de las hipótesis». Esa idea, aplicada a una función de pérdida, es justo lo que buscamos: un objetivo que no se rompa porque un puñado de ejemplos se salga de lo esperado. La Wikipedia[3] recoge la formulación completa y su variante suave, la pérdida pseudo-Huber.
El parámetro delta
Delta es el mando que decide dónde termina la zona cuadrática y empieza la lineal. Con un delta muy grande, casi todos los errores caen dentro del tramo cuadrático y la pérdida de Huber se parece al MSE; con un delta muy pequeño, casi todo cae en el tramo lineal y se parece al MAE. El valor por defecto en PyTorch para nn.HuberLoss es delta = 1.0, mientras que el HuberRegressor de scikit-learn usa un parámetro equivalente, epsilon, con valor por defecto 1.35, elegido para conservar en torno al 95 % de eficiencia estadística cuando los datos son normales.
Elegir delta es, en la práctica, decidir a partir de qué tamaño consideramos que un error es un atípico que no debe dominar. Una buena costumbre es fijarlo en función de la escala del error típico: si la mayoría de los residuos ronda un cierto valor, delta debería situarse un poco por encima, para que solo los verdaderos atípicos entren en el tramo robusto. Es un hiperparámetro más que conviene ajustar por validación.
Cuándo usar cada una
La regla práctica es corta. Si los datos están limpios y cada gran error debe penalizarse con fuerza, el MSE sigue siendo la opción natural y la más fácil de optimizar. Si sospechas que hay atípicos o etiquetas ruidosas y quieres una métrica interpretable, el MAE es más honesto. Y si quieres robustez sin renunciar a un entrenamiento suave, la pérdida de Huber es el término medio, muy usada en regresión y en detección de objetos. Este artículo forma parte del recorrido de las matemáticas detrás de las redes neuronales, donde encaja justo después del error cuadrático medio (MSE).
Preguntas frecuentes
¿El MAE es lo mismo que la pérdida L1?
Sí. La pérdida L1 es el nombre que recibe el MAE en el contexto del aprendizaje profundo, porque se basa en la norma L1 (la suma de valores absolutos). En bibliotecas como PyTorch aparece como L1Loss, y calcula exactamente el promedio del valor absoluto de los errores.
¿Por qué el MAE es más robusto que el MSE?
Porque no eleva los errores al cuadrado. Un valor atípico contribuye a la pérdida de forma proporcional a su tamaño, no a su cuadrado, así que no puede dominar el entrenamiento. El modelo resultante se orienta hacia la mediana de los datos, mucho más estable frente a la contaminación que la media.
¿Qué valor de delta conviene en la pérdida de Huber?
Depende de la escala de tus errores. Un buen punto de partida es el 1.0 que usa PyTorch por defecto, o el 1.35 de scikit-learn si trabajas con datos aproximadamente normales. Lo ideal es tratarlo como un hiperparámetro y ajustarlo por validación cruzada según cuántos residuos quieras considerar atípicos.
Conclusión
El error absoluto medio y la pérdida de Huber comparten una misma filosofía: no dejar que unos pocos errores enormes secuestren el aprendizaje. El MAE lo consigue con una métrica lineal, interpretable y robusta, a costa de una derivada incómoda; la pérdida de Huber recupera la suavidad del MSE en la zona central y conserva la robustez del MAE en las colas, con delta como fiel de la balanza. Elegir bien entre las tres funciones es una decisión de diseño que depende de cuánto ruido esperes en tus datos.