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


Cuando entrené mi red neuronal con Theano o Tensorflow, reportarán una variable llamada "pérdida" por época.

¿Cómo debo interpretar esta variable? Una pérdida mayor es mejor o peor, o ¿qué significa para el rendimiento final (precisión) de mi red neuronal?

Author: Martin Thoma, 2015-12-29

3 answers

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

En el caso de las redes neuronales, la pérdida suele ser log-verosimilitud negativa y suma residual de cuadrados para clasificación y 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 backpropagación en redes neuronales.

El valor de pérdida implica qué tan bien o mal se comporta un determinado 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, iteración(es).

La precisión de un modelo generalmente se determina después de que se aprenden y fijan los parámetros del modelo y no se lleva a cabo ningún aprendizaje. A continuación, las muestras de prueba se alimentan al modelo y el número de errores (pérdida cero-uno) que el modelo hace se registran, después de la comparación con los objetivos reales. 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 esos correctamente, entonces la precisión del modelo es 95.2%.

introduzca la descripción de la imagen aquí

También hay algunas sutilezas mientras se reduce el valor de pérdida. Por ejemplo, puede encontrarse con el problema de over-fitting en el que el modelo "memoriza" los ejemplos de entrenamiento y se vuelve un poco ineficaz para el conjunto de pruebas. El over-fitting también ocurre en los casos en los que no se emplea una regularización , se tiene un modelo muy complejo (el número de parámetros libres W es grande) o el número de puntos de datos N es muy bajo.

 172
Author: Amir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-13 07:25:15

Son dos métricas diferentes para evaluar el rendimiento de su modelo que generalmente se utilizan 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 redes neuronales). Es lo que intentas optimizar en el entrenamiento 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 qué tan precisa es la predicción de su modelo en comparación con los datos reales.

Usemos un ejemplo de clasificación de juguetes. Quieres predecir el género a partir del peso y la altura de uno. Tienes 3 datos, son los siguientes:(0 significa hombre, 1 significa 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;

Se 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? usted define un la pérdida primero y utilizar el método de optimización para minimizar la pérdida de una manera iterativa mediante la actualización de 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. Vamos a hacer una conjetura aleatoria decir b1 = 0.1 y b2 = -0.03. Entonces, ¿cuál es nuestra pérdida?

Y1_hat = 1/(1 + cad{-(0.1*50-0.03*160)}) = 0.549834 = 0.55

Y2_hat = 1 / (1 + cad{-(0.1*60-0.03*170)}) = 0.7109495 = 0.71

Y3_hat = 1/(1 + cad{-(0.1*55-0.03*175)}) = 0.5621765 = 0.56

Por Lo tanto la pérdida es (-log(1-0.55) + -log(1-0.71) - log(0.56)) = 2.6162

Entonces el algoritmo de aprendizaje (por ejemplo, descenso de gradiente) encontrará una manera de actualizar b1 y b2 para disminuir la pérdida.

¿Y si b1=0.1 y b2=-0.03 son los b1 y b2 finales (salida del descenso del gradiente), cuál es la precisión ahora?

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

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

 9
Author: Wenbo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-19 14:59:47

@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 utiliza 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 el conjunto de entrenamiento se puede pensar que se utiliza para construir la puerta de la red neuronal pesos, el conjunto de validación permite el ajuste fino de los parámetros o arquitectura del modelo de red neuronal. Es útil ya que permite la comparación repetible de estos diferentes parámetros/arquitecturas contra 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 pruebas se utiliza solo para probar la precisión predictiva de la red neuronal entrenada en datos no vistos previamente, después del entrenamiento y selección de parámetros / arquitectura con los conjuntos de datos de entrenamiento y validación.

 3
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-01 14:46:40