Introducción a las funciones de pérdida

Dialéktico
Compartir

CONTENIDO

Uno de los conceptos medulares del machine learning es el de funciones de pérdida, las cuales son un componente esencial de cualquier algoritmo de aprendizaje supervisado, e incluso hacen acto de presencia en otros tipos de algoritmos, como los de aprendizaje no supervisado. Como una preparación previa al estudio de las redes neuronales artificiales, comenzaremos a revelar este y otros conceptos relacionados al aprendizaje de máquinas; en este caso, se trata de un ingrediente esencial para el proceso de entrenamiento y evaluación de modelos.

FDP Nivel 2
Inventario recomendado
aprendizaje supervisado dialéktico

Matemáticas

Un poco de álgebra y cálculo

Matemáticas

Regresión lineal (definición de algoritmos de regresión)

RL OB

Regresión logística (definición de algoritmos de clasificación)

IRLG OBJ

Algún bocadillo

Bocadillo FDP 3

Funciones de pérdida para aprendizaje de máquinas

Pergamino_3

Como ya hemos visto en la teoría y práctica de la regresión lineal y la regresión logística, al momento de entrenar un modelo de aprendizaje supervisado se está ejecutando un proceso que ajusta los valores de sus parámetros utilizando una función que mide qué tan grande es la distancia entre las estimaciones realizadas por el modelo y los datos reales (también conocidos como datos del terreno real, o verdad fundamental); dichas funciones se conocen como funciones de pérdida.

Dicho de una forma más concisa, una función de pérdida, función de error, o función de costo (loss function), es una función matemática que evalúa el desempeño de un modelo de aprendizaje automático calculando las diferencias entre los valores predichos por este, y los valores reales del conjunto de datos.

Esta función es vital para el entrenamiento del modelo, ya que de esto depende el ajuste/optimización de sus parámetros, y generalmente, ofrece una forma para la evaluación de los resultados finales.

mmerf
FDP A1

Es correcto, dado que el modelo es puesto a prueba por la función de pérdida, esta evalúa la calidad de los parámetros de la función ajustada durante y después de la etapa de entrenamiento.

La Figura 3.4.1 muestra en términos sencillos cómo opera una función de costo, calculando las diferencias entre los valores obtenidos por el modelo, y las observaciones del conjunto de datos:

Función de pérdida, dialéktico
Figura 3.4.1 Esquema de la lógica de una función de pérdida para la evaluación de un modelo de aprendizaje de máquinas. Los datos de entrenamiento son procesados para ajustar el modelo, el cual genera predicciones que son comparadas con los datos reales por la función de costo, obteniendo las diferencias entre estos.

Es importante mencionar que las funciones de pérdida se pueden utilizar tanto durante la etapa de aprendizaje (ajuste de parámetros) como después, cuando el modelo ya ha sido entrenado.

Las funciones de costo que hemos visto hasta ahora son utilizadas para optimizar los parámetros en la fase de entrenamiento, pero conforme avancemos en el curso las utilizaremos también para evaluar el modelo final resultante.

A continuación, exploraremos el objetivo y uso de las funciones de pérdida con mayor detalle.

Ejemplo de una función de pérdida

Uno de los ejemplos más comunes de una función de pérdida, y que ya hemos visto en acción en la práctica de la regresión lineal, es la función de error cuadrático medio (MSE, por sus siglas en inglés: Mean Squared Error), la cual calcula el promedio del cuadrado de las diferencias entre los valores del terreno real y los valores predichos.

FDP L1

Vamos a ilustrarlo poco a poco.

Supongamos que hemos ajustado los parámetros de un modelo utilizando técnicas de aprendizaje de máquinas, específicamente, un modelo de aprendizaje supervisado que aborda un problema de regresión. La siguiente tabla contiene los valores reales del conjunto de datos y las cantidades estimadas por el modelo resultante.

Valores realesValores predichos
1211
1513.5
1921
21.524
3332
3735.5
4038
42.542.5
4543.8
4950
Tabla 3.4.1. Ejemplo de datos recogidos y almacenados en el conjunto de datos, y los valores generados por un modelo aprendizaje de máquinas.

Ahora calcularemos el error cuadrático medio (la función de costo), paso por paso:

  • De acuerdo con la definición, primero se calcula la diferencia entre los valores reales y los valores predichos, lo cual quedaría como se muestra en la nueva columna añadida:
