Cómo interpretar "pérdida" y "precisión" para un modelo de aprendizaje automático

Respuestas:

284

Cuanto menor sea la pérdida, mejor será un modelo (a menos que el modelo se haya ajustado demasiado a los datos de entrenamiento). La pérdida se calcula en el entrenamiento y la validación y su interacción es qué tan bien le está yendo al modelo en estos dos conjuntos. A diferencia de la precisión, la pérdida no es un porcentaje. Es un resumen de los errores cometidos para cada ejemplo en conjuntos de entrenamiento o validación.

En el caso de las redes neuronales, la pérdida suele ser una probabilidad logarítmica negativa y una suma residual de cuadrados para la clasificación y la regresión, respectivamente. Entonces, naturalmente, el objetivo principal en un modelo de aprendizaje es reducir (minimizar) el valor de la función de pérdida con respecto a los parámetros del modelo cambiando los valores del vector de peso a través de diferentes métodos de optimización, como la retropropagación en las redes neuronales.

El valor de pérdida implica qué tan bien o mal se comporta cierto modelo después de cada iteración de optimización. Idealmente, uno esperaría la reducción de la pérdida después de cada o varias iteraciones.

La precisión de un modelo generalmente se determina después de que los parámetros del modelo se aprenden y arreglan y no se lleva a cabo el aprendizaje. Luego, las muestras de prueba se envían al modelo y se registra el número de errores (pérdida cero-uno) que comete el modelo, después de la comparación con los objetivos verdaderos. Luego se calcula el porcentaje de clasificación errónea.

Por ejemplo, si el número de muestras de prueba es 1000 y el modelo clasifica 952 de ellas correctamente, entonces la precisión del modelo es 95.2%.

ingrese la descripción de la imagen aquí

También hay algunas sutilezas al tiempo que reduce el valor de pérdida. Por ejemplo, puede encontrarse con el problema del sobreajuste en el que el modelo "memoriza" los ejemplos de entrenamiento y se vuelve ineficaz para el conjunto de pruebas. El ajuste excesivo también ocurre en casos en los que no emplea una regularización , tiene un modelo muy complejo (el número de parámetros libres Wes grande) o el número de puntos de datos Nes muy bajo.

Amir
fuente
2
Hola @Amir, gracias por tu explicación detallada. Sin embargo, tengo un problema: en mi red neuronal, la pérdida siempre disminuye cuando entreno (cuando aumentan las épocas ), sin embargo, la precisión no es mejor.
mamatv
8
@mamatv Mientras el costo disminuya, debería estar listo. Aunque el costo y la precisión normalmente tienen una relación de proporcionalidad inversa, puede notar que la precisión es una suma de cero errores, mientras que el costo es una suma de números de coma flotante. Por lo tanto, una disminución del 0.001% en el costo no necesariamente significa un aumento del 0.001% en la precisión. Aumentar la precisión es mucho más difícil cuando la disminución en el costo es intangible (el costo está muy cerca de un mínimo local)
Amir
2
@mamatv Debería haber dicho que mientras el costo tanto para la capacitación como para la validación disminuya, debería estar listo. También puede verificar la precisión de validación en cada época. Si comienza a subir, entonces su modelo podría haber comenzado a ajustarse demasiado y debería dejar de entrenarlo.
Amir
1
¿Por qué no entrenar el modelo para aumentar la precisión en lugar de minimizar la pérdida?
bikashg
2
La precisión de @bikashg no es diferenciable y, por lo tanto, no puede respaldarla.
DharmaTurtle
23

Son dos métricas diferentes para evaluar el rendimiento de su modelo que generalmente se usa en diferentes fases.

La pérdida se usa a menudo en el proceso de entrenamiento para encontrar los "mejores" valores de parámetros para su modelo (por ejemplo, pesos en la red neuronal). Es lo que intenta optimizar en la capacitación actualizando los pesos.

La precisión es más desde una perspectiva aplicada. Una vez que encuentre los parámetros optimizados anteriores, utilice estas métricas para evaluar la precisión de la predicción de su modelo en comparación con los datos reales.

Usemos un ejemplo de clasificación de juguetes. Desea predecir el género a partir del peso y la estatura. Tiene 3 datos, son los siguientes: (0 significa hombre, 1 representa mujer)

y1 = 0, x1_w = 50kg, x2_h = 160cm;

y2 = 0, x2_w = 60kg, x2_h = 170cm;

y3 = 1, x3_w = 55kg, x3_h = 175cm;

Utiliza un modelo de regresión logística simple que es y = 1 / (1 + exp- (b1 * x_w + b2 * x_h))

¿Cómo encuentras b1 y b2? Primero define una pérdida y utiliza el método de optimización para minimizar la pérdida de forma iterativa actualizando b1 y b2.

En nuestro ejemplo, una pérdida típica para este problema de clasificación binaria puede ser: (se debe agregar un signo menos delante del signo de suma)

No sabemos qué deberían ser b1 y b2. Hagamos una suposición aleatoria digamos b1 = 0.1 y b2 = -0.03. Entonces, ¿cuál es nuestra pérdida ahora?

entonces la pérdida es

Luego, su algoritmo de aprendizaje (p. Ej., Descenso de gradiente) encontrará una manera de actualizar b1 y b2 para disminuir la pérdida.

¿Qué pasa si b1 = 0.1 y b2 = -0.03 es el b1 y b2 final (salida del descenso del gradiente), cuál es la precisión ahora?

Supongamos que y_hat> = 0.5, decidimos que nuestra predicción es femenina (1). de lo contrario sería 0. Por lo tanto, nuestro algoritmo predice y1 = 1, y2 = 1 e y3 = 1. ¿Cuál es nuestra precisión? Hacemos predicciones incorrectas en y1 e y2 y hacemos la correcta en y3. Entonces ahora nuestra precisión es 1/3 = 33.33%

PD: En la respuesta de Amir , se dice que la retropropagación es un método de optimización en NN. Creo que se trataría como una forma de encontrar gradiente para pesos en NN. Los métodos comunes de optimización en NN son GradientDescent y Adam.

Indeciso
fuente
gracias por las matematicas ayudó a aclarar el concepto.
Finn Frotscher
6

@Aadnan Solo para aclarar los conjuntos de datos de Entrenamiento / Validación / Prueba: El conjunto de entrenamiento se utiliza para realizar el entrenamiento inicial del modelo, inicializando los pesos de la red neuronal.

El conjunto de validación se usa después de que la red neuronal ha sido entrenada. Se utiliza para ajustar los hiperparámetros de la red y comparar cómo los cambios en ellos afectan la precisión predictiva del modelo. Mientras que se puede pensar que el conjunto de entrenamiento se usa para construir los pesos de puerta de la red neuronal, el conjunto de validación permite un ajuste fino de los parámetros o la arquitectura del modelo de red neuronal. Es útil ya que permite la comparación repetible de estos diferentes parámetros / arquitecturas con los mismos datos y pesos de redes, para observar cómo los cambios de parámetros / arquitectura afectan el poder predictivo de la red.

Luego, el conjunto de prueba se usa solo para probar la precisión predictiva de la red neuronal entrenada en datos no vistos previamente, después del entrenamiento y la selección de parámetros / arquitectura con los conjuntos de datos de entrenamiento y validación.

Jon
fuente