Cuando una red neuronal realiza una predicción, necesitamos alguna manera de medir si esa predicción fue buena o mala. Esa medición es fundamental porque el modelo no puede mejorar si no sabe qué tan equivocado está.
La herramienta que cumple ese papel se llama función de pérdida, o en inglés, loss function. Su tarea es cuantificar el error entre lo que la red predijo y lo que realmente debería haber predicho.
En este tema veremos qué es una función de pérdida, por qué es tan importante y cuáles son las más utilizadas según el tipo de problema.
Una función de pérdida es una función matemática que recibe la salida predicha por el modelo y la compara con el valor real o esperado. El resultado de esa comparación es un número que representa el nivel de error.
La idea general es simple:
De este modo, la red neuronal obtiene una señal clara sobre qué tan lejos está de la respuesta correcta.
La función de pérdida es una pieza central del aprendizaje automático porque guía el proceso de entrenamiento. Sin una medida del error, la red no tendría forma de saber en qué dirección ajustar sus parámetros.
Podemos decir que la pérdida actúa como una especie de "brújula" del aprendizaje:
En el tema anterior vimos que la propagación hacia adelante produce una predicción. Pero esa predicción, por sí sola, no alcanza para entrenar el modelo. Necesitamos compararla con la respuesta correcta.
Ese es precisamente el momento en el que interviene la función de pérdida:
Luego ese error se utilizará para corregir los parámetros del modelo.
Supongamos que una red neuronal debe predecir el precio de una casa. El valor real es 200000, pero la red predice 180000.
La función de pérdida se encarga de medir qué tan grave es esa diferencia de 20000. Si la red predijera 199500, la pérdida sería mucho menor. Si predijera 100000, la pérdida sería mucho mayor.
Esto permite expresar matemáticamente la calidad de la predicción.
A veces los términos error y pérdida se usan de manera parecida, pero conviene hacer una distinción conceptual:
Por ejemplo, el error podría ser una diferencia numérica directa, mientras que la pérdida podría usar el cuadrado de esa diferencia o una fórmula probabilística.
En muchos casos, la función de pérdida se calcula primero para cada ejemplo individual. Es decir, cada dato procesado por la red produce su propia pérdida.
Luego, cuando se trabaja con varios ejemplos juntos, esas pérdidas suelen combinarse mediante un promedio o una suma.
Esto permite obtener una medida global del rendimiento del modelo en un conjunto de ejemplos.
Durante el entrenamiento, las redes neuronales suelen procesar los datos en pequeños grupos llamados batches o lotes. La pérdida se calcula para cada ejemplo del lote y luego se obtiene una pérdida promedio del batch.
Esa pérdida promedio es la que normalmente se utiliza para actualizar los parámetros.
Esto hace más estable y eficiente el entrenamiento.
La función de pérdida depende del tipo de problema. No se usa la misma en regresión que en clasificación, porque la naturaleza de las salidas es diferente.
Por ejemplo:
Elegir la pérdida adecuada es una parte muy importante del diseño del modelo.
En problemas de regresión, el objetivo es predecir un valor numérico continuo, como:
En estos casos, las funciones de pérdida suelen centrarse en medir la distancia entre el valor predicho y el valor real.
Una de las funciones de pérdida más usadas en regresión es el Error Cuadrático Medio, conocido como MSE por sus siglas en inglés (Mean Squared Error).
La idea consiste en:
Elevar al cuadrado tiene un efecto importante: penaliza más los errores grandes que los pequeños.
Imaginemos dos predicciones:
Si elevamos al cuadrado:
Esto muestra que el MSE castiga mucho más los errores grandes. Esa característica puede ser útil cuando queremos que el modelo evite fallos muy grandes.
Ventajas:
Desventajas:
Otra función muy conocida en regresión es el Error Absoluto Medio, o MAE (Mean Absolute Error).
En lugar de elevar el error al cuadrado, toma su valor absoluto. Es decir, mide la magnitud del error sin importar si fue por exceso o por defecto.
Por ejemplo, equivocarse por +5 o por -5 cuenta igual en el MAE.
El MAE puede interpretarse como el error promedio en las mismas unidades del problema. Si estamos prediciendo precios y obtenemos un MAE de 10000, eso significa que, en promedio, el modelo se equivoca en unas 10000 unidades monetarias.
Esto hace que el MAE sea muy intuitivo para explicar resultados.
Ventajas:
Desventajas:
En problemas de clasificación, la situación cambia. Ya no queremos medir solo una distancia numérica, sino evaluar si el modelo está asignando correctamente las clases o las probabilidades asociadas.
Por eso, para clasificación suelen usarse funciones de pérdida diferentes de las de regresión.
En clasificación binaria, una de las funciones más usadas es la entropía cruzada binaria, también llamada binary cross-entropy.
Se utiliza cuando el modelo debe decidir entre dos clases, por ejemplo:
Esta pérdida compara la probabilidad predicha por el modelo con la clase real.
Supongamos que la clase real es 1, es decir, un correo sí es spam.
Esto tiene sentido: mientras más segura y correcta sea la predicción, menor será la pérdida. Mientras más equivocada y segura sea en la dirección incorrecta, mayor será el castigo.
Cuando hay más de dos clases posibles, se suele usar una versión multiclase de la entropía cruzada, conocida simplemente como cross-entropy loss.
Por ejemplo, si una red debe decidir si una imagen es un gato, un perro o un caballo, la pérdida evalúa qué tan alta fue la probabilidad asignada a la clase correcta.
Si la red asigna mucha probabilidad a la clase real, la pérdida será pequeña. Si le asigna poca probabilidad, la pérdida será grande.
La entropía cruzada es muy popular porque se adapta muy bien a problemas de clasificación y funciona de manera natural cuando las salidas del modelo representan probabilidades.
Además, se integra bien con funciones de activación como Sigmoid y Softmax, que suelen usarse en la capa de salida para clasificación binaria y multiclase respectivamente.
Durante el entrenamiento, la red intenta encontrar valores de pesos y bias que hagan la pérdida lo más pequeña posible. Es decir, el problema de aprendizaje puede verse como un problema de optimización:
Esto conecta directamente la función de pérdida con algoritmos como el descenso del gradiente, que estudiaremos a continuación.
Es importante no interpretar la pérdida de forma simplista. Que la pérdida sea pequeña suele ser una buena señal, pero no necesariamente significa que el modelo sea perfecto.
Por ejemplo:
La pérdida es una medida central, pero no siempre es la única medida que conviene observar.
Esto nos lleva a una diferencia importante:
Por ejemplo, en clasificación podemos entrenar con entropía cruzada pero evaluar con precisión, recall o F1-score.
En regresión podemos entrenar con MSE y luego interpretar también el MAE o el RMSE.
Imaginemos una red que clasifica imágenes de dígitos escritos a mano del 0 al 9.
El proceso sería:
Este esquema muestra con claridad el papel de la pérdida dentro del aprendizaje.
La elección depende, ante todo, del tipo de problema:
También pueden influir factores como la presencia de valores atípicos, el balance de clases o la necesidad de enfatizar ciertos tipos de errores.
En PyTorch, las funciones de pérdida están disponibles como componentes listos para usar. Por ejemplo, más adelante utilizaremos pérdidas como:
MSELoss para regresión.BCELoss o variantes relacionadas para clasificación binaria.CrossEntropyLoss para clasificación multiclase.Cuando programemos modelos reales, verás que la función de pérdida es una de las decisiones más importantes al definir el entrenamiento.
| Función de pérdida | Uso típico | Idea principal |
|---|---|---|
| MSE | Regresión | Promedia errores al cuadrado y castiga más los grandes. |
| MAE | Regresión | Promedia errores absolutos y es más interpretable. |
| Binary Cross-Entropy | Clasificación binaria | Compara probabilidades predichas con clases reales. |
| Cross-Entropy | Clasificación multiclase | Evalúa cuánto peso probabilístico se da a la clase correcta. |
La función de pérdida es uno de los conceptos más importantes del Deep Learning porque transforma la idea abstracta de "equivocarse" en un valor numérico concreto que puede optimizarse.
Entender la pérdida es comprender cómo una red sabe si va mejorando o no. A partir de aquí, el siguiente paso natural es estudiar el mecanismo que utiliza ese valor de pérdida para actualizar los parámetros del modelo: el descenso del gradiente.