Valores realesValores predichosDiferencia
12111
1513.51.5
1921-2
21.524-2.5
33321
3735.51.5
40382
42.542.50
4543.81.2
4950-1
Tabla 3.4.2. Se añade la columna con las restas de los valores del conjunto de datos y los valores calculados con el modelo.
  • Ahora que tenemos las diferencias, obtendremos el cuadrado de estas:
Valores realesValores predichosDiferenciaCuadrado de las diferencias
121111
1513.51.52.25
1921-24
21.524-2.56.25
333211
3735.51.52.25
403824
42.542.500
4543.81.21.44
4950-11
Tabla 3.4.3. Se añade una columna que contiene la diferencia elevada al cuadrado.
  • Teniendo estas diferencias, solo debemos añadir dos pasos más, primero sumamos los valores de esta última columna:
    • Suma del cuadrado de las diferencias = 23.19
  • Y por último, calculamos el promedio, es decir, dividimos esta suma entre el número de valores o datos, el cual es 10:
    • Suma del cuadrado de las diferencias dividida entre el total de datos = \frac{23.19}{10} = 2.319.

Esto quiere decir que el error cuadrático medio (valor arrojado por la función de costo) del modelo es aproximadamente 2.31.

De esta forma, el algoritmo calcula qué tanto se acercan las predicciones del modelo a las cifras reales. Dado que el rango de los valores reales está entre 11 y 50, podemos intuir que un promedio de 2.31 de los errores es relativamente pequeño, por lo que se puede aseverar que tiene un desempeño aceptable (estas conclusiones siempre dependerán de los datos, es necesario recordar, en general, que conforme esta métrica se acerca a 0, indica una mejor precisión del modelo).

Dentro de los algoritmos de regresión lineal y logística, recordemos que lo que se hace es optimizar estas funciones, es decir, minimizar o maximizar sus resultados (dependiendo de la función utilizada); por ejemplo, en la regresión lineal se busca minimizar el MSE, de modo que se ajustan los parámetros para encontrar el valor más pequeño posible de los errores medidos por esta función (los mismos que acabamos de calcular). En este sentido, minimizar es optimizar, ya que con ello se encuentran los parámetros más óptimos para generar un modelo eficiente.

El ejemplo atestiguado hasta ahora se centra en una función de pérdida aplicado a un modelo de regresión; con el fin de no extender mucho esta lección, no analizaremos el procesamiento generado por una función de pérdida para modelos de clasificación (para los cuales, de cualquier manera, el principio operacional es el mismo). Esto lo examinaremos con más detalle en la siguiente exploración.

Habiendo ilustrado cómo opera una función de costo y cuál es su uso, echemos un vistazo a los tipos de funciones de pérdida que existen, y una lista con ejemplos de cada uno.

Tipos de funciones de pérdida

Las funciones de error son variadas y se utilizan dependiendo de los conjuntos de datos de entrada y el contexto del propósito del modelo de aprendizaje automático. Se dividen principalmente en dos categorías:

  1. Funciones de pérdida para aprendizaje supervisado, que a su vez se subdividen de acuerdo al tipo de modelo:
    • Modelos de regresión.
    • Modelos de clasificación.
  2. Funciones de pérdida para aprendizaje no supervisado.
FDP K1

Es verdad, sin embargo, es importante al menos saber que estas funciones existen no solo para un tipo de machine learning. Por lo mismo, a continuación dejaré unas listas con las funciones de error más comunes; en las prácticas de programación no utilizaremos todas, pero puede que en algún momento necesites información sobre algunas de las funciones disponibles, ya sea en el ámbito laboral, personal o académico.

Funciones de pérdida más utilizadas para machine learning

A continuación, enlistaré las funciones de pérdida más comunes para machine learning por categorías, no te preocupes si te parecen cuantiosas, en la práctica solo utilizarás algunas cuantas, solo quiero que conozcas su existencia y sea una referencia que puedas tener a la mano.

Funciones de pérdida para aprendizaje supervisado

Funciones de pérdida para algoritmos de regresión

