Redes neuronales: correlación de pérdida y precisión

11

Estoy un poco confundido por la coexistencia de métricas de pérdida y precisión en redes neuronales. Se supone que ambos representan la "exactitud" de la comparación de y , ¿no es así? Entonces, ¿no es la aplicación de los dos redundantes en las épocas de entrenamiento? Además, ¿por qué no se correlacionan?yYy^

Hendrik
fuente

Respuestas:

9

La pérdida de registro tiene la buena propiedad de que es una función diferenciable. La precisión puede ser más importante y definitivamente es más interpretable, pero no se puede usar directamente en el entrenamiento de la red debido al algoritmo de retropropagación que requiere que la función de pérdida sea diferenciable. Cuando su pérdida preferida no es directamente optimizable (como la precisión), utiliza una función de pérdida que se comporta de manera similar al proxy de la métrica verdadera. En caso de clasificación binaria, usaría un sigmoide al final y una pérdida de registro para una precisión aproximada. Están altamente correlacionados.

Jan van der Vegt
fuente
6

La pérdida es más general que la precisión. En la clasificación, puede ir al 100% de precisión, donde todas las etiquetas se predicen correctamente. ¿Pero qué pasa con la regresión o el pronóstico? No hay definición de 0% y 100%

La pérdida se puede optimizar con varios métodos. En la clase Métodos numéricos, aprendió a resolver una función optimizándola (que es minimizar ) con varios métodos, como el método de Newton, el método de bisección, etc.|yhaty|

rilut
fuente
0

Sí, ambos miden la exactitud de y e y_hat y sí, generalmente están correlacionados. A veces, la función de pérdida puede no ser la precisión, pero aún está interesado en medir la precisión, aunque no la esté optimizando directamente. El ejemplo MNIST TensorFlow de Google minimiza / optimiza la pérdida de entropía cruzada, pero muestra la precisión al usuario cuando informa los resultados, y esto está completamente bien.

A veces no desea optimizar la precisión directamente. Por ejemplo, si tiene un desequilibrio de clase serio, su modelo maximizará la precisión simplemente eligiendo siempre la clase más común, pero este no sería un modelo útil. En este caso, la entropía / pérdida de registro sería una mejor función de pérdida para optimizar.

Ryan Zotti
fuente
77
Más importante aún, la precisión no es una función diferenciable, por lo que no puede propagarse a través de ella.
Jan van der Vegt
@JanvanderVegt Sí, ese es un gran punto
Ryan Zotti el
Aprendí que en Keras puedo poner una métrica de evaluación "personalizada" (por costumbre en este caso quiero decir que no hay implementación incorporada en Keras, como AUC o F1-Score) en la función de compilación. Supongo que, en este caso, estas métricas "personalizadas" se usarán / mostrarán en lugar de la Precisión en todas partes donde el show_accuracyparámetro esté establecido en Verdadero (como en el ajuste o en la evaluación). ¿Es eso correcto?
Hendrik
1
@Hendrik, sí puedes, solo crea una def your_own_metric(y_true, y_pred)función y model.compile(..., metrics=[your_own_metric])
pásala