Reducción de los errores del modelo con funciones de costo

Completado

El proceso de aprendizaje modifica repetidas veces un modelo hasta que puede realizar estimaciones de alta calidad. Para determinar la calidad del rendimiento de un modelo, el proceso de aprendizaje usa las matemáticas en forma de una función cost. La función cost también se conoce como función objetivo. Para entender lo que es una función de costo, vamos a desglosarla un poco.

Error, costo y pérdida

En el aprendizaje supervisado, error, costo y pérdida hacen referencia al número de errores que un modelo comete al predecir una o varias etiquetas.

Estos tres términos se usan ligeramente en el aprendizaje automático, lo que puede provocar cierta confusión. Para simplificar, aquí los usaremos de forma intercambiable. El costo no es un criterio cualitativo, ya que se usan las matemáticas para calcularlo. Por ejemplo, si un modelo predice que la temperatura diaria será de 40 °F (4,4 °C), pero el valor real es de 35 °F (1,6 °C), podríamos decir que el error es de 5 °F (2,8 °C).

La reducción del costo es nuestro objetivo

Dado que el costo indica la ineficacia del modelo, nuestro objetivo es tener un costo cero. En otras palabras, queremos entrenar el modelo para que no cometa ningún error. Sin embargo, esta idea suele ser imposible, por lo que definimos un objetivo algo más difuso que consiste en entrenar el modelo para que tenga el costo más bajo posible.

Como consecuencia de este objetivo, la forma de calcular el costo determina lo que el modelo intenta aprender. En el ejemplo anterior, definimos el costo como el error al calcular la temperatura.

¿Qué es una función de costo?

En el aprendizaje supervisado, una función de costo es un pequeño fragmento de código que calcula el costo a partir de la predicción de un modelo y la etiqueta esperada, la respuesta correcta. Por ejemplo, en el ejercicio anterior calculamos los errores de predicción, los elevamos al cuadrado y los sumamos para calcular el costo.

Una vez que la función de costo haya calculado el costo, sabremos si el modelo funciona bien o no. Si funciona bien, es posible que decidamos detener el entrenamiento. Si no es así, podemos pasar la información sobre el costo al optimizador, que usa esta información con el fin de seleccionar nuevos parámetros para el modelo.

Diagram of the machine-learning lifecycle with labels, but without features.

Durante el entrenamiento, la duración y la eficacia de dicho entrenamiento pueden variar dependiendo de la función de costo que se utilice. Por ejemplo, si la función de costo siempre indica que los errores son pequeños, el optimizador solo realizará cambios pequeños en el modelo. A modo de segundo ejemplo, si la función de costo devuelve valores muy grandes cuando se cometen determinados errores, el optimizador realizará cambios en el modelo para que no cometa este tipo de errores.

No hay una función de costo única. Cuál es la mejor depende de lo que se intente lograr. A menudo necesitamos experimentar con las funciones de costo para obtener un resultado con el que estemos satisfechos. En el ejercicio siguiente llevaremos a cabo este experimento.