Las funciones de pérdida más comunes para modelos de regresión son las siguientes:

  • Error cuadrático medio (Mean Squared Error, MSE).
  • Error absoluto medio (Mean Absolute Error, MAE).
  • Error absoluto porcentual medio (Mean Absolute Percentage Error, MAPE)
  • Raíz del error cuadrático medio (Root Mean Square Error, RMSE).
  • Raíz del error logarítmico cuadrático medio (Root Mean Squared Logarithmic Error, RMSLE).
  • Pérdida de Huber (Huber Loss).
  • Pérdida Log-cosh. (Log-Cosh Loss).
  • Pérdida cuantílica (Quantile Loss).
  • L1 suavizado (Smooth L1).
  • Pérdida ∈-insensible (∈-Insensitive Loss).

Funciones de pérdida para algoritmos de clasificación

Las funciones de pérdida más comunes para modelos de clasificación son las siguientes:

  • Pérdida de entropía cruzada (Cross Entropy Loss).
  • Pérdida de entropía cruzada sigmoidea (Sigmoid Cross Entropy Loss).
  • Pérdida de entropía cruzada softmax (Softmax Cross Entropy Loss).
  • Verosimilitud logarítmica negativa (Negative Log-Likelihood).
  • Pérdida 0-1 (0-1 Loss).
  • Pérdida de Hinge (Hinge Loss).
  • Pérdida Huber modificada (Modified Huber Loss).
  • Pérdida de Hinge suavizada (Smooth Hinge Loss).
  • Pérdida de Hinge reescalada (Rescaled Hinge Loss).
  • Pérdida de rampa (Ramp Loss).
  • Erro de clasificación mínimo (Minimum Classification Error).
  • Pérdida logarítmica (Log Loss).
  • Pérdida exponencial (Exponential Loss).
  • Pérdida basada en margen (Margin-Based Loss).
  • Ranqueo por parejas (Pairwise Ranking).
  • Ranqueo por tripleta (Triplet Ranking).
  • Pérdida contrastiva (Contrastive Loss).
  • Pérdida pinball (Pinball Loss).
  • Pérdida pinball truncada (Truncated Pinball Loss).

Funciones de pérdida para aprendizaje no supervisado

Las funciones de pérdida más comunes para evaluar el desempeño de algoritmos de aprendizaje no supervisado son las siguientes:

  • Error cuadrado (Square Error).
  • Error de distancia (Distance Error).
  • Error de reconstrucción (Reconstruction Error).
  • Varianza negativa (Negative Variance).
  • Pérdida de energía (Energy Loss).
  • Pérdida minimax (Minimax Loss).
  • Pérdida de Wasserstein (Wasserstein Loss).
  • Función de pérdida de difusión (Diffusion Model Loss Function).

Para más información sobre estas funciones y sus respectivas definiciones matemáticas, puedes consultar los siguientes recursos:

Teniendo esto en mente, ya has conocido lo suficiente para tener una idea del uso y definición de una función de pérdida. Ahora lo formalizaremos matemáticamente.

Función de perdida, definición matemática

Libro_1

Como habrás notado, las funciones de pérdida son parte medular de nuestros encuentros con gran parte de los algoritmos de aprendizaje automático; su objetivo es generar una medida de qué tan bien opera un modelo entrenado, o en proceso de entrenamiento, para realizar estimaciones numéricas.

Por ello, se puede definir una generalización matemática de esta función, que expresa la idea central de su finalidad y los cálculos que conducen al cumplimiento de su objetivo.

Definición 3.10 (Función de Pérdida). Sea \mathcal{D} = \lbrace (x_{1},y_{1}),…,(x_{N},y_{N})\rbrace un conjunto de N datos u observaciones etiquetadas compuesto por los conjuntos \mathcal{X} = \lbrace x_{1},…, x_{N}\rbrace de entradas y \mathcal{Y} = \lbrace y_{1},…, y_{N}\rbrace de salidas, utilizado para entrenar un modelo o función h(x), donde cada salida del modelo se expresa como h(x)=\hat{y}. Una función de pérdida es un mapeo que toma un valor verdadero y \in \mathcal{Y} y un valor predicho \hat{y}, y asigna a esta pareja un número real que cuantifica el «error» o «pérdida» del modelo h(x) que ha hecho la predicción \hat{y} .

En términos generales, la función de pérdida para la evaluación de un modelo dado un conjunto de datos \mathcal{D} con N instancias se define como sigue:

 L(\mathcal{Y}, \mathcal{\hat{Y}}) = \frac{1}{N} \sum_{i=1}^N l(y_n, \hat{y}_n) , \tag{3.42}

donde \mathcal{\hat{Y}} es el conjunto de todas las predicciones realizadas con el modelo y que están sometidas a evaluación, y l es una función de pérdidas individuales, es decir, la medición del error o distancia entre la predicción \hat{y}_n y su valor y_n real asociado. La forma de agregación, en este caso, expresada mediante la suma \sum, puede variar, así como N puede ser igual a 1 para mantener solo la agregación sin calcular el promedio.

Nota: sin entrar en más detalle, solo se hará mención de que en algunos casos especiales (como en los autoencoders, los cuales definiremos en otra exploración) se tiene que X = Y, pero que esto no desvíe tu atención de la definición antes presentada.

Taxonomía y ejemplo de una función de pérdida

Para digerir más fácilmente esta definición, retomaremos el ejemplo del error cuadrático medio (ECM), ahora relacionando su estructura respecto a la generalización de la función de pérdida de la Definición 3.10. Para esto, identificamos los elementos de su taxonomía como sigue:

  • Agregador de pérdidas o errores: el cual viene señalado en la Ecuación (3.42) como \frac{1}{N} \sum_{n=1}^N.
  • Función de pérdidas individuales: la cual viene expresada en la Ecuación (3.42) como l(y_n, \hat{y}_n).

Ahora, echemos un vistazo a la definición matemática del error cuadrático medio:

 L(\mathcal{Y}, \mathcal{\hat{Y}})  = \frac{1}{N} \sum_{n=1}^N (y_n - \hat{y}_n)^2 \tag{3.43}

¿Puedes identificar los elementos antes descritos en esta última expresión?

Si revisamos cuidadosamente encontramos lo siguiente:

  • Agregador de pérdidas: \frac{1}{N} \sum_{n=1}^N
  • Función de pérdidas individuales: (y_n - \hat{y}_n)^2

Podemos observar cómo se promedian los resultados de la función de pérdidas individuales, lo cual es el mismo cálculo que desglosamos en el ejemplo de la sección anterior.

Para ilustrarlo mejor, podemos, por ejemplo, obtener el valor de la pérdida para los primeros cinco valores de la Tabla 3.4.1 utilizando la expresión (3.43):

L(y, \hat{y}) = \frac{1}{N} \sum_{n=1}^N (y_n - \hat{y}_n)^2
=\frac{(12-11)^2+(15-13.5)^2+(19-21)^2+(21.5-24)^2+(33-32)^2}{5}
=\frac{1+2.25+4+6.25+1}{5}
=\frac{14.5}{5} =2.9

Esto significa que el valor de la función de pérdida para los primeros 5 valores respecto a las predicciones del modelo es igual a 2.9. Nótese cómo este número es el resultado de mapear las salidas del conjunto de entrenamiento y las predicciones a un número real, que refleja la similitud entre estas.

Contesta las siguientes preguntas

1 / 3

Una función de pérdida evalúa qué tan rápido se realiza el entrenamiento de un modelo.

2 / 3

Una función de pérdida en un algoritmo de aprendizaje supervisado calcula qué tanto se asemejan las predicciones de un modelo entrenado a los datos reales.

3 / 3

Las funciones de pérdida pueden ser útiles para evaluar estos tipos de modelos:

Tu puntación es

La puntuación media es 100%

0%

Aquí damos por finalizado el estudio de este invaluable artefacto de la ciencia de datos. Aún no veremos cómo obtener los valores de las funciones de pérdida con Python, esto lo haremos más adelante cuando las utilicemos para evaluar el rendimiento de modelos de aprendizaje supervisado.

FDP OB

En la siguiente expedición aprenderemos cómo opera una función de pérdida para la evaluación de modelos de clasificación, lo cual nos abrirá paso a formas más robustas de evaluación de rendimiento de modelos.

Button2 1

DEJA TUS DUDAS O COMENTARIOS

Suscríbete
Notíficame de
guest

6 Comentarios
Más viejo
Más nuevo Más votado
Respuestas entre líneas
Ver todos los comentarios
Javier
Javier
Invitado
3 meses hace

Has puesto dos veces seguidas «los». Y esto parece incorrecto: «Es verdad, sin embargo, es importante al menos sabe». Gracias por el artículo! Saludos desde Guadalajara en España.

Vicente
Vicente
Invitado
1 mes hace

En el primero parrafo hay un error: “se trata de trata de”

Erick
Erick
Invitado
23 días hace

Está mal la definición de función de pérdida en los índices.

6
0
¿Dudas, sugerencias, o comentarios? Deja un mensaje.x